Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 77ef3b4742400eb4608d075aefc7d86faba7a8ea
  • master par défaut protégée
  • v1.7.12 protégée
  • v1.7.11 protégée
  • v1.7.10 protégée
  • v1.7.9 protégée
  • v1.7.8 protégée
  • v1.7.7 protégée
  • v1.7.6 protégée
  • v1.7.5 protégée
  • v1.7.4 protégée
  • v1.7.3 protégée
  • v1.7.2 protégée
  • v1.7.1 protégée
  • v1.7.0 protégée
  • v1.6.7 protégée
  • v1.6.6 protégée
  • v1.6.5 protégée
  • v1.6.4 protégée
  • v1.6.3 protégée
  • v1.6.2 protégée
  • v1.6.1 protégée
22 résultats

docker_odoo

  • Cloner avec SSH
  • Cloner avec HTTPS
  • avatar de l'utilisateur
    remi-filament authored
    77ef3b47
    Historique
    Nom Dernière validation Dernière mise à jour
    files
    handlers
    tasks
    templates
    LICENSE
    README.md

    Ansible role to deploy Odoo server docker

    This role is originally derivated from Tecnativa/Doodba, although it has been reworked lately in order to reduce drastically the size of the Docker image used, since using Tecnativa Doodba, we were reaching 1.5 GB for the image, when the new images are around 800 MB.

    This role is taking advantage of Le Filament Odoo Docker which is also described on corresponding Le Filament GitHub page and adds on top additional OCA modules and private modules defined with variables odoo_custom_modules_oca and odoo_custom_modules (see below)

    This role allows you to deploy and start 2 Odoo docker instances on your server : a production instance (in /home/docker/odoo) and a test instance (in /home/docker/odootest/).

    You would most probably need to adapt the files in the files/ and templates/ directories to your needs, the ones you find here are the ones used by Le Filament on a small VPS server.

    On top of deploying and starting the Odoo instances, the following functionalities are added:

    • automatic bank statement retrieval nightly (using an homemade Weboob docker and cron jobs to run it every night for each bank account)
    • backup and restore based on duplicity docker from Tecnativa which has been customized for our needs to backup on Swift Storage and running it every night using cron, keeping only the latest week incremental backups for 3 weeks
    • whitelists based on white list docker from Tecnativa in order to block any not identified traffic towards the outside of the server

    Prior to running this role, you would need to have docker and docker-compose installed on your server and a traefik proxy (which is the purpose of this role)

    This role is not foreseen to be used on a development environment (which is the purpose of that role)

    In order to use this role, you would need to define the following variables for your server (in hostvars for instance) - Only the names of the variables are provided below (not the values) for these used by this role to properly configure everything, and some examples for list of modules, you may copy this file directly in hostvars and set the variable although we could only encourage you to use an Ansible vault and refer vault variables from here:

    This role is included in Le Filament full Ansible playbook

    ## Ansible configuration for connecting to remote host
    # IP address
    ansible_ssh_host: "{{ SERVER_srv_ip }}"
    # User
    host_user: "{{ SERVER_srv_user }}"
    # User password
    host_password: "{{ SERVER_srv_pass }}"
    # Root password
    host_root_password: "{{ SERVER_srv_root_pass }}"
    
    ## Odoo configuration
    # PRODUCTION URL
    odoo_url: "{{ SERVER_odoo_url }}"
    # OPTIONAL EXTRA URL to be served by proxy
    odoo_url2: "{{ SERVER_odoo_url2 }}"
    # TEST URL
    odoo_test_url: "{{ SERVER_odoo_test_url }}"
    
    # Odoo version
    odoo_version: "10.0"
    # Postgresql version
    odoo_db_version: "10"
    
    # Odoo master password
    odoo_master_pass: "{{ SERVER_odoo_master_pass }}"
    # password for proxy protected pages
    srv_proxy_pass: "{{ SERVER_srv_proxy_bcpass }}"
    
    # Odoo database user
    odoo_db_user: "{{ SERVER_odoo_db_user }}"
    # Odoo database password
    odoo_db_pass: "{{ SERVER_odoo_db_pass }}"
    # Odoo PROD database name
    odoo_db: "{{ SERVER_odoo_db_name }}"
    # Odoo TEST database name
    odoo_db_test: "{{ SERVER_odoo_db_name_test }}"
    
    # Custom modules
    odoo_custom_modules:
     - lefilament_link_sale_project
     - lefilament_projets
    
    odoo_other_modules:
     - repo: elico
       url: https://github.com/Elico-Corp/odoo-addons.git
       modules:
         - auth_cas
    
    # OCA modules - these should be limited to the ones not already defined [here](https://github.com/lefilament/ansible/blob/master/group_vars/docker_odoo)
    # in default_odoo_custom_modules_oca (since these are already part of lefilament/odoo:10.0 docker)
    odoo_custom_modules_oca:
      - repo: server-tools
        modules:
         - auto_backup
      - repo: knowledge
        modules:
         - document_page_approval
      - repo: social
        modules:
         - mail_attach_existing_attachment
      - repo: website-cms
        modules:     
         - cms_delete_content
         - cms_form
         - cms_info
         - cms_status_message
    
    ## Mail server configuration - for Odoo
    # Mail domain
    mailname: "{{ SERVER_mail_domain }}"
    # Mail server
    mailserver: "{{ SERVER_mail_srv_url }}"
    # SMTP port
    smtpport: "{{ SERVER_mail_smtp_port }}"
    # SMTP user
    smtpuser: "{{ SERVER_mail_odoo_user }}"
    # SMTP password
    smtppass: "{{ SERVER_mail_odoo_pass }}"
    
    ## Bank configuration - for Odoo automatic retrieval of statements
    # Should auto retrieval be activated ?
    banking: yes
    # Bank name
    bank: "{{ SERVER_bank }}"
    # Bank website
    bank_website: "{{ SERVER_bank_website }}"
    # Bank user
    bank_login: "{{ SERVER_bank_login }}"
    # Bank password
    bank_pass: "{{ SERVER_bank_pass }}"
    # Bank user id
    bank_userid: "{{ SERVER_bank_userid }}"
    # Bank account
    bank_account: "{{ SERVER_bank_account }}"
    # Bank account 2
    bank_account2: "{{ SERVER_bank_account2 }}"
    
    ## Backup Swift Storage configuration
    swift_username:
    swift_password:
    swift_authurl:
    swift_authversion:
    swift_tenantname:
    swift_tenantid:
    swift_regionname:
    

    Procedure to restore Odoo from backup

    In order to restore Owncloud database and files from backup, it is necessary to first delete the database (from Odoo interface URL/web/database/manager) then change directory to /home/docker/backups and run the following command: docker-compose -f backup-odoo.yaml run --rm backup_odoo sh -c "restore --force && createdb -T template0 \$PGDATABASE && pg_restore -d \$PGDATABASE \$SRC/\$PGDATABASE.pgdump"

    You can also copy production database inside test one, first delete the database from test instance (from Odoo test interface URL/web/database/manager) then change directory to /home/docker/backups and run the following command: docker-compose -f restore-odootest.yaml run --rm restore_test

    Credits

    Contributors

    • Remi Cazenave

    Maintainer

    This role is maintained by Le Filament