Selasa, 12 April 2022

setting nginx

 1. sudo apt-get install nginx
2. sudo nano /etc/nginx/sites-available/odoo
3. copy text :
#odoo server
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
# http -> https
server {
listen 80;
server_name <x>.agrobogautama.co.id;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443;
server_name <x>.agrobogautama.co.id;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
ssl on;
ssl_certificate /etc/ssl/nginx/agro.pem;
ssl_certificate_key /etc/ssl/nginx/agro.key;
ssl_session_timeout 30m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
# log
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
# Redirect requests to odoo backend server
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
location /longpolling {
proxy_pass http://odoochat;
}
# common gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
4. sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo
5. sudo nano /etc/odoo-server.conf
6. copy text :
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1
proxy_mode = True
7. sudo pip install gevent psycogreen
8. sudo service odoo-server restart
9. sudo service nginx restart
sudo systemctl restart nginx.service

Rabu, 30 Maret 2022

INSTALL PYENV DAN VIRTUALENV

 

sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
 
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
exec "$SHELL"
 
pyenv install --list
pyenv install 3.7.12
 
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
 
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
exec "$SHELL"
 
pyenv versions
pyenv global 3.7.12
pyenv versions
 
pyenv virtualenv 3.7.12 odoo15 
source ~/.pyenv/versions/odoo15/bin/activate 
 
 

Kamis, 24 Februari 2022

install odoo 12 ubuntu 18.04

Cara Install Odoo 12 di Linux

1. Install Postgres

# step 1
sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
 
# step 2
sudo echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
 
# step 3
sudo apt update
 
# step 4
sudo apt -y install postgresql-12 postgresql-client-12
 

2. Create user postgres

# step 1
sudo su postgres

# step 2
psql
 
# step 3
create user <user> with encrypted password '<password>';
 
# step 4
alter  user <user> superuser;
 
# step 5
\du
 
# step 6
- exit
- exit
 

3. Setting postgres

# step 1
sudo nano /etc/postgresql/12/main/postgresql.conf
 
# step 2
- before
listen_addresses = 'localhost'
 
- after
listen_addresses = '*'
 
# step 3
- ctrl + x
- y
- enter
 

# step 4
sudo nano /etc/postgresql/12/main/pg_hba.conf

# step 5
- before
# TYPE    DATABASE    USER    ADDRESS    METHOD
 
- after
# TYPE    DATABASE    USER    ADDRESS    METHOD
local         all                  all                              md5
host          all                  all         0.0.0.0/0       md5
 
# step 6
- ctrl + x
- y
- enter
 
# step 7
sudo service postgresql restart
 

4. Install Snap

# step 1
sudo apt update

# step 2
sudo apt install snapd
 

5. Install Dbeaver

# step 1
sudo snap install dbeaver-ce
 

7. Dbeaver connect Postgresql

# step 1
buka aplikasi dbeaver
 
# step 2
klik icon (konektor +) di bawah menu file
 
# step 3
pilih PostgreSQL
 
# step 4
klik next
 
# step 5
> di tab main isi
- host = localhost (kalo connect ke DB server, maka masukan ip server DB nya)
- database = postgres
- username = <user-postgres>
- password =<password-postgres>

> di tab PostgreSQL
- checklist show all database

7. Install Wkhtmltopdf (untuk report)

# step 1
sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
 
# step  2
sudo apt -y install ./wkhtmltox_0.12.5-1.bionic_amd64.deb
 
# step 3
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
 
 # step 4
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
 

8. Install Python Dependencies

# step 1
sudo apt install -y -f python3-pip python3-wheel python3-setuptools python3-lxml python3-psutil python3-greenlet python3-gevent python3-reportlab libsasl2-dev libldap2-dev libssl-dev
 

9. Install CSS Dependencies

 # step 1
sudo apt install -y npm
 
# step 2
sudo npm install -g less less-plugin-clean-css rtlcss
 
# step 3
sudo apt install -y node-less
 

9. Install PYENV

# step 1
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
 
# step 2
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 
# step 3
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
 
# step 4
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
 
# step 5
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc

# step 6
exec "$SHELL"
 
# step 7
pyenv -v
 
# step 8
pyenv install --list
 
# step 9 (untuk install versi python pyenv)
- untuk odoo 12
pyenv install 3.6.9
 
-untuk odoo 14 sampai 16
pyenv install 3.7.12
 

10. Install VIRTUALENV

# step 1
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
 
# step 2
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
 
# step 3
exec "$SHELL"
 
# step 4
pyenv versions
 
# step 5 (untuk switch versi python pyenv)
- untuk odoo 12
pyenv global 3.6.9
 
-untuk odoo 14 sampai 16
pyenv global 3.7.12
 
# step 6
pyenv versions
 
# step 7 (untuk masuk create virtualenv)
- untuk odoo 12
pyenv virtualenv 3.6.9 odoo12c
 
-untuk odoo 14 sampai 16
pyenv virtualenv 3.7.12 odoo16c
 
# step 8 (untuk masuk ke virtualenv)
- untuk odoo 12
source ~/.pyenv/versions/odoo12c/bin/activate
 
-untuk odoo 14 sampai 16
source ~/.pyenv/versions/odoo16c/bin/activate
 
# step 9 (untuk keluar dari virtualenv)
deactivate

11. Download Odoo dari Github

# step 1
sudo apt install -y git

# step 2
 
- odoo 12c
sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo/odoo12c/odoo-server
 
- odoo 13c
sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13c/odoo-server
 
- odoo 14c
sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo/odoo14c/odoo-server
 
- odoo 15c
sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 15.0 /opt/odoo/odoo15c/odoo-server
 
- odoo 16c
sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 16.0 /opt/odoo/odoo16c/odoo-server

12. Install PIP Dependencies

# step 1 (masuk ke virtualenv)
- untuk odoo 12
source ~/.pyenv/versions/odoo12c/bin/activate
 
-untuk odoo 14 sampai 16
source ~/.pyenv/versions/odoo16c/bin/activate

# step 2
sudo pip3 install -r /opt/odoo/odoo16c/odoo-server/requirement.txt


13. Buat Folder Addons Custom

# step 1
sudo mkdir /opt/odoo/odoo12c/tutorial_addons/addons_app

# step 2
sudo mkdir /opt/odoo/odoo12c/tutorial_addons/addons_custom

14. Buat Config Odoo

# step 1
sudo nano /etc/odoo12c-server.conf

# step 2 (isi minimal config odoo)
[options]
admin_passwd=admin
db_host=localhost
db_name=False
db_user=odoo
db_password=odoo
db_port=5432
dbfilter=odoo16c
xmlrpc_port=8069
addons_path=/opt/odoo/odoo12c/odoo-server/addons,/opt/odoo/odoo12c/tutorial_addons/addons_app,/opt/odoo/odoo12c/tutorial_addons/addons_custom
 
 
# step 3
- ctrl + x
- y
- enter


15. Running Odoo via Terminal Python

# step 1 (masuk ke virtualenv)
- untuk odoo 12
source ~/.pyenv/versions/odoo12c/bin/activate
 
-untuk odoo 14 sampai 16
source ~/.pyenv/versions/odoo16c/bin/activate

# step 2
sudo python3 /opt/odoo/odoo12c/odoo-server/odoo-bin -c /etc/odoo12c-server.conf


# step 3
buka browser dan akses http://localhost:8069

# step 4
untuk stop terminal python yang running menggunakan (ctrl + c)

16. Buat Service Odoo

# step 1 (create user dan group linux untuk odoo)
sudo adduser -system -home=/opt/odoo -group odoo

# step 2
sudo nano /etc/systemd/system/odoo12c-server.service
 
# step 3 (isi config service odoo)
[Unit]
Description=Odoo 12 Community
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo12c-server
User=odoo12c
Group=odoo12c
ExecStart=/home/slametdev/.pyenv/versions/odoo12c/bin/python3 /opt/odoo/odoo12c/odoo-server/odoo-bin --config=/etc/odoo12c-server.conf
WorkingDirectory=/opt/odoo/odoo12c/odoo-server

[Install]
WantedBy=multi-user.target
 
# step 3
- ctrl + x
- y
- enter

# step 4
sudo systemctl daemon-reload

# step 5
sudo systemctl start odoo12c-server.service
 
# step 6
sudo systemctl stop odoo12c-server.service
 
# step 7
sudo systemctl restart odoo12c-server.service

# step 8
buka browser dan akses http://localhost:8069

 


 






Selasa, 22 Februari 2022

install golang di elementary os

1. download file go di web resminya https://go.dev/doc/install

2. extrak file go ke /usr/local dengan command :

- sudo mv go /usr/local

3. export path:

- sudo nano ~/.bashrc

- export PATH=$PATH:/usr/local/go/bin

- source ~/.bashrc

4. cek version go

- go version

Selasa, 23 November 2021

cara buat template email odoo dan ngirim emailnya



 

 1. buat template emailnya

        <record id="email_template_id" model="mail.template">
<field name="name">Send Email</field>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field name="subject">${object.company_id.name} Order (Ref ${object.name or 'n/a' })</field>
<field name="partner_to">${object.partner_id.id}</field>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Dear ${object.partner_id.name}
% if object.partner_id.parent_id:
(${object.partner_id.parent_id.name})
% endif
<br/><br/>
Here is in attachment a purchase order <strong>${object.name}</strong>
% if object.partner_ref:
with reference: ${object.partner_ref}
% endif
amounting in <strong>${format_amount(object.amount_total, object.currency_id)}</strong>
from ${object.company_id.name}.
<br/><br/>
If you have any questions, please do not hesitate to contact us.
<br/><br/>
Best regards,
</p>
</div>
</field>
<field name="report_template" ref="action_report_purchase_order"/>
<field name="report_name">PO_${(object.name or '').replace('/','_')}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="user_signature" eval="False"/>
<field name="auto_delete" eval="True"/>
</record>

2. buat function untuk ngirim emailnya

def cron_ss_send_mail(self):
template_id = self.env.ref("purchase.email_template_id").id
purchase = self.search([])
for dt in purchase:
a = dt.env['mail.template'].browse(template_id)
a.send_mail(dt.id,force_send=True)
return



Senin, 22 November 2021

Odoo config untuk debugging di vs code

 // -- ------------------------------------
// -- Perhatian
// -- Khusus untuk Linux User :
// -- hasil dari Copy Path tidak perlu diganti dengan double-backslash \\
// -- ------------------------------------
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run Odoo",
            "type": "python",
            "request": "launch",
            "stopOnEntry": false,
            "console": "integratedTerminal",
            "python": "/home/slametdev/.pyenv/versions/odoo12/bin/python3", // cari dengan which python3
            "program": "/home/slametdev/Downloads/MNF/odoo-server-master/odoo-bin",
            "args": [
                "--config=/home/slametdev/Downloads/MNF/odoo-server-master/odoo.conf",
                // "--database=tutor1,tutor2",
                // "--update=nama_folder1,nama_folder2"
            ]
        },
    ]
}

