Internal
Public Access
Update docker-compose.yml with all environment variables and PostgreSQL
Major changes:
- Switch from MariaDB to PostgreSQL 16
- Add all required environment variables to web service:
- SECRET_KEY, DEBUG, ALLOWED_HOSTS
- CSRF_TRUSTED_ORIGINS, CORS_ALLOWED_ORIGINS
- Email configuration (HOST, PORT, USER, PASSWORD, TLS)
- Gunicorn settings (WORKERS, TIMEOUT)
- Add SECRET_KEY to celery services (required for Django)
- Update all services to depend on 'postgres' instead of 'mariadb'
- Update DATABASE_URL to use PostgreSQL format
- Update .env.docker.example to reflect PostgreSQL and add WEB_PORT
All environment variables now properly declared in compose file
with ${VAR} syntax for Portainer/Docker compatibility.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.5
parent
695109e447
commit
0459ab7456
+40
-17
@@ -2,25 +2,22 @@ version: '3.8'
|
||||
|
||||
services:
|
||||
# =================================================================
|
||||
# MariaDB Database Service
|
||||
# PostgreSQL Database Service
|
||||
# =================================================================
|
||||
mariadb:
|
||||
image: mariadb:11.2
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
container_name: keepitgoing-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_DATABASE: ${DB_NAME:-keepitgoing}
|
||||
MYSQL_USER: ${DB_USER:-keepitgoing}
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
|
||||
MYSQL_CHARACTER_SET_SERVER: utf8mb4
|
||||
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
|
||||
POSTGRES_DB: ${DB_NAME:-keepitgoing}
|
||||
POSTGRES_USER: ${DB_USER:-keepitgoing}
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
- db_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- backend
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-keepitgoing}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -54,9 +51,33 @@ services:
|
||||
container_name: keepitgoing-web
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# Django Settings
|
||||
DJANGO_SETTINGS_MODULE: config.settings.selfhosted
|
||||
DATABASE_URL: mysql://${DB_USER:-keepitgoing}:${DB_PASSWORD}@mariadb:3306/${DB_NAME:-keepitgoing}
|
||||
SECRET_KEY: ${SECRET_KEY}
|
||||
DEBUG: ${DEBUG:-False}
|
||||
ALLOWED_HOSTS: ${ALLOWED_HOSTS:-localhost}
|
||||
|
||||
# Security
|
||||
CSRF_TRUSTED_ORIGINS: ${CSRF_TRUSTED_ORIGINS:-http://localhost:8000}
|
||||
CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS:-http://localhost:8000}
|
||||
|
||||
# Database
|
||||
DATABASE_URL: postgresql://${DB_USER:-keepitgoing}:${DB_PASSWORD}@postgres:5432/${DB_NAME:-keepitgoing}
|
||||
|
||||
# Redis/Celery
|
||||
REDIS_URL: redis://redis:6379/0
|
||||
|
||||
# Email
|
||||
EMAIL_HOST: ${EMAIL_HOST:-}
|
||||
EMAIL_PORT: ${EMAIL_PORT:-587}
|
||||
EMAIL_HOST_USER: ${EMAIL_HOST_USER:-}
|
||||
EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD:-}
|
||||
EMAIL_USE_TLS: ${EMAIL_USE_TLS:-True}
|
||||
DEFAULT_FROM_EMAIL: ${DEFAULT_FROM_EMAIL:-noreply@localhost}
|
||||
|
||||
# Gunicorn
|
||||
GUNICORN_WORKERS: ${GUNICORN_WORKERS:-3}
|
||||
GUNICORN_TIMEOUT: ${GUNICORN_TIMEOUT:-60}
|
||||
volumes:
|
||||
- ./media:/app/media
|
||||
- static_files:/app/staticfiles
|
||||
@@ -66,7 +87,7 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
depends_on:
|
||||
mariadb:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
@@ -88,12 +109,13 @@ services:
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
DJANGO_SETTINGS_MODULE: config.settings.selfhosted
|
||||
DATABASE_URL: mysql://${DB_USER:-keepitgoing}:${DB_PASSWORD}@mariadb:3306/${DB_NAME:-keepitgoing}
|
||||
SECRET_KEY: ${SECRET_KEY}
|
||||
DATABASE_URL: postgresql://${DB_USER:-keepitgoing}:${DB_PASSWORD}@postgres:5432/${DB_NAME:-keepitgoing}
|
||||
REDIS_URL: redis://redis:6379/0
|
||||
networks:
|
||||
- backend
|
||||
depends_on:
|
||||
mariadb:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
@@ -110,12 +132,13 @@ services:
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
DJANGO_SETTINGS_MODULE: config.settings.selfhosted
|
||||
DATABASE_URL: mysql://${DB_USER:-keepitgoing}:${DB_PASSWORD}@mariadb:3306/${DB_NAME:-keepitgoing}
|
||||
SECRET_KEY: ${SECRET_KEY}
|
||||
DATABASE_URL: postgresql://${DB_USER:-keepitgoing}:${DB_PASSWORD}@postgres:5432/${DB_NAME:-keepitgoing}
|
||||
REDIS_URL: redis://redis:6379/0
|
||||
networks:
|
||||
- backend
|
||||
depends_on:
|
||||
mariadb:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
|
||||
Reference in New Issue
Block a user