diff --git a/.env.example b/.env.example index 7db34b2..765a001 100644 --- a/.env.example +++ b/.env.example @@ -5,21 +5,21 @@ APP_ENV=local INIT= UPDATE= -LOAD=base,web,session_redis,attachment_s3,sentry +LOAD=base,web ROOT_PATH=/usr/lib/python3/dist-packages/odoo WORKERS=2 DEV_MODE=reload,xml DOMAIN=erp.odoocker.test # Enterprise -GITHUB_USER= -GITHUB_ACCESS_TOKEN= +GITHUB_USER=yhaelopez +GITHUB_ACCESS_TOKEN=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 # Database ADMIN_PASSWD=odoo DB_HOST=postgres DB_PORT=5432 -DB_NAME=odoocker +DB_NAME= DB_USER=odoo DB_PASSWORD=odoo LOAD_LANGUAGE= @@ -43,7 +43,7 @@ SENTRY_EXCLUDE_LOGGERS= SENTRY_IGNORE_EXCEPTIONS= SENTRY_INCLUDE_CONTEXT=true SENTRY_ENVIRONMENT=production -SENTRY_RELEASE=1.0 +SENTRY_RELEASE= SENTRY_ODOO_DIR=${ROOT_PATH} # Nginx @@ -114,6 +114,24 @@ PGADMIN_CONFIG_SERVER_MODE=True PROJECT_NAME=odoocker SUPPORT_EMAIL=mail@example.com +# Service configuration +USE_REDIS=false +USE_S3=false +USE_SENTRY=false + +# Which services are going to be brought up +COMPOSE_PROFILES=base + +# Service profiles +ODOO_PROFILES="base" +POSTGRES_PROFILES="base" +NGINX_PROFILES="base" +NGINX_PROXY_PROFILES="base" +ACME_COMPANION_PROFILES="ssl" +KEYDB_PROFILES="cache" +MINIO_PROFILES="storage" +PGADMIN_PROFILES="admin" + # Containers' Tags ODOO_TAG=16.0 POSTGRES_TAG=16.0 @@ -124,7 +142,7 @@ NGINX_PROXY_TAG=1.3.1 ACME_COMPANION_TAG=2.2.8 PGADMIN_TAG=7.6 -# Custom paths +# Odoocker paths COMMUNITY_ADDONS=${ROOT_PATH}/addons ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise THIRD_PARTY_ADDONS=${ROOT_PATH}/third-party-addons diff --git a/docker-compose copy.yml b/docker-compose copy.yml deleted file mode 100644 index d9aea0d..0000000 --- a/docker-compose copy.yml +++ /dev/null @@ -1,152 +0,0 @@ -services: - odoo: - build: - context: ./ - dockerfile: ./odoo/Dockerfile - args: - - ODOO_TAG - - ODOO_RC - - ROOT_PATH - - GITHUB_USER - - GITHUB_ACCESS_TOKEN - - ENTERPRISE_ADDONS - - THIRD_PARTY_ADDONS - - LOG_PATH - depends_on: - - postgres - tty: true - volumes: - - odoo-data:${DATA_DIR} - - ./odoo/extra-addons:${EXTRA_ADDONS} - - ./odoo/custom-addons:${CUSTOM_ADDONS} - - ./odoo/entrypoint.sh:/entrypoint.sh - environment: - - HOST=${DB_HOST} - - PORT=${DB_PORT} - - USER=${DB_USER} - - PASSWORD=${DB_PASSWORD} - - ODOO_TAG - - ODOO_RC - - THIRD_PARTY_ADDONS - - ODOO_SESSION_REDIS - - ODOO_SESSION_REDIS_HOST - - ODOO_SESSION_REDIS_PORT - - ODOO_SESSION_REDIS_PASSWORD - - ODOO_SESSION_REDIS_URL - - ODOO_SESSION_REDIS_PREFIX - - ODOO_SESSION_REDIS_SENTINEL_MASTER_NAME - - ODOO_SESSION_REDIS_SENTINEL_HOST - - ODOO_SESSION_REDIS_SENTINEL_PORT - - ODOO_SESSION_REDIS_EXPIRATION - - ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS - - AWS_HOST - - AWS_REGION - - AWS_ACCESS_KEY_ID - - AWS_SECRET_ACCESS_KEY - - AWS_BUCKETNAME - networks: - - internal - - postgres: - build: - context: ./ - dockerfile: ./postgres/Dockerfile - args: - - POSTGRES_TAG - restart: unless-stopped - tty: true - volumes: - - pg-data:${PGDATA} - - ./postgres/entrypoint.sh:/docker-entrypoint-initdb.d/entrypoint.sh - environment: - - POSTGRES_DB - - POSTGRES_USER - - POSTGRES_PASSWORD - - PGDATA - - DB_USER - - DB_TEMPLATE - - UNACCENT_TEMPLATE - - PGADMING_DB_NAME - - PGADMING_DB_USER - - PGADMIN_DB_PASSWORD - networks: - - internal - - redis: - image: eqalpha/keydb:${KEYDB_TAG} - platform: linux/amd64 - ports: - - ${KEYDB_PORT}:${KEYDB_PORT} - restart: unless-stopped - volumes: - - redis-data:${KEYDB_DATA} - networks: - - internal - - s3: - image: minio/minio:${MINIO_TAG} - environment: - - MINIO_ROOT_USER - - MINIO_ROOT_PASSWORD - - MINIO_BROWSER_REDIRECT_URL - - VIRTUAL_HOST=${MINIO_VIRTUAL_HOST} - - VIRTUAL_PORT=${MINIO_CONSOLE_PORT} - command: server ${MINIO_DATA} --console-address ":${MINIO_CONSOLE_PORT}" - volumes: - - s3-data:${MINIO_DATA} - ports: - - ${MINIO_API_PORT}:${MINIO_API_PORT} - - ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT} - networks: - - internal - - nginx: - image: nginx:${NGINX_TAG} - depends_on: - - odoo - restart: unless-stopped - tty: true - expose: - - 80/tcp - volumes: - - ./nginx/nginx.conf:${NGINX_CONF} - - ./nginx/default.conf:${NGINX_DEFAULT_CONF} - environment: - - VIRTUAL_HOST - - LETSENCRYPT_HOST - - LETSENCRYPT_EMAIL - - CORS_ALLOWED_DOMAIN - networks: - - internal - - nginx-proxy: - image: nginxproxy/nginx-proxy:${NGINX_PROXY_TAG} - depends_on: - - nginx - restart: unless-stopped - tty: true - volumes: - - ./nginx-proxy/nginx.conf:${NGINX_CONF} - - ./nginx-proxy/cors.conf:${NGINX_PROXY_CORS_CONF} - - certs:${NGINX_CERTS}:ro - - vhost:${NGINX_VHOST} - - html:${NGINX_HTML} - - ${DOCKER_SOCK}:${TEMP_DOCKER_SOCK}:ro - environment: - - TRUST_DOWNSTREAM_PROXY - - CORS_ALLOWED_DOMAIN - networks: - - internal - -volumes: - odoo-data: - pg-data: - redis-data: - s3-data: - certs: - vhost: - html: - -networks: - internal: - driver: bridge diff --git a/docker-compose.override.local.full.yml b/docker-compose.override.local.full.yml deleted file mode 100644 index ce310ca..0000000 --- a/docker-compose.override.local.full.yml +++ /dev/null @@ -1,49 +0,0 @@ -services: - odoo: - restart: 'no' - ports: - - 8069:8069 - - 8070:8070 - - 8071:8071 - - 8072:8072 - - postgres: - restart: 'no' - ports: - - 5432:5432 - - nginx: - restart: 'no' - - nginx-proxy: - restart: 'no' - ports: - - 80:80 - - redis: - image: eqalpha/keydb:${KEYDB_TAG} - platform: linux/amd64 - ports: - - ${KEYDB_PORT}:${KEYDB_PORT} - restart: unless-stopped - volumes: - - redis-data:${KEYDB_DATA} - networks: - - internal - - s3: - image: minio/minio:${MINIO_TAG} - environment: - - MINIO_ROOT_USER - - MINIO_ROOT_PASSWORD - - MINIO_BROWSER_REDIRECT_URL - - VIRTUAL_HOST=${MINIO_VIRTUAL_HOST} - - VIRTUAL_PORT=${MINIO_CONSOLE_PORT} - command: server ${MINIO_DATA} --console-address ":${MINIO_CONSOLE_PORT}" - volumes: - - s3-data:${MINIO_DATA} - ports: - - ${MINIO_API_PORT}:${MINIO_API_PORT} - - ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT} - networks: - - internal \ No newline at end of file diff --git a/docker-compose.override.local.min.yml b/docker-compose.override.local.yml similarity index 100% rename from docker-compose.override.local.min.yml rename to docker-compose.override.local.yml diff --git a/docker-compose.override.production.yml b/docker-compose.override.production.yml index d01c989..f7e4055 100644 --- a/docker-compose.override.production.yml +++ b/docker-compose.override.production.yml @@ -17,22 +17,6 @@ services: - 80:80 - 443:443 - letsencrypt: - image: nginxproxy/acme-companion:${ACME_COMPANION_TAG} - depends_on: - - nginx-proxy - restart: unless-stopped - volumes_from: - - nginx-proxy:rw - volumes: - - certs:${NGINX_CERTS}:rw - - acme:${NGINX_ACME} - - ${DOCKER_SOCK}:${DOCKER_SOCK}:ro - environment: - - DEFAULT_EMAIL - networks: - - internal - volumes: acme: certs: diff --git a/docker-compose.pgadmin.yml b/docker-compose.pgadmin.yml deleted file mode 100644 index 7fccf84..0000000 --- a/docker-compose.pgadmin.yml +++ /dev/null @@ -1,45 +0,0 @@ -services: - pgadmin: - build: - context: ./ - dockerfile: ./pgadmin/Dockerfile - args: - - PGADMIN_TAG - depends_on: - - postgres - restart: 'no' - expose: - - 80 - volumes: - - pgadmin-data:${PGADMIN_DATA} - environment: - - PGADMIN_DEFAULT_EMAIL - - PGADMIN_DEFAULT_PASSWORD - - VIRTUAL_HOST=${PGADMIN_VIRTUAL_HOST} - - LETSENCRYPT_HOST=${PGADMIN_LETSENCRYPT_HOST} - - 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: - - internal - -volumes: - pgadmin-data: diff --git a/docker-compose.yml b/docker-compose.yml index 5684d2e..35f717c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -51,6 +51,7 @@ services: - AWS_BUCKETNAME networks: - internal + profiles: [$ODOO_PROFILES] postgres: build: @@ -76,6 +77,7 @@ services: - PGADMIN_DB_PASSWORD networks: - internal + profiles: [$POSTGRES_PROFILES] nginx: image: nginx:${NGINX_TAG} @@ -95,6 +97,7 @@ services: - CORS_ALLOWED_DOMAIN networks: - internal + profiles: [$NGINX_PROFILES] nginx-proxy: image: nginxproxy/nginx-proxy:${NGINX_PROXY_TAG} @@ -114,6 +117,7 @@ services: - CORS_ALLOWED_DOMAIN networks: - internal + profiles: [$NGINX_PROXY_PROFILES] redis: image: eqalpha/keydb:${KEYDB_TAG} @@ -125,7 +129,7 @@ services: - redis-data:${KEYDB_DATA} networks: - internal - profiles: ["dev"] + profiles: [$KEYDB_PROFILES] s3: image: minio/minio:${MINIO_TAG} @@ -143,16 +147,78 @@ services: - ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT} networks: - internal - profiles: ["dev"] + profiles: [$MINIO_PROFILES] + + letsencrypt: + image: nginxproxy/acme-companion:${ACME_COMPANION_TAG} + depends_on: + - nginx-proxy + restart: unless-stopped + volumes_from: + - nginx-proxy:rw + volumes: + - certs:${NGINX_CERTS}:rw + - acme:${NGINX_ACME} + - ${DOCKER_SOCK}:${DOCKER_SOCK}:ro + environment: + - DEFAULT_EMAIL + networks: + - internal + profiles: [$ACME_COMPANION_PROFILES] + + pgadmin: + build: + context: ./ + dockerfile: ./pgadmin/Dockerfile + args: + - PGADMIN_TAG + depends_on: + - postgres + restart: 'no' + expose: + - 80 + volumes: + - pgadmin-data:${PGADMIN_DATA} + environment: + - PGADMIN_DEFAULT_EMAIL + - PGADMIN_DEFAULT_PASSWORD + - VIRTUAL_HOST=${PGADMIN_VIRTUAL_HOST} + - LETSENCRYPT_HOST=${PGADMIN_LETSENCRYPT_HOST} + - 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: + - internal + profiles: [$PGADMIN_PROFILES] volumes: odoo-data: pg-data: redis-data: s3-data: + pgadmin-data: html: vhost: certs: + acme: networks: internal: