3.7 KiB
ERPLibre production guide
Requirement
- 5Go of disk space
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. Enable nginx if you need a proxy with EL_INSTALL_NGINX at
True. Redirect your DNS to the proxy's ip and add your A and AAAA into EL_WEBSITE_NAME with space between.
3. Execute the scripts:
With proxy nginx production, install certbot before for SSL
# Snap installation
# https://snapcraft.io/docs/installing-snap-on-debian
sudo apt install -y snapd
sudo snap install core
sudo snap refresh core
# https://certbot.eff.org/lets-encrypt/debianbuster-nginx
# Cerbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Ubuntu 18.04 server
./script/install_dev.sh
./script/install_production.sh
A service is runned 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 runned by SystemD, you can access it 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 will 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 files:
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 will 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
Docker
Update
When update a docker, you need to update the list of module.
Run script to update configuration :
./script/docker/docker_gen_config.sh
Edit the docker-compose.yml and update the command line (change DATABASE) to :
command: odoo --workers 2 -u erplibre_info -d DATABASE
Note, the goal is to call env['ir.module.module'].update_list().
Restart the docker :
docker-compose down
docker-compose up -d
Revert the command in docker-compose.yml.
You can validate in log the update, you need to find odoo.modules.loading: updating modules list, check
docker-compose logs -f