GithubHelp home page GithubHelp logo

danielnery / odoo-docker-compose-nginx-postgresql Goto Github PK

View Code? Open in Web Editor NEW
21.0 2.0 12.0 6.31 MB

Composição Docker do Odoo com PostgreSQL e Nginx para subir e desenvolver com facilidade seu ERP

odoo odoo15 docker docker-compose nginx odoo-addons odoo-project postgresql

odoo-docker-compose-nginx-postgresql's Introduction

Odoo ERP, PostgreSQL and Nginx Compose 🔥 🇧🇷

  • Odoo
  • PostgreSQL
  • Nginx
  • Certbot Letsencrypt SSL
  • Installations and use simplified ❤

Odoo ERP 🖥️

project-image

Clone this repository

git clone --recurse-submodules --remote-submodules https://github.com/DanielNery/odoo-docker-compose-nginx-postgresql.git --branch=master

Steps To Live

# On odoo-docker-compose-nginx-postgresql directory
sudo mkdir ./odoo-web-data && sudo mkdir ./addons && sudo chmod -R 777 ./addons &&  sudo chmod -R 777 ./odoo-web-data && sudo docker-compose up -d

# Check container id from odoo
sudo docker ps

# Copy default addons (Optional)
sudo docker cp <odoo_container_id>:/usr/lib/python3/dist-packages/odoo/addons ./addons  

Commands

# Check services running on ports of interest
sudo lsof -i -P -n | grep 80

# Kill process running on port of interest
sudo service apache2 stop
# Containers Up
sudo docker-compose up -d
# Obs: 'd' is from detached

# Allow permissions to read filestore
sudo chmod 777 ./odoo-web-data

# Down containers (Alert: This deletes all config your containers)
sudo docker-compose down


# See Logs
sudo docker-compose logs --tail=100 -f


# Start, Stop and check containers
sudo docker-compose start
sudo docker-compose stop
sudo docker-compose ps

# Init database with base modules
sudo docker-compose stop odoo && \
sudo docker-compose run --rm odoo odoo -c /etc/odoo/odoo.conf -i base --stop-after-init && \
sudo docker-compose restart


# Up Odoo updating modules
sudo docker-compose stop odoo && \
sudo docker-compose run --rm odoo odoo -c /etc/odoo/odoo.conf -u modules_name --stop-after-init && \
sudo docker-compose restart


# Generate database backup
export DATABASE=your_database && sudo docker-compose run --rm -e PGPASSWORD=odoo -e DATABASE=$DATABASE db pg_dump -h db -U odoo $DATABASE > /tmp/db-${DATABASE}-$(date +%Y%m%d%H%M).dump


# Restore your database
cat your_file_name.dump | docker exec -i postgresql psql -U odoo -d your_database_name


# Security copy 'dumps files' from server to your local machine
scp server_user@link_server:/tmp/db-your_db_name.dump ~/Downloads/db-your_db_name.dump &&
scp -r server_user@link_server:/home/ubuntu/projects/your-erp/odoo-web-data/filestore/your_filestore_name ~/Downloads/your_filestore_name


# List databases on postgres container
docker exec postgresql psql -U odoo -l


# Delete databases on postgres container
docker exec postgresql psql -U odoo drop database your_database_name

Nginx SSL config example

server { listen 443 ssl; server_name domain.com.br;

  ssl_certificate     /etc/letsencrypt/live/domain.com.br/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/domain.com.br/privkey.pem;

  location / {
      proxy_pass http://odoo:8069;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;

      # Configurações adicionais de proxy, se necessário
  }

  location ~ /.well-known/acme-challenge/ {
          root /var/www/certbot;
  }

  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
      root /usr/share/nginx/html;
  }

}

Documentation 📜

Linux Basic Commands 🐧

sudo apt update && sudo apt upgrade -y
sudo apt install docker docker-compose -y
git clone https://github.com/DanielNery/odoo-docker-compose-nginx-postgresql.git
cd odoo-docker-compose-nginx-postgresql
sudo docker-compose up -d

Windowns or Mac Tutorial 🍎

