name: mediacms-dev services: migrations: platform: linux/amd64 build: context: .. dockerfile: Dockerfile args: - DEVELOPMENT_MODE=True image: mediacms/mediacms:latest volumes: - ../:/home/mediacms.io/mediacms/ command: "/home/mediacms.io/mediacms/deploy/docker/prestart.sh" environment: DEVELOPMENT_MODE: True ENABLE_UWSGI: 'no' ENABLE_NGINX: 'no' ENABLE_CELERY_SHORT: 'no' ENABLE_CELERY_LONG: 'no' ENABLE_CELERY_BEAT: 'no' ADMIN_USER: 'admin' ADMIN_EMAIL: 'admin@localhost' ADMIN_PASSWORD: 'admin' restart: on-failure depends_on: redis: condition: service_healthy db: condition: service_healthy frontend: image: node:20 user: "root" volumes: - ${PWD}/frontend:/home/mediacms.io/mediacms/frontend/ - frontend_node_modules:/home/mediacms.io/mediacms/frontend/node_modules - player_node_modules:/home/mediacms.io/mediacms/frontend/packages/player/node_modules - scripts_node_modules:/home/mediacms.io/mediacms/frontend/packages/scripts/node_modules - npm_global:/home/node/.npm-global working_dir: /home/mediacms.io/mediacms/frontend/ command: > bash -c " echo 'Setting up npm global directory...' && mkdir -p /home/node/.npm-global && chown -R node:node /home/node/.npm-global && echo 'Setting up permissions...' && chown -R node:node /home/mediacms.io/mediacms/frontend && echo 'Cleaning up node_modules...' && find /home/mediacms.io/mediacms/frontend/node_modules -mindepth 1 -delete 2>/dev/null || true && find /home/mediacms.io/mediacms/frontend/packages/player/node_modules -mindepth 1 -delete 2>/dev/null || true && find /home/mediacms.io/mediacms/frontend/packages/scripts/node_modules -mindepth 1 -delete 2>/dev/null || true && chown -R node:node /home/mediacms.io/mediacms/frontend/node_modules && chown -R node:node /home/mediacms.io/mediacms/frontend/packages/player/node_modules && chown -R node:node /home/mediacms.io/mediacms/frontend/packages/scripts/node_modules && echo 'Switching to node user...' && su node -c ' export NPM_CONFIG_PREFIX=/home/node/.npm-global && echo \"Setting up frontend...\" && rm -f package-lock.json && rm -f packages/player/package-lock.json && rm -f packages/scripts/package-lock.json && echo \"Installing dependencies...\" && npm install --legacy-peer-deps && echo \"Setting up workspaces...\" && npm install -g npm@latest && cd packages/scripts && npm install --legacy-peer-deps && npm install rollup@2.79.1 --save-dev --legacy-peer-deps && npm install typescript@4.9.5 --save-dev --legacy-peer-deps && npm install tslib@2.6.2 --save --legacy-peer-deps && npm install rollup-plugin-typescript2@0.34.1 --save-dev --legacy-peer-deps && npm install --legacy-peer-deps && npm run build && cd ../.. && cd packages/player && npm install --legacy-peer-deps && npm run build && cd ../.. && echo \"Starting development server...\" && npm run start '" env_file: - ${PWD}/frontend/.env environment: - NPM_CONFIG_PREFIX=/home/node/.npm-global ports: - "8088:8088" depends_on: - web restart: unless-stopped web: platform: linux/amd64 image: mediacms/mediacms:latest command: "python manage.py runserver 0.0.0.0:80" environment: DEVELOPMENT_MODE: True ports: - "80:80" volumes: - ../:/home/mediacms.io/mediacms/ depends_on: - migrations db: image: postgres:17.2-alpine volumes: - ../postgres_data:/var/lib/postgresql/data/ restart: always environment: POSTGRES_USER: mediacms POSTGRES_PASSWORD: mediacms POSTGRES_DB: mediacms TZ: Europe/London healthcheck: test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}", "--host=db", "--dbname=$POSTGRES_DB", "--username=$POSTGRES_USER"] interval: 10s timeout: 5s retries: 5 redis: image: "redis:alpine" restart: always healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3 celery_worker: platform: linux/amd64 image: mediacms/mediacms:latest deploy: replicas: 1 volumes: - ../:/home/mediacms.io/mediacms/ environment: ENABLE_UWSGI: 'no' ENABLE_NGINX: 'no' ENABLE_CELERY_BEAT: 'no' ENABLE_MIGRATIONS: 'no' DEVELOPMENT_MODE: True depends_on: - web volumes: frontend_node_modules: player_node_modules: scripts_node_modules: npm_global: