From 29fb9d1a7b4492de6d52a0c2e82e2620c83744a3 Mon Sep 17 00:00:00 2001 From: hparfr Date: Tue, 9 Dec 2025 16:15:31 +0100 Subject: [PATCH 1/6] remove queue_job from default installation, set bus_alt_connection only in != 19 queue_job is not always installed, and not always in the spec. user has to install it himself --- src/ci.docker-compose.yml.jinja | 9 ++++----- src/prod.docker-compose.yml.jinja | 12 ++++++------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/ci.docker-compose.yml.jinja b/src/ci.docker-compose.yml.jinja index 01c99b6..ac26108 100644 --- a/src/ci.docker-compose.yml.jinja +++ b/src/ci.docker-compose.yml.jinja @@ -13,18 +13,17 @@ services: MAX_CRON_THREADS: 1 # SERVER_WIDE_MODULES is now managed from the copier template - # when modules sentry, bus_alt_connection(pgbouncer) and queue_job + # when modules sentry, bus_alt_connection(pgbouncer) # are migrated, they are automatically installed in the next `copier update` # if you need to install something else in SERVER_WIDE_MODULES please # let us know the use case. # sentry and bus_alt_connection don't require installation # bus_alt_connection is required for CI and prod - # queue_job is present in case you need it -{% if branch_name == "18.0" %} +{% if branch_name == "19.0" %} # for the moment sentry and bus_alt_connection not migrated yet SERVER_WIDE_MODULES: web,queue_job {% else %} - SERVER_WIDE_MODULES: web,sentry,bus_alt_connection,queue_job + SERVER_WIDE_MODULES: web,sentry,bus_alt_connection {% endif %} SENTRY: "False" # on some project you may activate sentry for your ci @@ -37,7 +36,7 @@ services: PGUSER: ${CI_PROJECT_NAME} DB_HOST: PGHOST: -{% if branch_name != "18.0" %} +{% if branch_name != "19.0" %} # use pgbouncer DB_PORT: 6432 PGPORT: 6432 diff --git a/src/prod.docker-compose.yml.jinja b/src/prod.docker-compose.yml.jinja index ad98cb9..f9d2fdc 100644 --- a/src/prod.docker-compose.yml.jinja +++ b/src/prod.docker-compose.yml.jinja @@ -29,16 +29,16 @@ services: RUNNING_ENV: prod - # don't change after this line - # sentry and bus_alt_connection don't require installation # bus_alt_connection is required for CI and prod -{% if branch_name == "18.0" %} - SERVER_WIDE_MODULES: web,queue_job +{% if branch_name == "19.0" %} + SERVER_WIDE_MODULES: web {% else %} - SERVER_WIDE_MODULES: web,sentry,bus_alt_connection,queue_job + SERVER_WIDE_MODULES: web,sentry,bus_alt_connection {% endif %} + # don't change after this line + # ask infra team for the following PGSSLMODE: require DB_NAME: @@ -47,7 +47,7 @@ services: PGHOST: PGUSER: DB_USER: -{% if branch_name != "18.0" %} +{% if branch_name == "19.0" %} # use pgbouncer DB_PORT: 6432 PGPORT: 6432 From f04293508dc62154a258871f77a5ec7d18916007 Mon Sep 17 00:00:00 2001 From: hparfr Date: Tue, 9 Dec 2025 16:15:58 +0100 Subject: [PATCH 2/6] add server_environment_ir_config_parameter by default --- src/odoo/spec.yaml.jinja | 1 + 1 file changed, 1 insertion(+) diff --git a/src/odoo/spec.yaml.jinja b/src/odoo/spec.yaml.jinja index 1aebaa2..22f4a66 100644 --- a/src/odoo/spec.yaml.jinja +++ b/src/odoo/spec.yaml.jinja @@ -19,6 +19,7 @@ server-env: - data_encryption - server_environment - server_environment_data_encryption + - server_environment_ir_config_parameter src: https://github.com/oca/server-env {{ odoo_version }} server-tools: From 33ab808ed10aa59d46a24d547041ccbcf0e513f3 Mon Sep 17 00:00:00 2001 From: hparfr Date: Tue, 9 Dec 2025 16:16:23 +0100 Subject: [PATCH 3/6] default db_name for prod and change order of lines for better clarity --- src/prod.docker-compose.yml.jinja | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/prod.docker-compose.yml.jinja b/src/prod.docker-compose.yml.jinja index f9d2fdc..72b07c1 100644 --- a/src/prod.docker-compose.yml.jinja +++ b/src/prod.docker-compose.yml.jinja @@ -41,12 +41,12 @@ services: # ask infra team for the following PGSSLMODE: require - DB_NAME: - PGDATABASE: + DB_NAME: {{ project_name }} + PGDATABASE: {{ project_name }} + PGUSER: {{ project_name }} + DB_USER: {{ project_name }} DB_HOST: PGHOST: - PGUSER: - DB_USER: {% if branch_name == "19.0" %} # use pgbouncer DB_PORT: 6432 From b2acb6eba92394a5781a757029bd1e6b7fe0e803 Mon Sep 17 00:00:00 2001 From: hparfr Date: Tue, 9 Dec 2025 16:17:56 +0100 Subject: [PATCH 4/6] make requirements.txt templatable and use good requirement of sentry --- src/odoo/{requirements.txt => requirements.txt.jinja} | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) rename src/odoo/{requirements.txt => requirements.txt.jinja} (88%) diff --git a/src/odoo/requirements.txt b/src/odoo/requirements.txt.jinja similarity index 88% rename from src/odoo/requirements.txt rename to src/odoo/requirements.txt.jinja index 5ed0b2f..239755e 100644 --- a/src/odoo/requirements.txt +++ b/src/odoo/requirements.txt.jinja @@ -1,8 +1,13 @@ # TODO see what can be move into base image pyjwt # auth_oidc python-jose[cryptography] # auth_oidc -#sentry 1.9.0 fixé dans le manifest du module sentry pour le moment + +{% if branch_name in ("18.0", "19.0") %} +sentry-sdk>=2.0.0,<=2.22.0 +{% else %} +#sentry 1.9.0 for 14.0 to 17.0 sentry-sdk<=1.9.0 +{% endif %} #apispec #shopinvader #boto3==1.20.32 # shopinvader From 63986d258bf3c1d5241975922ed5fc06970c4735 Mon Sep 17 00:00:00 2001 From: hparfr Date: Wed, 10 Dec 2025 10:59:07 +0100 Subject: [PATCH 5/6] add support for templates per major varion --- .../answers.sh | 14 ++++++++++++-- .../odoo.cfg.tmpl | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) rename src/odoo/{templates => {% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}}/answers.sh (78%) rename src/odoo/{templates => {% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}}/odoo.cfg.tmpl (96%) diff --git a/src/odoo/templates/answers.sh b/src/odoo/{% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}/answers.sh similarity index 78% rename from src/odoo/templates/answers.sh rename to src/odoo/{% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}/answers.sh index bf2d8ee..ab9b88a 100644 --- a/src/odoo/templates/answers.sh +++ b/src/odoo/{% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}/answers.sh @@ -6,7 +6,7 @@ declare -x DB_NAME="${DB_NAME:-}" declare -x DB_USER="${DB_USER:-}" declare -x DB_PASSWORD="${DB_PASSWORD:-}" declare -x DB_SSLMODE="${DB_SSLMODE:-prefer}" -declare -x DB_FILTER="${DB_FILTER:-}" +declare -x DB_FILTER="${DB_FILTER:-^(${DB_NAME//,/|})$}" declare -x LIST_DB="${LIST_DB:-False}" declare -x ADMIN_PASSWD="${ADMIN_PASSWD:-}" declare -x DB_MAXCONN="${DB_MAXCONN:-64}" @@ -15,11 +15,12 @@ declare -x LIMIT_MEMORY_HARD="${LIMIT_MEMORY_HARD:-2684354560}" declare -x LIMIT_REQUEST="${LIMIT_REQUEST:-8192}" declare -x LIMIT_TIME_CPU="${LIMIT_TIME_CPU:-60}" declare -x LIMIT_TIME_REAL="${LIMIT_TIME_REAL:-120}" +declare -x LIMIT_TIME_REAL_CRON="${LIMIT_TIME_REAL_CRON:-120}" declare -x LOG_HANDLER="${LOG_HANDLER:-':INFO'}" declare -x LOG_LEVEL="${LOG_LEVEL:-info}" declare -x MAX_CRON_THREADS="${MAX_CRON_THREADS:-2}" declare -x WORKERS="${WORKERS:-4}" -declare -x LOGFILE="${LOGFILE:-}" +declare -x LOGFILE="${LOGFILE:-None}" declare -x LOG_DB="${LOG_DB:-False}" declare -x SYSLOG="${SYSLOG:-False}" declare -x RUNNING_ENV="${RUNNING_ENV:-dev}" @@ -27,6 +28,15 @@ declare -x WITHOUT_DEMO="${WITHOUT_DEMO:-True}" declare -x SERVER_WIDE_MODULES="${SERVER_WIDE_MODULES:-}" declare -x UNACCENT="${UNACCENT:-False}" declare -x ADDITIONAL_ODOO_RC="${ADDITIONAL_ODOO_RC:-}" +# diff with upstream +# we don't use PG vars because they should be explicitely +# defined in docker compose files +# the entrypoint is not run by docker exec +#declare -x PGHOST=${DB_HOST} +#declare -x PGPORT=${DB_PORT:-5432} +#declare -x PGUSER=${DB_USER} +#declare -x PGPASSWORD=${DB_PASSWORD} +#declare -x PGDATABASE=${DB_NAME} declare -x SENTRY="${SENTRY:-False}" declare -x SENTRY_DSN="${SENTRY_DSN:-''}" declare -x SENTRY_RELEASE="${SENTRY_RELEASE:-}" diff --git a/src/odoo/templates/odoo.cfg.tmpl b/src/odoo/{% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}/odoo.cfg.tmpl similarity index 96% rename from src/odoo/templates/odoo.cfg.tmpl rename to src/odoo/{% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}/odoo.cfg.tmpl index 0d6e3ae..7cc1afa 100644 --- a/src/odoo/templates/odoo.cfg.tmpl +++ b/src/odoo/{% if branch_name in ('14.0','15.0','16.0','17.0') %}templates{% endif %}/odoo.cfg.tmpl @@ -18,7 +18,7 @@ limit_memory_hard = ${LIMIT_MEMORY_HARD} limit_request = ${LIMIT_REQUEST} limit_time_cpu = ${LIMIT_TIME_CPU} limit_time_real = ${LIMIT_TIME_REAL} -limit_time_real_cron = ${LIMIT_TIME_REAL} +limit_time_real_cron = ${LIMIT_TIME_REAL_CRON} log_handler = ${LOG_HANDLER} log_level = ${LOG_LEVEL} max_cron_threads = ${MAX_CRON_THREADS} @@ -39,7 +39,7 @@ proxy_mode = True ; http_port = 8069 ; http_enable = True ; http_interface = -; longpolling_port = 8072 +; gevent_port = 8072 ; osv_memory_age_limit = 1.0 ; osv_memory_count_limit = False ; smtp_password = False From 9f84dfe3bd978863c099fe58a29ad70c69bb24a5 Mon Sep 17 00:00:00 2001 From: hparfr Date: Wed, 10 Dec 2025 11:13:42 +0100 Subject: [PATCH 6/6] support for v19 and add 18 template --- copier.yml | 1 + .../answers.sh | 53 +++++++++++++++ .../odoo.cfg.tmpl | 66 ++++++++++++++++++ .../answers.sh | 66 ++++++++++++++++++ .../odoo.cfg.tmpl | 68 +++++++++++++++++++ 5 files changed, 254 insertions(+) create mode 100644 src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/answers.sh create mode 100644 src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/odoo.cfg.tmpl create mode 100644 src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/answers.sh create mode 100644 src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/odoo.cfg.tmpl diff --git a/copier.yml b/copier.yml index cffdfe5..196578f 100644 --- a/copier.yml +++ b/copier.yml @@ -23,6 +23,7 @@ project_name: branch_name: type: str choices: + - "19.0" - "18.0" - "17.0" - "16.0" diff --git a/src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/answers.sh b/src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/answers.sh new file mode 100644 index 0000000..15d5ab2 --- /dev/null +++ b/src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/answers.sh @@ -0,0 +1,53 @@ +declare -x ADDONS_PATH="${ADDONS_PATH:-}" +declare -x DB_TEMPLATE="${DB_TEMPLATE:-template1}" +declare -x DB_HOST="${DB_HOST:-}" +declare -x DB_PORT="${DB_PORT:-5432}" +declare -x DB_REPLICA_HOST="${DB_REPLICA_HOST:-False}" +declare -x DB_REPLICA_PORT="${DB_REPLICA_PORT:-False}" +declare -x DB_NAME="${DB_NAME:-}" +declare -x DB_USER="${DB_USER:-}" +declare -x DB_PASSWORD="${DB_PASSWORD:-}" +declare -x DB_SSLMODE="${DB_SSLMODE:-prefer}" +declare -x DB_FILTER="${DB_FILTER:-^(${DB_NAME//,/|})$}" +declare -x LIST_DB="${LIST_DB:-False}" +declare -x ADMIN_PASSWD="${ADMIN_PASSWD:-}" +declare -x DB_MAXCONN="${DB_MAXCONN:-64}" +declare -x DB_MAXCONN_GEVENT="${DB_MAXCONN_GEVENT:-False}" +declare -x LIMIT_MEMORY_SOFT="${LIMIT_MEMORY_SOFT:-2147483648}" +declare -x LIMIT_MEMORY_SOFT_GEVENT="${LIMIT_MEMORY_SOFT_GEVENT:-False}" +declare -x LIMIT_MEMORY_HARD="${LIMIT_MEMORY_HARD:-2684354560}" +declare -x LIMIT_MEMORY_HARD_GEVENT="${LIMIT_MEMORY_HARD_GEVENT:-False}" +declare -x LIMIT_REQUEST="${LIMIT_REQUEST:-8192}" +declare -x LIMIT_TIME_CPU="${LIMIT_TIME_CPU:-60}" +declare -x LIMIT_TIME_REAL="${LIMIT_TIME_REAL:-120}" +declare -x LIMIT_TIME_REAL_CRON="${LIMIT_TIME_REAL_CRON:-120}" +declare -x LOG_HANDLER="${LOG_HANDLER:-':INFO'}" +declare -x LOG_LEVEL="${LOG_LEVEL:-info}" +declare -x MAX_CRON_THREADS="${MAX_CRON_THREADS:-2}" +declare -x WORKERS="${WORKERS:-4}" +declare -x LOGFILE="${LOGFILE:-None}" +declare -x LOG_DB="${LOG_DB:-False}" +declare -x SYSLOG="${SYSLOG:-False}" +declare -x RUNNING_ENV="${RUNNING_ENV:-dev}" +declare -x WITHOUT_DEMO="${WITHOUT_DEMO:-True}" +declare -x SERVER_WIDE_MODULES="${SERVER_WIDE_MODULES:-}" +declare -x UNACCENT="${UNACCENT:-False}" +declare -x ADDITIONAL_ODOO_RC="${ADDITIONAL_ODOO_RC:-}" +# diff with upstream +# we don't use PG vars because they should be explicitely +# defined in docker compose files +# the entrypoint is not run by docker exec +#declare -x PGHOST=${DB_HOST} +#declare -x PGPORT=${DB_PORT:-5432} +#declare -x PGUSER=${DB_USER} +#declare -x PGPASSWORD=${DB_PASSWORD} +#declare -x PGDATABASE=${DB_NAME} +declare -x SENTRY="${SENTRY:-False}" +declare -x SENTRY_DSN="${SENTRY_DSN:-''}" +declare -x SENTRY_RELEASE="${SENTRY_RELEASE:-}" +declare -x SENTRY_TRACES_SAMPLE_RATE="${SENTRY_TRACES_SAMPLE_RATE:-}" +declare -x ENCRYPTION_KEY_DEV="${ENCRYPTION_KEY_DEV:-}" +declare -x ENCRYPTION_KEY_CI="${ENCRYPTION_KEY_CI:-}" +declare -x ENCRYPTION_KEY_PROD="${ENCRYPTION_KEY_PROD:-}" +declare -x AUTH_OAUTH_PROVIDER_CLIENT_ID="${AUTH_OAUTH_PROVIDER_CLIENT_ID:-}" +declare -x AUTH_OAUTH_PROVIDER_CLIENT_SECRET="${AUTH_OAUTH_PROVIDER_CLIENT_SECRET:-}" diff --git a/src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/odoo.cfg.tmpl b/src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/odoo.cfg.tmpl new file mode 100644 index 0000000..7cc1afa --- /dev/null +++ b/src/odoo/{% if branch_name == '18.0' %}templates{% endif %}/odoo.cfg.tmpl @@ -0,0 +1,66 @@ +[options] +addons_path = ${ADDONS_PATH} +data_dir = /data/odoo +auto_reload = False +db_template = ${DB_TEMPLATE} +db_host = ${DB_HOST} +db_port = ${DB_PORT} +db_name = ${DB_NAME} +db_user = ${DB_USER} +db_password = ${DB_PASSWORD} +db_sslmode = ${DB_SSLMODE} +dbfilter = ${DB_FILTER} +list_db = ${LIST_DB} +admin_passwd = ${ADMIN_PASSWD} +db_maxconn = ${DB_MAXCONN} +limit_memory_soft = ${LIMIT_MEMORY_SOFT} +limit_memory_hard = ${LIMIT_MEMORY_HARD} +limit_request = ${LIMIT_REQUEST} +limit_time_cpu = ${LIMIT_TIME_CPU} +limit_time_real = ${LIMIT_TIME_REAL} +limit_time_real_cron = ${LIMIT_TIME_REAL_CRON} +log_handler = ${LOG_HANDLER} +log_level = ${LOG_LEVEL} +max_cron_threads = ${MAX_CRON_THREADS} +workers = ${WORKERS} +logfile = ${LOGFILE} +log_db = ${LOG_DB} +logrotate = True +syslog = ${SYSLOG} +running_env = ${RUNNING_ENV} +without_demo = ${WITHOUT_DEMO} +server_wide_modules = ${SERVER_WIDE_MODULES} +; We can activate proxy_mode even if we are not behind a proxy, because +; it is used only if HTTP_X_FORWARDED_HOST is set in environ +proxy_mode = True +; csv_internal_sep = , +; debug_mode = False +; email_from = False +; http_port = 8069 +; http_enable = True +; http_interface = +; gevent_port = 8072 +; osv_memory_age_limit = 1.0 +; osv_memory_count_limit = False +; smtp_password = False +; smtp_port = 25 +; smtp_server = localhost +; smtp_ssl = False +; smtp_user = False +unaccent = ${UNACCENT} + +sentry_enabled = ${SENTRY} +sentry_environment = ${RUNNING_ENV} +sentry_dsn = ${SENTRY_DSN} +sentry_release = ${SENTRY_RELEASE} +sentry_traces_sample_rate = ${SENTRY_TRACES_SAMPLE_RATE} + +encryption_key_dev=${ENCRYPTION_KEY_DEV} +encryption_key_ci=${ENCRYPTION_KEY_CI} +encryption_key_prod=${ENCRYPTION_KEY_PROD} +${ADDITIONAL_ODOO_RC} + + +[auth_oauth_provider.Akretion] +client_id=${AUTH_OAUTH_PROVIDER_CLIENT_ID} +client_secret=${AUTH_OAUTH_PROVIDER_CLIENT_SECRET} diff --git a/src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/answers.sh b/src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/answers.sh new file mode 100644 index 0000000..b5dc42e --- /dev/null +++ b/src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/answers.sh @@ -0,0 +1,66 @@ +declare -x ADDONS_PATH="${ADDONS_PATH:-}" +declare -x DB_TEMPLATE="${DB_TEMPLATE:-template1}" +declare -x DB_HOST="${DB_HOST:-}" +declare -x DB_PORT="${DB_PORT:-5432}" +declare -x DB_REPLICA_HOST="${DB_REPLICA_HOST:-None}" +declare -x DB_REPLICA_PORT="${DB_REPLICA_PORT:-None}" +declare -x DB_NAME="${DB_NAME:-}" +declare -x DB_USER="${DB_USER:-}" +declare -x DB_PASSWORD="${DB_PASSWORD:-}" +declare -x DB_SSLMODE="${DB_SSLMODE:-prefer}" +declare -x DB_FILTER="${DB_FILTER:-^(${DB_NAME//,/|})$}" +declare -x LIST_DB="${LIST_DB:-False}" +declare -x ADMIN_PASSWD="${ADMIN_PASSWD:-}" +declare -x DB_MAXCONN="${DB_MAXCONN:-64}" +declare -x DB_MAXCONN_GEVENT="${DB_MAXCONN_GEVENT:-None}" +declare -x LIMIT_MEMORY_SOFT="${LIMIT_MEMORY_SOFT:-2147483648}" +declare -x LIMIT_MEMORY_SOFT_GEVENT="${LIMIT_MEMORY_SOFT_GEVENT:-None}" +declare -x LIMIT_MEMORY_HARD="${LIMIT_MEMORY_HARD:-2684354560}" +declare -x LIMIT_MEMORY_HARD_GEVENT="${LIMIT_MEMORY_HARD_GEVENT:-None}" +declare -x LIMIT_REQUEST="${LIMIT_REQUEST:-8192}" +declare -x LIMIT_TIME_CPU="${LIMIT_TIME_CPU:-60}" +declare -x LIMIT_TIME_REAL="${LIMIT_TIME_REAL:-120}" +declare -x LIMIT_TIME_REAL_CRON="${LIMIT_TIME_REAL_CRON:-120}" +declare -x LOG_HANDLER="${LOG_HANDLER:-':INFO'}" +declare -x LOG_LEVEL="${LOG_LEVEL:-info}" +declare -x MAX_CRON_THREADS="${MAX_CRON_THREADS:-2}" +declare -x WORKERS="${WORKERS:-4}" +declare -x LOGFILE="${LOGFILE:-None}" +declare -x LOG_DB="${LOG_DB:-}" +declare -x SYSLOG="${SYSLOG:-False}" +declare -x RUNNING_ENV="${RUNNING_ENV:-dev}" +if [ ! -z "${WITH_DEMO:-}" ]; then + declare -x WITH_DEMO="${WITH_DEMO}" +elif [ ! -z "${WITHOUT_DEMO:-}" ]; then + # Fallback to WITHOUT_DEMO + # But inversing the logic + if [ "${WITHOUT_DEMO}" == "False" ]; then + declare -x WITH_DEMO="True" + else + declare -x WITH_DEMO="False" + fi +else + # nothing is set -> Default value + declare -x WITH_DEMO="False" +fi +declare -x SERVER_WIDE_MODULES="${SERVER_WIDE_MODULES:-}" +declare -x UNACCENT="${UNACCENT:-False}" +declare -x ADDITIONAL_ODOO_RC="${ADDITIONAL_ODOO_RC:-}" +# diff with upstream +# we don't use PG vars because they should be explicitely +# defined in docker compose files +# the entrypoint is not run by docker exec +#declare -x PGHOST=${DB_HOST} +#declare -x PGPORT=${DB_PORT:-5432} +#declare -x PGUSER=${DB_USER} +#declare -x PGPASSWORD=${DB_PASSWORD} +#declare -x PGDATABASE=${DB_NAME} +declare -x SENTRY="${SENTRY:-False}" +declare -x SENTRY_DSN="${SENTRY_DSN:-''}" +declare -x SENTRY_RELEASE="${SENTRY_RELEASE:-}" +declare -x SENTRY_TRACES_SAMPLE_RATE="${SENTRY_TRACES_SAMPLE_RATE:-}" +declare -x ENCRYPTION_KEY_DEV="${ENCRYPTION_KEY_DEV:-}" +declare -x ENCRYPTION_KEY_CI="${ENCRYPTION_KEY_CI:-}" +declare -x ENCRYPTION_KEY_PROD="${ENCRYPTION_KEY_PROD:-}" +declare -x AUTH_OAUTH_PROVIDER_CLIENT_ID="${AUTH_OAUTH_PROVIDER_CLIENT_ID:-}" +declare -x AUTH_OAUTH_PROVIDER_CLIENT_SECRET="${AUTH_OAUTH_PROVIDER_CLIENT_SECRET:-}" diff --git a/src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/odoo.cfg.tmpl b/src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/odoo.cfg.tmpl new file mode 100644 index 0000000..daa1a27 --- /dev/null +++ b/src/odoo/{% if branch_name == '19.0' %}templates{% endif %}/odoo.cfg.tmpl @@ -0,0 +1,68 @@ +[options] +addons_path = ${ADDONS_PATH} +data_dir = /data/odoo +db_template = ${DB_TEMPLATE} +db_host = ${DB_HOST} +db_port = ${DB_PORT} +db_replica_host = ${DB_REPLICA_HOST} +db_replica_port = ${DB_REPLICA_PORT} +db_name = ${DB_NAME} +db_user = ${DB_USER} +db_password = ${DB_PASSWORD} +db_sslmode = ${DB_SSLMODE} +dbfilter = ${DB_FILTER} +list_db = ${LIST_DB} +admin_passwd = ${ADMIN_PASSWD} +db_maxconn = ${DB_MAXCONN} +db_maxconn_gevent = ${DB_MAXCONN_GEVENT} +limit_memory_soft = ${LIMIT_MEMORY_SOFT} +limit_memory_soft_gevent = ${LIMIT_MEMORY_SOFT_GEVENT} +limit_memory_hard = ${LIMIT_MEMORY_HARD} +limit_memory_hard_gevent = ${LIMIT_MEMORY_HARD_GEVENT} +limit_request = ${LIMIT_REQUEST} +limit_time_cpu = ${LIMIT_TIME_CPU} +limit_time_real = ${LIMIT_TIME_REAL} +limit_time_real_cron = ${LIMIT_TIME_REAL_CRON} +log_handler = ${LOG_HANDLER} +log_level = ${LOG_LEVEL} +max_cron_threads = ${MAX_CRON_THREADS} +workers = ${WORKERS} +logfile = ${LOGFILE} +log_db = ${LOG_DB} +syslog = ${SYSLOG} +with_demo = ${WITH_DEMO} +server_wide_modules = ${SERVER_WIDE_MODULES} +; We can activate proxy_mode even if we are not behind a proxy, because +; it is used only if HTTP_X_FORWARDED_HOST is set in environ +proxy_mode = True +; csv_internal_sep = , +; debug_mode = False +; email_from = False +; http_port = 8069 +; http_enable = True +http_interface = 0.0.0.0 +; gevent_port = 8072 +; osv_memory_age_limit = 1.0 +; osv_memory_count_limit = False +; smtp_password = False +; smtp_port = 25 +; smtp_server = localhost +; smtp_ssl = False +; smtp_user = False +unaccent = ${UNACCENT} + +sentry_enabled = ${SENTRY} +sentry_environment = ${RUNNING_ENV} +sentry_dsn = ${SENTRY_DSN} +sentry_release = ${SENTRY_RELEASE} +sentry_traces_sample_rate = ${SENTRY_TRACES_SAMPLE_RATE} + +encryption_key_dev=${ENCRYPTION_KEY_DEV} +encryption_key_ci=${ENCRYPTION_KEY_CI} +encryption_key_prod=${ENCRYPTION_KEY_PROD} +${ADDITIONAL_ODOO_RC} + + +[auth_oauth_provider.Akretion] +client_id=${AUTH_OAUTH_PROVIDER_CLIENT_ID} +client_secret=${AUTH_OAUTH_PROVIDER_CLIENT_SECRET}