mirror of
https://github.com/odoocker/odoocker
synced 2025-11-04 07:19:15 +01:00
integrate keydb to odoocker
This commit is contained in:
150
.env.example
150
.env.example
@@ -4,11 +4,11 @@
|
|||||||
# Odoo
|
# Odoo
|
||||||
APP_ENV=local
|
APP_ENV=local
|
||||||
INIT=
|
INIT=
|
||||||
UPDATE=
|
UPDATE=custom_core
|
||||||
LOAD=base,web,session_redis
|
LOAD=base,web,session_redis
|
||||||
WORKERS=2
|
WORKERS=2
|
||||||
DEV_MODE=reload,qweb
|
DEV_MODE=reload,xml
|
||||||
DOMAIN=erp.odoocker.test
|
DOMAIN=erp.j8c.test
|
||||||
|
|
||||||
# Enterprise
|
# Enterprise
|
||||||
GITHUB_USER=
|
GITHUB_USER=
|
||||||
@@ -18,7 +18,7 @@ GITHUB_ACCESS_TOKEN=
|
|||||||
ADMIN_PASSWD=odoo
|
ADMIN_PASSWD=odoo
|
||||||
DB_HOST=postgres
|
DB_HOST=postgres
|
||||||
DB_PORT=5432
|
DB_PORT=5432
|
||||||
DB_NAME=odoo
|
DB_NAME=j8c
|
||||||
DB_USER=odoo
|
DB_USER=odoo
|
||||||
DB_PASSWORD=odoo
|
DB_PASSWORD=odoo
|
||||||
LOAD_LANGUAGE=
|
LOAD_LANGUAGE=
|
||||||
@@ -31,12 +31,12 @@ LIST_DB=True
|
|||||||
DBFILTER=.*
|
DBFILTER=.*
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=info
|
||||||
# Additional logs
|
# Additional logs
|
||||||
LOG_HANDLER_LEVEL=INFO
|
LOG_HANDLER_LEVEL=INFO
|
||||||
|
|
||||||
# Nginx
|
# Nginx
|
||||||
CORS_ALLOWED_DOMAIN="'http://external-domain.test'"
|
CORS_ALLOWED_DOMAIN="'https://odoo.j8c.com.mx'"
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
TEST_ENABLE=False
|
TEST_ENABLE=False
|
||||||
@@ -52,20 +52,46 @@ SMTP_PASSWORD=
|
|||||||
EMAIL_FROM=
|
EMAIL_FROM=
|
||||||
FROM_FILTER=
|
FROM_FILTER=
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
SESSION_REDIS=true
|
||||||
|
REDIS_HOST=redis
|
||||||
|
REDIS_PORT=6379
|
||||||
|
REDIS_PASSWORD=
|
||||||
|
# REDIS_URL=
|
||||||
|
REDIS_PREFIX=odoo
|
||||||
|
REDIS_EXPIRATION=604800
|
||||||
|
REDIS_EXPIRATION_ANONYMOUS=10800
|
||||||
|
|
||||||
|
# Postgres
|
||||||
|
POSTGRES_MAIN_HOST=${DB_HOST}
|
||||||
|
POSTGRES_MAIN_PORT=${DB_PORT}
|
||||||
|
POSTGRES_MAIN_DB=postgres
|
||||||
|
POSTGRES_MAIN_USER=postgres
|
||||||
|
POSTGRES_MAIN_PASSWORD=${DB_PASSWORD}
|
||||||
|
|
||||||
# PgAdmin
|
# PgAdmin
|
||||||
PGADMIN_DOMAIN=pgadmin.odoocker.test
|
PGADMIN_DOMAIN=pgadmin.j8c.test
|
||||||
|
PGADMING_DB_NAME=pgadmin
|
||||||
|
PGADMING_DB_USER=pgadmin
|
||||||
|
PGADMIN_DB_PASSWORD=${DB_PASSWORD}
|
||||||
|
PGADMIN_DB_HOST="'postgresql://${PGADMING_DB_USER}:${PGADMIN_DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${PGADMING_DB_NAME}'"
|
||||||
|
|
||||||
|
PGADMIN_EMAIL=contacto@juarezsoft.com.mx
|
||||||
PGADMIN_PASSWORD=odoo
|
PGADMIN_PASSWORD=odoo
|
||||||
|
|
||||||
|
PGADMIN_SERVERS_JSON=
|
||||||
|
PGADMIN_CONFIG_SERVER_MODE=True
|
||||||
|
|
||||||
#------------------------------#
|
#------------------------------#
|
||||||
# Project Configurations #
|
# Project Configurations #
|
||||||
#------------------------------#
|
#------------------------------#
|
||||||
# Docker
|
# Docker
|
||||||
PROJECT_NAME=odoocker
|
PROJECT_NAME=j8c
|
||||||
SUPPORT_EMAIL=mail@example.com
|
SUPPORT_EMAIL=contacto@juarezsoft.com.mx
|
||||||
|
|
||||||
# Containers' Tags
|
# Containers' Tags
|
||||||
ODOO_TAG=16.0
|
ODOO_TAG=15.0
|
||||||
POSTGRES_TAG=15.4
|
POSTGRES_TAG=16.0
|
||||||
NGINX_TAG=1.25.2
|
NGINX_TAG=1.25.2
|
||||||
NGINX_PROXY_TAG=1.3.1
|
NGINX_PROXY_TAG=1.3.1
|
||||||
ACME_COMPANION_TAG=2.2.8
|
ACME_COMPANION_TAG=2.2.8
|
||||||
@@ -87,6 +113,7 @@ WEBSOCKET_RATE_LIMIT_DELAY=0.2
|
|||||||
# Custom paths
|
# Custom paths
|
||||||
COMMUNITY_ADDONS=${ROOT_PATH}/addons
|
COMMUNITY_ADDONS=${ROOT_PATH}/addons
|
||||||
ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise
|
ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise
|
||||||
|
THIRD_PARTY_ADDONS=${ROOT_PATH}/third-party-addons
|
||||||
EXTRA_ADDONS=${ROOT_PATH}/extra-addons
|
EXTRA_ADDONS=${ROOT_PATH}/extra-addons
|
||||||
CUSTOM_ADDONS=${ROOT_PATH}/custom-addons
|
CUSTOM_ADDONS=${ROOT_PATH}/custom-addons
|
||||||
LOG_PATH=/var/log/odoo/odoo.log
|
LOG_PATH=/var/log/odoo/odoo.log
|
||||||
@@ -101,7 +128,7 @@ DEMO=False
|
|||||||
WITHOUT_DEMO=all
|
WITHOUT_DEMO=all
|
||||||
IMPORT_PARTIAL=False
|
IMPORT_PARTIAL=False
|
||||||
PIDFILE=
|
PIDFILE=
|
||||||
ADDONS_PATH=${COMMUNITY_ADDONS},${ENTERPRISE_ADDONS},${EXTRA_ADDONS},${CUSTOM_ADDONS}
|
ADDONS_PATH=${COMMUNITY_ADDONS},${ENTERPRISE_ADDONS},${THIRD_PARTY_ADDONS},${EXTRA_ADDONS},${CUSTOM_ADDONS}
|
||||||
UPGRADE_PATH=
|
UPGRADE_PATH=
|
||||||
SERVER_WIDE_MODULES=${LOAD}
|
SERVER_WIDE_MODULES=${LOAD}
|
||||||
DATA_DIR=/var/lib/odoo
|
DATA_DIR=/var/lib/odoo
|
||||||
@@ -113,7 +140,7 @@ DEBUG_INTERFACE=${HTTP_INTERFACE}
|
|||||||
HTTP_PORT=8069
|
HTTP_PORT=8069
|
||||||
DEBUG_PORT=8070
|
DEBUG_PORT=8070
|
||||||
XMLRPCS_PORT=8071
|
XMLRPCS_PORT=8071
|
||||||
GEVENT_PORT=8072
|
LONGPOLLING_PORT=8072
|
||||||
HTTP_ENABLE=True
|
HTTP_ENABLE=True
|
||||||
XMLRPCS=True
|
XMLRPCS=True
|
||||||
PROXY_MODE=True
|
PROXY_MODE=True
|
||||||
@@ -172,7 +199,7 @@ SHELL_INTERFACE=ptpython
|
|||||||
STOP_AFTER_INIT=False
|
STOP_AFTER_INIT=False
|
||||||
OSV_MEMORY_COUNT_LIMIT=False
|
OSV_MEMORY_COUNT_LIMIT=False
|
||||||
TRANSIENT_AGE_LIMIT=1.0
|
TRANSIENT_AGE_LIMIT=1.0
|
||||||
MAX_CRON_THREADS=2
|
MAX_CRON_THREADS=1
|
||||||
UNACCENT=${UNACCENT}
|
UNACCENT=${UNACCENT}
|
||||||
GEOIP_DATABASE=/usr/share/GeoIP/GeoLite2-City.mmdb
|
GEOIP_DATABASE=/usr/share/GeoIP/GeoLite2-City.mmdb
|
||||||
WORKERS=${WORKERS}
|
WORKERS=${WORKERS}
|
||||||
@@ -193,11 +220,11 @@ TEMP_DOCKER_SOCK=/tmp/docker.sock
|
|||||||
#----------------#
|
#----------------#
|
||||||
# Postgres #
|
# Postgres #
|
||||||
#----------------#
|
#----------------#
|
||||||
POSTGRES_HOST=${DB_HOST}
|
POSTGRES_HOST=${POSTGRES_MAIN_HOST}
|
||||||
POSTGRES_PORT=${DB_PORT}
|
POSTGRES_PORT=${POSTGRES_MAIN_PORT}
|
||||||
POSTGRES_DB=postgres
|
POSTGRES_DB=${POSTGRES_MAIN_DB}
|
||||||
POSTGRES_USER=${DB_USER}
|
POSTGRES_USER=${POSTGRES_MAIN_USER}
|
||||||
POSTGRES_PASSWORD=${DB_PASSWORD}
|
POSTGRES_PASSWORD=${POSTGRES_MAIN_PASSWORD}
|
||||||
PGDATA=/var/lib/postgresql/data/${PROJECT_NAME}
|
PGDATA=/var/lib/postgresql/data/${PROJECT_NAME}
|
||||||
|
|
||||||
#-------------#
|
#-------------#
|
||||||
@@ -210,16 +237,6 @@ LETSENCRYPT_HOST=${DOMAIN}
|
|||||||
LETSENCRYPT_EMAIL=${SUPPORT_EMAIL}
|
LETSENCRYPT_EMAIL=${SUPPORT_EMAIL}
|
||||||
CORS_ALLOWED_DOMAIN=${CORS_ALLOWED_DOMAIN}
|
CORS_ALLOWED_DOMAIN=${CORS_ALLOWED_DOMAIN}
|
||||||
|
|
||||||
#-------------#
|
|
||||||
# PgAdmin #
|
|
||||||
#-------------#
|
|
||||||
PGADMIN_DATA=/var/lib/pgadmin
|
|
||||||
PGADMIN_VIRTUAL_HOST=${PGADMIN_DOMAIN}
|
|
||||||
PGADMIN_DEFAULT_EMAIL=${SUPPORT_EMAIL}
|
|
||||||
PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD}
|
|
||||||
PGADMIN_LETSENCRYPT_HOST=${PGADMIN_DOMAIN}
|
|
||||||
LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
|
|
||||||
|
|
||||||
#-------------------#
|
#-------------------#
|
||||||
# Nginx Proxy #
|
# Nginx Proxy #
|
||||||
#-------------------#
|
#-------------------#
|
||||||
@@ -236,14 +253,67 @@ CORS_ALLOWED_DOMAIN=${CORS_ALLOWED_DOMAIN}
|
|||||||
#----------------------#
|
#----------------------#
|
||||||
DEFAULT_EMAIL=${SUPPORT_EMAIL}
|
DEFAULT_EMAIL=${SUPPORT_EMAIL}
|
||||||
|
|
||||||
#----------------------#
|
#-------------#
|
||||||
# REDIS Caching #
|
# Redis #
|
||||||
#----------------------#
|
#-------------#
|
||||||
ODOO_SESSION_REDIS = ${ODOO_SESSION_REDIS}
|
ODOO_SESSION_REDIS=${SESSION_REDIS}
|
||||||
ODOO_SESSION_REDIS_HOST = ${ODOO_SESSION_REDIS_HOST}
|
ODOO_SESSION_REDIS_HOST=${REDIS_HOST}
|
||||||
ODOO_SESSION_REDIS_PORT = ${ODOO_SESSION_REDIS_PORT}
|
ODOO_SESSION_REDIS_PORT=${REDIS_PORT}
|
||||||
ODOO_SESSION_REDIS_PASSWORD = ${ODOO_SESSION_REDIS_PASSWORD}
|
ODOO_SESSION_REDIS_PASSWORD=${REDIS_PASSWORD}
|
||||||
ODOO_SESSION_REDIS_URL = ${ODOO_SESSION_REDIS_URL}
|
# ODOO_SESSION_REDIS_URL=
|
||||||
ODOO_SESSION_REDIS_PREFIX = ${ODOO_SESSION_REDIS_PREFIX}
|
ODOO_SESSION_REDIS_PREFIX=${REDIS_PREFIX}
|
||||||
ODOO_SESSION_REDIS_EXPIRATION = ${ODOO_SESSION_REDIS_EXPIRATION}
|
ODOO_SESSION_REDIS_EXPIRATION=${REDIS_EXPIRATION}
|
||||||
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS = ${ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS}
|
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS=${REDIS_EXPIRATION_ANONYMOUS}
|
||||||
|
|
||||||
|
#-------------#
|
||||||
|
# PgAdmin #
|
||||||
|
#-------------#
|
||||||
|
# Container
|
||||||
|
PGADMIN_DATA=/var/lib/pgadmin
|
||||||
|
|
||||||
|
PGADMIN_SERVERS_JSON=${PGADMIN_SERVERS_JSON}
|
||||||
|
|
||||||
|
PGADMIN_DEFAULT_EMAIL=${PGADMIN_EMAIL}
|
||||||
|
PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD}
|
||||||
|
|
||||||
|
PGADMIN_VIRTUAL_HOST=${PGADMIN_DOMAIN}
|
||||||
|
PGADMIN_LETSENCRYPT_HOST=${PGADMIN_DOMAIN}
|
||||||
|
PGADMIN_LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
|
||||||
|
|
||||||
|
# PgAdmin Configuration
|
||||||
|
PGADMIN_CONFIG_APP_NAME="'pgAdmin 4'"
|
||||||
|
PGADMIN_CONFIG_SERVER_MODE=${PGADMIN_CONFIG_SERVER_MODE}
|
||||||
|
PGADMIN_CONFIG_CONFIG_DATABASE_CONNECTION_POOL_SIZE=5
|
||||||
|
PGADMIN_CONFIG_DEFAULT_SERVER="'127.0.0.1'"
|
||||||
|
PGADMIN_CONFIG_DEFAULT_SERVER_PORT=5050
|
||||||
|
PGADMIN_CONFIG_MAX_SESSION_IDLE_TIME=120
|
||||||
|
PGADMIN_CONFIG_CONFIG_DATABASE_URI=${PGADMIN_DB_HOST}
|
||||||
|
|
||||||
|
# Password Settings
|
||||||
|
PGADMIN_CONFIG_PASSWORD_LENGTH_MIN=6
|
||||||
|
PGADMIN_CONFIG_ALLOW_SAVE_PASSWORD=True
|
||||||
|
PGADMIN_CONFIG_ALLOW_SAVE_TUNNEL_PASSWORD=True
|
||||||
|
PGADMIN_CONFIG_MAX_LOGIN_ATTEMPTS=10
|
||||||
|
|
||||||
|
# Query History
|
||||||
|
PGADMIN_CONFIG_MAX_QUERY_HIST_STORED=20
|
||||||
|
|
||||||
|
# SMTP Server
|
||||||
|
PGADMIN_CONFIG_MAIL_SERVER="'localhost'"
|
||||||
|
PGADMIN_CONFIG_MAIL_PORT=25
|
||||||
|
PGADMIN_CONFIG_MAIL_USE_SSL=False
|
||||||
|
PGADMIN_CONFIG_MAIL_USE_TLS=False
|
||||||
|
PGADMIN_CONFIG_MAIL_USERNAME="''"
|
||||||
|
PGADMIN_CONFIG_MAIL_PASSWORD="''"
|
||||||
|
PGADMIN_CONFIG_MAIL_DEBUG=False
|
||||||
|
PGADMIN_CONFIG_SECURITY_EMAIL_SENDER="'$PGADMIN_DEFAULT_EMAIL'"
|
||||||
|
|
||||||
|
# Dynamic PgAdmin Servers
|
||||||
|
PGADMIN_DB1_NAME=Odoocker
|
||||||
|
PGADMIN_DB1_HOST=localhost
|
||||||
|
PGADMIN_DB1_PORT=5432
|
||||||
|
PGADMIN_DB1_MAINTENANCE_DB=odoocker
|
||||||
|
PGADMIN_DB1_USERNAME=odoo
|
||||||
|
PGADMIN_DB1_TUNNEL_HOST=erp.odoocker.test
|
||||||
|
PGADMIN_DB1_TUNNEL_PORT=22
|
||||||
|
PGADMIN_DB1_TUNNEL_USERNAME=ubuntu
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,6 +1,9 @@
|
|||||||
# Ignores the main configuration file.
|
# Ignores the main configuration file.
|
||||||
/.env
|
/.env
|
||||||
|
|
||||||
|
# Ignores the pgadmin private key
|
||||||
|
pgadmin/private_key
|
||||||
|
|
||||||
# Ignores the docker compose local or production environment.
|
# Ignores the docker compose local or production environment.
|
||||||
docker-compose.override.yml
|
docker-compose.override.yml
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ services:
|
|||||||
restart: 'no'
|
restart: 'no'
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432
|
- 5432:5432
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
restart: 'no'
|
restart: 'no'
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
services:
|
services:
|
||||||
pgadmin:
|
pgadmin:
|
||||||
image: dpage/pgadmin4:${PGADMIN_TAG}
|
build:
|
||||||
restart: unless-stopped
|
context: ./
|
||||||
|
dockerfile: ./pgadmin/Dockerfile
|
||||||
|
args:
|
||||||
|
- PGADMIN_TAG
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
restart: 'no'
|
||||||
expose:
|
expose:
|
||||||
- 80
|
- 80
|
||||||
volumes:
|
volumes:
|
||||||
@@ -11,7 +17,27 @@ services:
|
|||||||
- PGADMIN_DEFAULT_PASSWORD
|
- PGADMIN_DEFAULT_PASSWORD
|
||||||
- VIRTUAL_HOST=${PGADMIN_VIRTUAL_HOST}
|
- VIRTUAL_HOST=${PGADMIN_VIRTUAL_HOST}
|
||||||
- LETSENCRYPT_HOST=${PGADMIN_LETSENCRYPT_HOST}
|
- LETSENCRYPT_HOST=${PGADMIN_LETSENCRYPT_HOST}
|
||||||
- LETSENCRYPT_EMAIL
|
- LETSENCRYPT_EMAIL=${PGADMIN_LETSENCRYPT_EMAIL}
|
||||||
|
- PGADMIN_CONFIG_APP_NAME
|
||||||
|
- PGADMIN_CONFIG_CONFIG_DATABASE_CONNECTION_POOL_SIZE
|
||||||
|
- PGADMIN_CONFIG_SERVER_MODE
|
||||||
|
- PGADMIN_CONFIG_DEFAULT_SERVER
|
||||||
|
- PGADMIN_CONFIG_DEFAULT_SERVER_PORT
|
||||||
|
- PGADMIN_CONFIG_PASSWORD_LENGTH_MIN
|
||||||
|
- PGADMIN_CONFIG_MAX_SESSION_IDLE_TIME
|
||||||
|
- PGADMIN_CONFIG_CONFIG_DATABASE_URI
|
||||||
|
- PGADMIN_CONFIG_ALLOW_SAVE_PASSWORD
|
||||||
|
- PGADMIN_CONFIG_MAX_QUERY_HIST_STORED
|
||||||
|
- PGADMIN_CONFIG_MAIL_SERVER
|
||||||
|
- PGADMIN_CONFIG_MAIL_PORT
|
||||||
|
- PGADMIN_CONFIG_MAIL_USE_SSL
|
||||||
|
- PGADMIN_CONFIG_MAIL_USE_TLS
|
||||||
|
- PGADMIN_CONFIG_MAIL_USERNAME
|
||||||
|
- PGADMIN_CONFIG_MAIL_PASSWORD
|
||||||
|
- PGADMIN_CONFIG_MAIL_DEBUG
|
||||||
|
- PGADMIN_CONFIG_SECURITY_EMAIL_SENDER
|
||||||
|
- PGADMIN_CONFIG_ALLOW_SAVE_TUNNEL_PASSWORD
|
||||||
|
- PGADMIN_CONFIG_MAX_LOGIN_ATTEMPTS
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ services:
|
|||||||
- GITHUB_USER
|
- GITHUB_USER
|
||||||
- GITHUB_ACCESS_TOKEN
|
- GITHUB_ACCESS_TOKEN
|
||||||
- ENTERPRISE_ADDONS
|
- ENTERPRISE_ADDONS
|
||||||
|
- THIRD_PARTY_ADDONS
|
||||||
- LOG_PATH
|
- LOG_PATH
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
@@ -20,6 +21,7 @@ services:
|
|||||||
- ./odoo/custom-addons:${CUSTOM_ADDONS}
|
- ./odoo/custom-addons:${CUSTOM_ADDONS}
|
||||||
- ./odoo/entrypoint.sh:/entrypoint.sh
|
- ./odoo/entrypoint.sh:/entrypoint.sh
|
||||||
- ./odoo/odoorc.sh:/odoorc.sh
|
- ./odoo/odoorc.sh:/odoorc.sh
|
||||||
|
- ./odoo/third-party-addons.sh:/third-party-addons.sh
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env
|
- ./.env
|
||||||
networks:
|
networks:
|
||||||
@@ -27,12 +29,11 @@ services:
|
|||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
build:
|
build:
|
||||||
context: ./postgres
|
context: ./
|
||||||
dockerfile: Dockerfile
|
dockerfile: ./postgres/Dockerfile
|
||||||
args:
|
args:
|
||||||
- POSTGRES_TAG
|
- POSTGRES_TAG
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
shm_size: 1GB
|
|
||||||
tty: true
|
tty: true
|
||||||
volumes:
|
volumes:
|
||||||
- pg-data:${PGDATA}
|
- pg-data:${PGDATA}
|
||||||
@@ -42,6 +43,12 @@ services:
|
|||||||
- POSTGRES_USER
|
- POSTGRES_USER
|
||||||
- POSTGRES_PASSWORD
|
- POSTGRES_PASSWORD
|
||||||
- PGDATA
|
- PGDATA
|
||||||
|
- DB_USER
|
||||||
|
- DB_TEMPLATE
|
||||||
|
- UNACCENT_TEMPLATE
|
||||||
|
- PGADMING_DB_NAME
|
||||||
|
- PGADMING_DB_USER
|
||||||
|
- PGADMIN_DB_PASSWORD
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
|
|
||||||
@@ -83,17 +90,16 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
|
|
||||||
keydb:
|
redis:
|
||||||
image: eqalpha/keydb:latest
|
image: eqalpha/keydb:latest
|
||||||
platform: linux/amd64
|
platform: linux/amd64
|
||||||
shm_size: 1GB
|
ports:
|
||||||
|
- 6379:6379
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
# command: keydb-server /etc/keydb/keydb.conf
|
|
||||||
volumes:
|
volumes:
|
||||||
#- ./keydb.conf:/etc/keydb/keydb.conf:ro
|
- redis-data:/var/lib/keydb
|
||||||
- cache-db-data:/var/lib/keydb
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data-dir:
|
data-dir:
|
||||||
@@ -101,8 +107,7 @@ volumes:
|
|||||||
certs:
|
certs:
|
||||||
vhost:
|
vhost:
|
||||||
html:
|
html:
|
||||||
cache-db-data:
|
redis-data:
|
||||||
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
internal:
|
internal:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ server {
|
|||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_pass http://odoo:8069;
|
proxy_pass http://odoo:8069;
|
||||||
@@ -39,19 +39,12 @@ server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
location ~* /web/static/ {
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_pass http://odoo:8069;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /websocket {
|
location /websocket {
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Forwarded-Host $host;
|
proxy_set_header X-Forwarded-Host $host;
|
||||||
|
proxy_set_header Host $host;
|
||||||
proxy_pass http://odoo:8072;
|
proxy_pass http://odoo:8072;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ ARG LOG_PATH
|
|||||||
ARG GITHUB_USER
|
ARG GITHUB_USER
|
||||||
ARG GITHUB_ACCESS_TOKEN
|
ARG GITHUB_ACCESS_TOKEN
|
||||||
ARG ENTERPRISE_ADDONS
|
ARG ENTERPRISE_ADDONS
|
||||||
|
ARG THIRD_PARTY_ADDONS
|
||||||
ARG ODOO_RC
|
ARG ODOO_RC
|
||||||
|
|
||||||
ENV ODOO_TAG=${ODOO_TAG} \
|
ENV ODOO_TAG=${ODOO_TAG} \
|
||||||
@@ -21,6 +22,7 @@ ENV ODOO_TAG=${ODOO_TAG} \
|
|||||||
GITHUB_USER=${GITHUB_USER} \
|
GITHUB_USER=${GITHUB_USER} \
|
||||||
GITHUB_ACCESS_TOKEN=${GITHUB_ACCESS_TOKEN} \
|
GITHUB_ACCESS_TOKEN=${GITHUB_ACCESS_TOKEN} \
|
||||||
ENTERPRISE_ADDONS=${ENTERPRISE_ADDONS} \
|
ENTERPRISE_ADDONS=${ENTERPRISE_ADDONS} \
|
||||||
|
THIRD_PARTY_ADDONS=${THIRD_PARTY_ADDONS} \
|
||||||
ODOO_RC=${ODOO_RC}
|
ODOO_RC=${ODOO_RC}
|
||||||
|
|
||||||
#------------------------#
|
#------------------------#
|
||||||
@@ -55,6 +57,16 @@ RUN if [ -n "$GITHUB_USER" ] && [ -n "$GITHUB_ACCESS_TOKEN" ]; then \
|
|||||||
git clone https://${GITHUB_USER}:${GITHUB_ACCESS_TOKEN}@github.com/odoo/enterprise.git ${ENTERPRISE_ADDONS} --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags; \
|
git clone https://${GITHUB_USER}:${GITHUB_ACCESS_TOKEN}@github.com/odoo/enterprise.git ${ENTERPRISE_ADDONS} --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#-------------------------#
|
||||||
|
# Odoo Extra Addons #
|
||||||
|
#-------------------------#
|
||||||
|
|
||||||
|
RUN mkdir -p ${THIRD_PARTY_ADDONS} && \
|
||||||
|
chown odoo:odoo -R ${THIRD_PARTY_ADDONS}
|
||||||
|
|
||||||
|
COPY --chown=odoo:odoo ./odoo/third-party-addons.sh /
|
||||||
|
RUN /third-party-addons.sh && chown odoo:odoo ${THIRD_PARTY_ADDONS}
|
||||||
|
|
||||||
#---------------------#
|
#---------------------#
|
||||||
# PIP Dependecies #
|
# PIP Dependecies #
|
||||||
#---------------------#
|
#---------------------#
|
||||||
@@ -64,7 +76,7 @@ RUN pip3 install --upgrade pip
|
|||||||
# Copy & Install PIP requirements
|
# Copy & Install PIP requirements
|
||||||
COPY --chown=odoo:odoo ./odoo/requirements.txt /tmp/requirements.txt
|
COPY --chown=odoo:odoo ./odoo/requirements.txt /tmp/requirements.txt
|
||||||
|
|
||||||
RUN python3 -m pip install --upgrade -r /tmp/requirements.txt && \
|
RUN python3 -m pip install -r /tmp/requirements.txt && \
|
||||||
rm /tmp/requirements.txt
|
rm /tmp/requirements.txt
|
||||||
|
|
||||||
#---------------------#
|
#---------------------#
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
'name': 'Report URL',
|
'name': 'Odoocker Base',
|
||||||
'summary': 'Adds Report URL to Odoo Container',
|
'summary': 'Supercharge Odoo with Odoocker',
|
||||||
'description': '''
|
'description': '''
|
||||||
Odoo Containers doesn't come with report.url param out of the box, so we add it for you to work with Odoocker.
|
Some Odoocker dependencies require to some custom values that we cover with this Addon for you.
|
||||||
''',
|
''',
|
||||||
'version': '1.0.0',
|
'version': '1.0.0',
|
||||||
'category': 'Technical',
|
'category': 'Technical',
|
||||||
@@ -48,6 +48,11 @@
|
|||||||
# ... other qweb templates
|
# ... other qweb templates
|
||||||
],
|
],
|
||||||
'assets': {
|
'assets': {
|
||||||
|
'web.assets_frontend': [
|
||||||
|
'module_name/static/src/js/file.js',
|
||||||
|
'module_name/static/src/css/style.css'
|
||||||
|
# ... other assets
|
||||||
|
],
|
||||||
'web.assets_backend': [
|
'web.assets_backend': [
|
||||||
'module_name/static/src/js/file.js',
|
'module_name/static/src/js/file.js',
|
||||||
'module_name/static/src/css/style.css'
|
'module_name/static/src/css/style.css'
|
||||||
@@ -64,9 +64,8 @@ xmlrpcs_interface = {XMLRPCS_INTERFACE}
|
|||||||
; --xmlrpcs-port
|
; --xmlrpcs-port
|
||||||
xmlrpcs_port = {XMLRPCS_PORT}
|
xmlrpcs_port = {XMLRPCS_PORT}
|
||||||
|
|
||||||
; --gevent-port | --longpolling_port (deprecated)
|
; --longpolling_port
|
||||||
gevent_port = {GEVENT_PORT}
|
gevent_port = {GEVENT_PORT}
|
||||||
longpolling_port = False
|
|
||||||
|
|
||||||
; --no-http | --no-xmlrpc
|
; --no-http | --no-xmlrpc
|
||||||
http_enable = {HTTP_ENABLE}
|
http_enable = {HTTP_ENABLE}
|
||||||
@@ -215,7 +214,7 @@ dbfilter = {DBFILTER}
|
|||||||
;------------------;
|
;------------------;
|
||||||
; Advanced options ;
|
; Advanced options ;
|
||||||
;------------------;
|
;------------------;
|
||||||
; --dev (all, reload, qweb, werkzeug, sql, shell, assets, tests)
|
; --dev
|
||||||
dev_mode = {DEV_MODE}
|
dev_mode = {DEV_MODE}
|
||||||
|
|
||||||
; --shell-interface
|
; --shell-interface
|
||||||
@@ -260,22 +259,29 @@ limit_time_real_cron = {LIMIT_TIME_REAL_CRON}
|
|||||||
; --limit-request
|
; --limit-request
|
||||||
limit_request = {LIMIT_REQUEST}
|
limit_request = {LIMIT_REQUEST}
|
||||||
|
|
||||||
;------------------------------------------;
|
;-------------;
|
||||||
; Options not exposed on the command line. ;
|
; Redis ;
|
||||||
;------------------------------------------;
|
;-------------;
|
||||||
; --ODOO_SESSION_REDIS
|
; has to be 1 or true
|
||||||
ODOO_SESSION_REDIS = {ODOO_SESSION_REDIS} ;has to be 1 or true
|
ODOO_SESSION_REDIS = {ODOO_SESSION_REDIS}
|
||||||
; --ODOO_SESSION_REDIS_HOST
|
|
||||||
ODOO_SESSION_REDIS_HOST = {ODOO_SESSION_REDIS_HOST} ;is the redis hostname (default is localhost)
|
; is the redis hostname (default is localhost)
|
||||||
; --ODOO_SESSION_REDIS_PORT
|
ODOO_SESSION_REDIS_HOST = {ODOO_SESSION_REDIS_HOST}
|
||||||
ODOO_SESSION_REDIS_PORT = {ODOO_SESSION_REDIS_PORT} ;is the redis port (default is 6379)
|
|
||||||
; --ODOO_SESSION_REDIS_PASSWORD
|
; is the redis port (default is 6379)
|
||||||
ODOO_SESSION_REDIS_PASSWORD = {ODOO_SESSION_REDIS_PASSWORD} ;is the password for the AUTH command (optional)
|
ODOO_SESSION_REDIS_PORT = {ODOO_SESSION_REDIS_PORT}
|
||||||
; -- ODOO_SESSION_REDIS_URL
|
|
||||||
ODOO_SESSION_REDIS_URL = {ODOO_SESSION_REDIS_URL} ;is an alternative way to define the Redis server address. It's the preferred way when you're using the rediss:// protocol.
|
; is the password for the AUTH command (optional)
|
||||||
; -- ODOO_SESSION_REDIS_PREFIX
|
ODOO_SESSION_REDIS_PASSWORD = {ODOO_SESSION_REDIS_PASSWORD}
|
||||||
ODOO_SESSION_REDIS_PREFIX = {ODOO_SESSION_REDIS_PREFIX} ;is the prefix for the session keys (optional)
|
|
||||||
; -- ODOO_SESSION_REDIS_EXPIRATION
|
; is an alternative way to define the Redis server address. It's the preferred way when you're using the rediss:// protocol.
|
||||||
ODOO_SESSION_REDIS_EXPIRATION = {ODOO_SESSION_REDIS_EXPIRATION} ;is the time in seconds before expiration of the sessions (default is 7 days)
|
ODOO_SESSION_REDIS_URL = {ODOO_SESSION_REDIS_URL}
|
||||||
; -- ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS
|
|
||||||
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS = {ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS} ;the time in seconds before expiration of the anonymous sessions (default is 3 hours)
|
; is the prefix for the session keys (optional)
|
||||||
|
ODOO_SESSION_REDIS_PREFIX = {ODOO_SESSION_REDIS_PREFIX}
|
||||||
|
|
||||||
|
; is the time in seconds before expiration of the sessions (default is 7 days)
|
||||||
|
ODOO_SESSION_REDIS_EXPIRATION = {ODOO_SESSION_REDIS_EXPIRATION}
|
||||||
|
|
||||||
|
; the time in seconds before expiration of the anonymous sessions (default is 3 hours)
|
||||||
|
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS = {ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS}
|
||||||
|
|||||||
@@ -100,6 +100,22 @@ defaults=(
|
|||||||
[LIMIT_TIME_REAL]=${LIMIT_TIME_REAL}
|
[LIMIT_TIME_REAL]=${LIMIT_TIME_REAL}
|
||||||
[LIMIT_TIME_REAL_CRON]=${LIMIT_TIME_REAL_CRON}
|
[LIMIT_TIME_REAL_CRON]=${LIMIT_TIME_REAL_CRON}
|
||||||
[LIMIT_REQUEST]=${LIMIT_REQUEST}
|
[LIMIT_REQUEST]=${LIMIT_REQUEST}
|
||||||
|
|
||||||
|
[ODOO_SESSION_REDIS]=${ODOO_SESSION_REDIS}
|
||||||
|
[ODOO_SESSION_REDIS_HOST]=${ODOO_SESSION_REDIS_HOST}
|
||||||
|
[ODOO_SESSION_REDIS_PORT]=${ODOO_SESSION_REDIS_PORT}
|
||||||
|
[ODOO_SESSION_REDIS_PASSWORD]=${ODOO_SESSION_REDIS_PASSWORD}
|
||||||
|
[ODOO_SESSION_REDIS_URL]=${ODOO_SESSION_REDIS_URL}
|
||||||
|
[ODOO_SESSION_REDIS_PREFIX]=${ODOO_SESSION_REDIS_PREFIX}
|
||||||
|
[ODOO_SESSION_REDIS_EXPIRATION]=${ODOO_SESSION_REDIS_EXPIRATION}
|
||||||
|
[ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS]=${ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS}
|
||||||
|
|
||||||
|
[DISABLE_ATTACHMENT_STORAGE]=${DISABLE_ATTACHMENT_STORAGE}
|
||||||
|
[AWS_HOST]=${AWS_HOST}
|
||||||
|
[AWS_REGION]=${AWS_REGION}
|
||||||
|
[AWS_ACCESS_KEY_ID]=${AWS_ACCESS_KEY_ID}
|
||||||
|
[AWS_SECRET_ACCESS_KEY]=${AWS_SECRET_ACCESS_KEY}
|
||||||
|
[AWS_BUCKETNAME]=${AWS_BUCKETNAME}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Define the template
|
# Define the template
|
||||||
@@ -172,7 +188,6 @@ xmlrpcs_port = {XMLRPCS_PORT}
|
|||||||
|
|
||||||
; --gevent-port | --longpolling_port (deprecated)
|
; --gevent-port | --longpolling_port (deprecated)
|
||||||
gevent_port = {GEVENT_PORT}
|
gevent_port = {GEVENT_PORT}
|
||||||
longpolling_port = False
|
|
||||||
|
|
||||||
; --no-http | --no-xmlrpc
|
; --no-http | --no-xmlrpc
|
||||||
http_enable = {HTTP_ENABLE}
|
http_enable = {HTTP_ENABLE}
|
||||||
@@ -365,6 +380,34 @@ limit_time_real_cron = {LIMIT_TIME_REAL_CRON}
|
|||||||
|
|
||||||
; --limit-request
|
; --limit-request
|
||||||
limit_request = {LIMIT_REQUEST}
|
limit_request = {LIMIT_REQUEST}
|
||||||
|
|
||||||
|
;-------------;
|
||||||
|
; Redis ;
|
||||||
|
;-------------;
|
||||||
|
; has to be 1 or true
|
||||||
|
ODOO_SESSION_REDIS = {ODOO_SESSION_REDIS}
|
||||||
|
|
||||||
|
; is the redis hostname (default is localhost)
|
||||||
|
ODOO_SESSION_REDIS_HOST = {ODOO_SESSION_REDIS_HOST}
|
||||||
|
|
||||||
|
; is the redis port (default is 6379)
|
||||||
|
ODOO_SESSION_REDIS_PORT = {ODOO_SESSION_REDIS_PORT}
|
||||||
|
|
||||||
|
; is the password for the AUTH command (optional)
|
||||||
|
ODOO_SESSION_REDIS_PASSWORD = {ODOO_SESSION_REDIS_PASSWORD}
|
||||||
|
|
||||||
|
; is an alternative way to define the Redis server address. It's the preferred way when you're using the rediss:// protocol.
|
||||||
|
ODOO_SESSION_REDIS_URL = {ODOO_SESSION_REDIS_URL}
|
||||||
|
|
||||||
|
; is the prefix for the session keys (optional)
|
||||||
|
ODOO_SESSION_REDIS_PREFIX = {ODOO_SESSION_REDIS_PREFIX}
|
||||||
|
|
||||||
|
; is the time in seconds before expiration of the sessions (default is 7 days)
|
||||||
|
ODOO_SESSION_REDIS_EXPIRATION = {ODOO_SESSION_REDIS_EXPIRATION}
|
||||||
|
|
||||||
|
; the time in seconds before expiration of the anonymous sessions (default is 3 hours)
|
||||||
|
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS = {ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
debugpy
|
debugpy
|
||||||
websocket-client
|
websocket-client
|
||||||
redis
|
redis
|
||||||
|
|||||||
2
odoo/third-party-addons.sh
Executable file
2
odoo/third-party-addons.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
git clone https://github.com/camptocamp/odoo-cloud-platform.git --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags;
|
||||||
|
cp -r odoo-cloud-platform/session_redis ${THIRD_PARTY_ADDONS}/session_redis
|
||||||
32
pgadmin/Dockerfile
Normal file
32
pgadmin/Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
#------------------------#
|
||||||
|
# PGAdmin Server #
|
||||||
|
#------------------------#
|
||||||
|
ARG PGADMIN_TAG
|
||||||
|
FROM dpage/pgadmin4:${PGADMIN_TAG}
|
||||||
|
|
||||||
|
# Receive ARGs from docker-compose.yml & convert them into ENVs
|
||||||
|
ARG PGADMIN_DEFAULT_EMAIL
|
||||||
|
|
||||||
|
ENV PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
|
||||||
|
|
||||||
|
# Switch to root user
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# Install bash
|
||||||
|
RUN apk add --no-cache bash jq sqlite
|
||||||
|
|
||||||
|
# Conditionally copy the private key if it exists
|
||||||
|
COPY --chown=pgadmin:root ./pgadmin/private_key /pgadmin4/private_key
|
||||||
|
# Set permissions for the private key
|
||||||
|
|
||||||
|
# Copy your script file into the Docker image
|
||||||
|
COPY --chown=pgadmin:root ./.env /
|
||||||
|
COPY ./pgadmin/start_pgadmin.sh /var/lib/pgadmin/start_pgadmin.sh
|
||||||
|
|
||||||
|
# Make the script executable
|
||||||
|
RUN chmod +x /var/lib/pgadmin/start_pgadmin.sh
|
||||||
|
# Run your script
|
||||||
|
RUN /var/lib/pgadmin/start_pgadmin.sh
|
||||||
|
|
||||||
|
# Expose the necessary port
|
||||||
|
EXPOSE 80
|
||||||
89
pgadmin/start_pgadmin.sh
Executable file
89
pgadmin/start_pgadmin.sh
Executable file
@@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source environment variables
|
||||||
|
set -a
|
||||||
|
source /.env
|
||||||
|
set +a
|
||||||
|
|
||||||
|
# Check if PGADMIN_DEFAULT_EMAIL is set
|
||||||
|
if [[ -z $PGADMIN_DEFAULT_EMAIL ]]; then
|
||||||
|
echo "PGADMIN_DEFAULT_EMAIL is not set. Exiting..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Modify the email to replace @ with _
|
||||||
|
DIR_NAME="/var/lib/pgadmin/storage/${PGADMIN_DEFAULT_EMAIL//@/_}"
|
||||||
|
|
||||||
|
# Create the directory using the modified name
|
||||||
|
mkdir -p "$DIR_NAME"
|
||||||
|
|
||||||
|
cp /pgadmin4/private_key "$DIR_NAME/private_key"
|
||||||
|
chown -R pgadmin:root "$DIR_NAME/private_key"
|
||||||
|
|
||||||
|
# Generate JSON for each matching variable
|
||||||
|
DB_PATH="/var/lib/pgadmin/pgadmin4.db"
|
||||||
|
json_output="{\"Servers\":{"
|
||||||
|
index=1
|
||||||
|
while true; do
|
||||||
|
name_var="PGADMIN_DB${index}_NAME"
|
||||||
|
if [[ -z ${!name_var} ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
host_var="PGADMIN_DB${index}_HOST"
|
||||||
|
port_var="PGADMIN_DB${index}_PORT"
|
||||||
|
maintenance_db_var="PGADMIN_DB${index}_MAINTENANCE_DB"
|
||||||
|
username_var="PGADMIN_DB${index}_USERNAME"
|
||||||
|
tunnel_host_var="PGADMIN_DB${index}_TUNNEL_HOST"
|
||||||
|
tunnel_port_var="PGADMIN_DB${index}_TUNNEL_PORT"
|
||||||
|
tunnel_username_var="PGADMIN_DB${index}_TUNNEL_USERNAME"
|
||||||
|
|
||||||
|
json_output+="\"$index\":$(jq -n \
|
||||||
|
--arg name "${!name_var}" \
|
||||||
|
--arg host "${!host_var:-localhost}" \
|
||||||
|
--arg port "${!port_var:-5432}" \
|
||||||
|
--arg db "${!maintenance_db_var:-${!name_var}}" \
|
||||||
|
--arg username "${!username_var:-odoo}" \
|
||||||
|
--arg thost "${!tunnel_host_var}" \
|
||||||
|
--arg tport "${!tunnel_port_var:-22}" \
|
||||||
|
--arg tuser "${!tunnel_username_var:-ubuntu}" \
|
||||||
|
'{
|
||||||
|
"Name": $name,
|
||||||
|
"Group": "Servers",
|
||||||
|
"Host": $host,
|
||||||
|
"Port": $port|tonumber,
|
||||||
|
"MaintenanceDB": $db,
|
||||||
|
"Username": $username,
|
||||||
|
"UseSSHTunnel": 1,
|
||||||
|
"TunnelHost": $thost,
|
||||||
|
"TunnelPort": $tport,
|
||||||
|
"TunnelUsername": $tuser,
|
||||||
|
"TunnelAuthentication": 1,
|
||||||
|
"KerberosAuthentication": false,
|
||||||
|
"ConnectionParameters": {
|
||||||
|
"sslmode": "prefer",
|
||||||
|
"connect_timeout": 10,
|
||||||
|
"sslcert": "'"$DIR_NAME"'/.postgresql/postgresql.crt",
|
||||||
|
"sslkey": "'"$DIR_NAME"'/.postgresql/postgresql.key"
|
||||||
|
},
|
||||||
|
"Shared": true
|
||||||
|
}'),"
|
||||||
|
|
||||||
|
index=$((index + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove trailing comma and close JSON braces
|
||||||
|
json_output=${json_output%,}
|
||||||
|
json_output+="}}"
|
||||||
|
|
||||||
|
# Save the well-formatted JSON to a file using jq
|
||||||
|
if [[ $PGADMIN_SERVERS_JSON ]]; then
|
||||||
|
echo $json_output | jq '.' > "$PGADMIN_SERVERS_JSON"
|
||||||
|
|
||||||
|
# Make the Servers.json file readable for all users
|
||||||
|
chmod 755 "/pgadmin4/servers.json"
|
||||||
|
|
||||||
|
echo "JSON configuration saved to $DIR_NAME/servers.json"
|
||||||
|
fi
|
||||||
@@ -8,8 +8,11 @@ FROM postgres:${POSTGRES_TAG}
|
|||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
# Unaccent extension dependencies
|
# Unaccent extension dependencies
|
||||||
postgresql-contrib \
|
postgresql-contrib \
|
||||||
|
apt-utils \
|
||||||
# Clean up the apt cache to reduce the image size
|
# Clean up the apt cache to reduce the image size
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY --chown=postgres:postgres ./.env /
|
||||||
|
|
||||||
# Copy the script to create the unaccent template
|
# Copy the script to create the unaccent template
|
||||||
COPY ./entrypoint.sh /docker-entrypoint-initdb.d/entrypoint.sh
|
COPY ./postgres/entrypoint.sh /docker-entrypoint-initdb.d/entrypoint.sh
|
||||||
|
|||||||
@@ -1,3 +1,32 @@
|
|||||||
psql -p 5432 -U odoo -d postgres -c "CREATE DATABASE unaccent_template WITH TEMPLATE = template0"
|
#!/bin/bash
|
||||||
psql -p 5432 -U odoo -d postgres -c "\\c unaccent_template"
|
|
||||||
psql -p 5432 -U odoo -d postgres -c "CREATE EXTENSION IF NOT EXISTS unaccent;"
|
set -e
|
||||||
|
|
||||||
|
# Source environment variables
|
||||||
|
set -a
|
||||||
|
source /.env
|
||||||
|
set +a
|
||||||
|
|
||||||
|
# Create the $DB_TEMPLATE database
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "CREATE DATABASE $DB_TEMPLATE WITH TEMPLATE = template0;"
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "\\c $DB_TEMPLATE;"
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "CREATE EXTENSION IF NOT EXISTS unaccent;"
|
||||||
|
|
||||||
|
# Create Odoo user and give proper privileges
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASSWORD';"
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "ALTER USER $DB_USER CREATEDB;"
|
||||||
|
|
||||||
|
# Give Odoo user access to copy $DB_TEMPLATE
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "GRANT ALL PRIVILEGES ON DATABASE $DB_TEMPLATE TO $DB_USER;"
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $DB_TEMPLATE -c "ALTER DATABASE $DB_TEMPLATE OWNER TO $DB_USER;"
|
||||||
|
|
||||||
|
# Create PgAdmin user and give proper privileges
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "CREATE DATABASE $PGADMING_DB_NAME;"
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "CREATE USER $PGADMING_DB_USER WITH PASSWORD '$PGADMIN_DB_PASSWORD';"
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "GRANT ALL PRIVILEGES ON DATABASE $PGADMING_DB_NAME TO $PGADMING_DB_USER;"
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $PGADMING_DB_NAME -c "GRANT ALL PRIVILEGES ON SCHEMA public TO $PGADMING_DB_USER;"
|
||||||
|
|
||||||
|
# Revoke Odoo user's access to pgadmin database
|
||||||
|
psql -p $POSTGRES_PORT -U $POSTGRES_MAIN_USER -d $POSTGRES_DB -c "REVOKE CONNECT ON DATABASE $PGADMING_DB_NAME FROM $DB_USER;"
|
||||||
|
|
||||||
|
echo "Setup completed."
|
||||||
|
|||||||
Reference in New Issue
Block a user