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");
}







Selasa, 08 Juni 2021

setup flutter ubuntu 20.04

1. install vs code

sudo snap install code --classic

 

2. install flutter

sudo snap install flutter --classic

 

3. download flutter sdk

flutter sdk-path

 

4. install java 8

sudo apt install openjdk-8-jdk openjdk-8-jre

sudo update-alternatives --config java

 

5. tambahkan di baris terakhir

nano ~/.bashrc

export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

source ~/.bashrc

 

6. install android studio

sudo snap install android-studio --classic

 

7. set android sdk ke flutter config

flutter config --android-sdk /path/to/android/sdk 

example : flutter config --android-sdk /home/slametdev/android/sdk 


8. running android licenses

flutter doctor --android-licenses

 

ketika command  (flutter doctor --android-licenses)

error:


solusinya:

  1. Uncheck Android SDK command-line Tools (latest)
  2. Check Android SDK command-line Tools 8.0
  3. Click Apply
  4. In Windows, go to “C:\Users\USERNAME\AppData\Local\Android\Sdk\cmdline-tools” and rename the 8.0 folder to “latest”
  5. Run Flutter doctor again.

 

create project flutter with getx

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