Kamis, 12 Agustus 2021

postgresql12 odoo12

 create databse postgres for odoo12

postgresql12

sudo nano /etc/postgresql/12/main/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# odoo14 custom conf

local   all             odoo14                                  md5

sudo service postgresql restart

sudo su postgres

psql

CREATE USER <user> WITH ENCRYPTED PASSWORD '<password>';

ALTER USER <user> SUPERUSER;




install pgadmin4 di ubuntu

 sudo apt install curl


sudo apt install curl

# Install the public key for the repository (if not done previously):
sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add

# Create the repository configuration file:
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'

#
# Install pgAdmin
#

# Install for both desktop and web modes:
sudo apt install pgadmin4

# Install for desktop mode only:
sudo apt install pgadmin4-desktop

# Install for web mode only: 
sudo apt install pgadmin4-web 

# Configure the webserver, if you installed pgadmin4-web:
sudo /usr/pgadmin4/bin/setup-web.sh

install postgresql 12 ubuntu 18.04

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
 
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list
  
sudo apt update
 
sudo apt -y install postgresql-12 postgresql-client-12

Rabu, 28 Juli 2021

flutter_secure_storage: ^4.2.0

kita akan pake flutter_secure_storage: ^4.2.0
ubah minSdkVersion jadi 20 di path android/app/build.gradle

minSdkVersion 20

buat file 
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

class SecureStorage {
  final _storage = FlutterSecureStorage();
  Future writeSecureData(String key, String value) async {
    var data = await _storage.write(key: key, value: value);
    return data;
  }

  Future readSecureData(String key) async {
    var data = await _storage.read(key: key);
    return data;
  }

  Future deleteSecureData(String key) async {
    var data = await _storage.delete(key: key);
    return data;
  }
}


cara gunainnya

import 'package:auth/local_storage.dart'; 


Future hasToken() async {
final SecureStorage secureStorage = SecureStorage();
final String? token = await secureStorage.readSecureData("token");
if (token != null) return token;
return null;
}

Future setLocalToken(String token) async { 

final SecureStorage secureStorage = SecureStorage();
await secureStorage.writeSecureData("token", token);
}

Future unsetLocalToken() async {
final SecureStorage secureStorage = SecureStorage();
secureStorage.deleteSecureData("token");
}







create project flutter with getx

Get CLI adalah alat yang sangat berguna untuk mempercepat pengembangan aplikasi Flutter dengan memanfaatkan arsitektur GetX . Berikut adala...