erplibre/doc/PRODUCTION.md

2.4 KiB

ERPLibre production guide

Production installation procedure

1. Clone the project:

git clone https://github.com/ERPLibre/ERPLibre.git
cd ERPLibre

2. Modify the parameters

Modify the file env_var.sh for production installation.

3. Execute the script:

Ubuntu 18.04 server

./script/install_dev.sh
./script/install_production.sh

A service is running by systemd. You can access it with the DNS name found in env_var.sh

Ubuntu 20.04 server

Apply fix libpng12-0: https://www.linuxuprising.com/2018/05/fix-libpng12-0-missing-in-ubuntu-1804.html

./script/install_dev.sh
./script/install_production.sh

A service is running by systemd, you can access with the DNS name found in env_var.sh

4. SSL:

Generate a ssl certificate

sudo certbot --nginx

Watch log

sudo systemctl -feu [EL_USER]

Run by address ip

Comment the following line in /[EL_USER]/erplibre/config.conf

#xmlrpc_interface = 127.0.0.1
#netrpc_interface = 127.0.0.1
#proxy_mode = True

Add your address ip server_name in nginx config /etc/nginx/sites-available/[EL_WEBSITE_NAME]

Restart daemon:

sudo systemctl restart nginx
sudo systemctl restart [EL_USER]

Production execution

cd /[EL_USER]/erplibre
./run.sh -d [DATABASE] --no-database-list

Move prod database to dev

When moving prod database to your dev environment, you want to remove email servers and install user test to test the database. Warning, this is not safe for production, you expose all data. Run:

./script/migrate_prod_to_test.sh DATABASE

Update production

Update all features.

./run.sh --limit-time-real 99999 --stop-after-init -u all -d DATABASE

Postgresql

To show config file:

psql -U postgres -c 'SHOW config_file'

Edit this file to accept interface from all networks:

/var/lib/postgres/data/postgresql.conf

Delete an instance in production

Caution, this delete user's home, it's irrevocable.

./script/delete_production.sh

Update ip when public ip change with CloudFlare and crontab

mkdir ~/.cloudflare

Edit ~/.cloudflare/cloudflare.cfg

[PROFILE_NAME]
email=EMAIL
token=TOKEN

Add your cron

vim /etc/crontab
# Add
*/5 * * * * USER cd PATH && ./script/deployment/update_dns_cloudflare.py --profile PROFILE_NAME --zone_name CLOUDFLARE_ZONE_NAME --dns_name DNS_NAME --auto_sync

Check log with

sudo journalctl -feu cron