From 58c4fdc9c59ce7e0f78cfefd4ba7df5d542e6e51 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 8 Nov 2025 00:49:12 +0000 Subject: [PATCH] New Service: MediaCMS --- stacks/apps/mediacms/stack.yml | 173 +++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 stacks/apps/mediacms/stack.yml diff --git a/stacks/apps/mediacms/stack.yml b/stacks/apps/mediacms/stack.yml new file mode 100644 index 0000000..b0a73f7 --- /dev/null +++ b/stacks/apps/mediacms/stack.yml @@ -0,0 +1,173 @@ +version: "3.8" + +services: + db: + image: postgres:17.2-alpine + networks: + - mediacms + environment: + POSTGRES_USER: mediacms + POSTGRES_PASSWORD: mediacms + POSTGRES_DB: mediacms + TZ: America/New_York + volumes: + - /home/doc/projects/swarm-data/appdata/mediacms/postgres:/var/lib/postgresql/data/ + healthcheck: + test: [ "CMD-SHELL", "pg_isready -d mediacms -U mediacms" ] + interval: 10s + timeout: 5s + retries: 5 + deploy: + replicas: 1 + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 3 + placement: + constraints: + - node.role == manager + + redis: + image: redis:alpine + networks: + - mediacms + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 10s + timeout: 5s + retries: 3 + deploy: + replicas: 1 + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 3 + + migrations: + image: mediacms/mediacms:latest + networks: + - mediacms + volumes: + - /home/doc/projects/swarm-data/appdata/mediacms/data:/home/mediacms.io/mediacms/ + environment: + ENABLE_UWSGI: 'no' + ENABLE_NGINX: 'no' + ENABLE_CELERY_SHORT: 'no' + ENABLE_CELERY_LONG: 'no' + ENABLE_CELERY_BEAT: 'no' + ADMIN_USER: 'admin' + ADMIN_EMAIL: 'john.allisonwin@outlook.com' + POSTGRES_HOST: db + POSTGRES_DB: mediacms + POSTGRES_USER: mediacms + POSTGRES_PASSWORD: mediacms + REDIS_HOST: redis + command: "./deploy/docker/prestart.sh" + depends_on: + - redis + - db + deploy: + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 3 + + web: + image: mediacms/mediacms:latest + networks: + - mediacms + - homelab + ports: + - "8880:80" + volumes: + - /home/doc/projects/swarm-data/appdata/mediacms/data:/home/mediacms.io/mediacms/ + environment: + ENABLE_CELERY_BEAT: 'no' + ENABLE_CELERY_SHORT: 'no' + ENABLE_CELERY_LONG: 'no' + ENABLE_MIGRATIONS: 'no' + POSTGRES_HOST: db + POSTGRES_DB: mediacms + POSTGRES_USER: mediacms + POSTGRES_PASSWORD: mediacms + REDIS_HOST: redis + depends_on: + - migrations + - db + - redis + deploy: + replicas: 1 + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 3 + resources: + limits: + memory: 2G + reservations: + memory: 512M + + celery_beat: + image: mediacms/mediacms:latest + networks: + - mediacms + volumes: + - /home/doc/projects/swarm-data/appdata/mediacms/data:/home/mediacms.io/mediacms/ + environment: + ENABLE_UWSGI: 'no' + ENABLE_NGINX: 'no' + ENABLE_CELERY_SHORT: 'no' + ENABLE_CELERY_LONG: 'no' + ENABLE_MIGRATIONS: 'no' + POSTGRES_HOST: db + POSTGRES_DB: mediacms + POSTGRES_USER: mediacms + POSTGRES_PASSWORD: mediacms + REDIS_HOST: redis + depends_on: + - redis + - db + deploy: + replicas: 1 + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 3 + + celery_worker: + image: mediacms/mediacms:latest + networks: + - mediacms + volumes: + - /home/doc/projects/swarm-data/appdata/mediacms/data:/home/mediacms.io/mediacms/ + environment: + ENABLE_UWSGI: 'no' + ENABLE_NGINX: 'no' + ENABLE_CELERY_BEAT: 'no' + ENABLE_MIGRATIONS: 'no' + POSTGRES_HOST: db + POSTGRES_DB: mediacms + POSTGRES_USER: mediacms + POSTGRES_PASSWORD: mediacms + REDIS_HOST: redis + depends_on: + - migrations + - db + - redis + deploy: + replicas: 1 + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 3 + resources: + limits: + memory: 4G + reservations: + memory: 1G + +networks: + mediacms: + driver: overlay + homelab: + external: true