Update or custom modules 🍺

docker-compose stop odoo && sudo docker-compose run --rm odoo odoo -c /etc/odoo/odoo.conf -u your_module --stop-after-init && docker-compose start odoo

Contact 📞

odoo-docker-compose-nginx-postgresql's People

Contributors

danielnery avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

odoo-docker-compose-nginx-postgresql's Issues

error during connect: This error may indicate that the docker daemon is not running.: Get

error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dodoo-docker-compose-nginx-postgresql-main%22%3Atrue%7D%7D&limit=0": open //./pipe/docker_engine: The system cannot find the file specified.

Error on first start

Dear,

I get following error on first run:

Starting nginx      ... done
Starting postgresql ... done
Creating odoo_odoo_run ... done
2023-03-17 08:26:12,656 1 WARNING ? py.warnings: /usr/lib/python3/dist-packages/odoo/tools/config.py:559: DeprecationWarning: The osv-memory-age-limit is a deprecated alias to the transient-age-limit option, please use the latter.
  File "/usr/bin/odoo", line 8, in <module>
    odoo.cli.main()
  File "/usr/lib/python3/dist-packages/odoo/cli/command.py", line 56, in main
    o.run(args)
  File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 179, in run
    main(args)
  File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 127, in main
    odoo.tools.config.parse_config(args)
  File "/usr/lib/python3/dist-packages/odoo/tools/config.py", line 378, in parse_config
    self._warn_deprecated_options()
  File "/usr/lib/python3/dist-packages/odoo/tools/config.py", line 559, in _warn_deprecated_options
    warnings.warn(
 
2023-03-17 08:26:12,657 1 WARNING ? py.warnings: /usr/lib/python3/dist-packages/odoo/tools/config.py:565: DeprecationWarning: The longpolling-port is a deprecated alias to the gevent-port option, please use the latter.
  File "/usr/bin/odoo", line 8, in <module>
    odoo.cli.main()
  File "/usr/lib/python3/dist-packages/odoo/cli/command.py", line 56, in main
    o.run(args)
  File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 179, in run
    main(args)
  File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 127, in main
    odoo.tools.config.parse_config(args)
  File "/usr/lib/python3/dist-packages/odoo/tools/config.py", line 378, in parse_config
    self._warn_deprecated_options()
  File "/usr/lib/python3/dist-packages/odoo/tools/config.py", line 565, in _warn_deprecated_options
    warnings.warn(
 
2023-03-17 08:26:12,657 1 INFO ? odoo: Odoo version 16.0-20230310 
2023-03-17 08:26:12,657 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf 
2023-03-17 08:26:12,657 1 INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/mnt/extra-addons'] 
2023-03-17 08:26:12,657 1 INFO ? odoo: database: odoo@db:5432 
2023-03-17 08:26:12,778 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf 
2023-03-17 08:26:12,970 1 INFO ? odoo.modules.loading: init db 
2023-03-17 08:26:14,422 1 INFO your_database odoo.modules.loading: loading 1 modules... 
2023-03-17 08:26:14,423 1 INFO your_database odoo.modules.loading: Loading module base (1/1) 
2023-03-17 08:26:14,465 1 INFO your_database odoo.modules.registry: module base: creating or updating database tables 
2023-03-17 08:26:14,821 1 INFO your_database odoo.models: Prepare computation of ir.module.module.menus_by_module 
2023-03-17 08:26:14,821 1 INFO your_database odoo.models: Prepare computation of ir.module.module.reports_by_module 
2023-03-17 08:26:14,821 1 INFO your_database odoo.models: Prepare computation of ir.module.module.views_by_module 
2023-03-17 08:26:14,931 1 INFO your_database odoo.models: Prepare computation of res.partner.user_id 
2023-03-17 08:26:14,931 1 INFO your_database odoo.models: Prepare computation of res.partner.commercial_partner_id 
2023-03-17 08:26:14,931 1 INFO your_database odoo.models: Prepare computation of res.partner.display_name 
2023-03-17 08:26:14,931 1 INFO your_database odoo.models: Prepare computation of res.partner.company_registry 
2023-03-17 08:26:14,932 1 INFO your_database odoo.models: Prepare computation of res.partner.commercial_company_name 
2023-03-17 08:26:14,932 1 INFO your_database odoo.models: Prepare computation of res.partner.partner_share 
2023-03-17 08:26:14,973 1 INFO your_database odoo.models: Prepare computation of res.currency.decimal_places 
2023-03-17 08:26:15,002 1 INFO your_database odoo.models: Prepare computation of res.company.logo_web 
2023-03-17 08:26:15,031 1 INFO your_database odoo.models: Prepare computation of res.users.signature 
2023-03-17 08:26:15,031 1 INFO your_database odoo.models: Prepare computation of res.users.share 
2023-03-17 08:26:16,474 1 INFO your_database odoo.modules.loading: loading base/data/res_bank.xml 
2023-03-17 08:26:16,480 1 INFO your_database odoo.modules.loading: loading base/data/res.lang.csv 
2023-03-17 08:26:16,586 1 INFO your_database odoo.modules.loading: loading base/data/res_lang_data.xml 
2023-03-17 08:26:16,645 1 ERROR your_database odoo.sql_db: bad query: UPDATE ir_module_module SET state='installed' WHERE state IN ('to remove', 'to upgrade')
ERROR: relation "ir_module_module" does not exist
LINE 1: UPDATE ir_module_module SET state='installed' WHERE state IN...
               ^
 
2023-03-17 08:26:16,646 1 ERROR your_database odoo.modules.registry: Failed to load registry 
2023-03-17 08:26:16,646 1 CRITICAL your_database odoo.service.server: Failed to initialize database `your_database`. 
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 698, in _tag_root
    f(rec)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 599, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 4349, in _load_records
    data['record']._load_records_write(data['values'])
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 4280, in _load_records_write
    self.write(values)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/res_lang.py", line 308, in write
    res = super(Lang, self).write(vals)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3735, in write
    field.write(self, value)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 2475, in write
    super(Image, self).write(records, new_value)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 2414, in write
    atts.create([{
  File "<decorator-gen-57>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 410, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_attachment.py", line 654, in create
    values.update(self._get_datas_related_values(
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_attachment.py", line 267, in _get_datas_related_values
    values['store_fname'] = self._file_write(data, values['checksum'])
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_attachment.py", line 128, in _file_write
    fname, full_path = self._get_path(bin_value, checksum)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_attachment.py", line 110, in _get_path
    os.makedirs(dirname)
  File "/usr/lib/python3.9/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/usr/lib/python3.9/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/usr/lib/python3.9/os.py", line 225, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/var/lib/odoo/filestore'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 90, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 428, in load_modules
    loaded_modules, processed_modules = load_module_graph(
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 230, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 71, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 763, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 829, in convert_xml_import
    obj.parse(doc.getroot())
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 749, in parse
    self._tag_root(de)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 698, in _tag_root
    f(rec)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 711, in _tag_root
    raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /usr/lib/python3/dist-packages/odoo/addons/base/data/res_lang_data.xml:10, somewhere inside
<record id="base.lang_ar" model="res.lang">
            <field name="flag_image" type="base64" file="base/static/img/lang_flags/lang_ar.png"/>
        </record>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 1299, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
  File "<decorator-gen-14>", line 2, in new
  File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 92, in new
    odoo.modules.reset_modules_state(db_name)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 633, in reset_modules_state
    cr.execute(
  File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 313, in execute
    res = self._obj.execute(query, params)
psycopg2.errors.UndefinedTable: relation "ir_module_module" does not exist
LINE 1: UPDATE ir_module_module SET state='installed' WHERE state IN...
               ^

2023-03-17 08:26:16,654 1 INFO your_database odoo.service.server: Initiating shutdown 
2023-03-17 08:26:16,654 1 INFO your_database odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown. 
2023-03-17 08:26:16,654 1 INFO your_database odoo.sql_db: ConnectionPool(used=0/count=0/max=9): Closed 1 connections  
ERROR: 255

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.