services: nginx: image: nginx:{{ services.fedi_dk_nodebb.nginx_version }} restart: always networks: - default - external_services volumes: - "./nginx:/etc/nginx/conf.d:ro" - "./build:/usr/src/app/build:ro" environment: VIRTUAL_HOST: {{ services.fedi_dk_nodebb.domain }} VIRTUAL_PORT: 80 LETSENCRYPT_HOST: {{ services.fedi_dk_nodebb.domain }} LETSENCRYPT_EMAIL: {{ letsencrypt_email }} depends_on: - app redis: image: redis:{{ services.fedi_dk_nodebb.redis_version }} restart: unless-stopped tmpfs: - /var/lib/redis healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 5 mongodb: image: mongo:{{ services.fedi_dk_nodebb.mongodb_version }} restart: always volumes: - "./mongodb:/data/db:rw" - "./mongodb-user-init.js:/docker-entrypoint-initdb.d/user-init.js:ro" environment: MONGO_INITDB_ROOT_USERNAME: nodebb MONGO_INITDB_ROOT_PASSWORD: {{ fedi_dk_nodebb_secrets.mongodb_password }} healthcheck: test: ["CMD", "mongosh", "--quiet", "127.0.0.1/test", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] interval: 10s timeout: 10s retries: 5 start_period: 40s app: image: ghcr.io/nodebb/nodebb:{{ services.fedi_dk_nodebb.version }} restart: always networks: default: aliases: - app.nodebb postfix: volumes: - "./build:/usr/src/app/build:rw" - "./uploads:/usr/src/app/public/uploads:rw" - "./config:/opt/config:rw" - "./setup.json:/usr/src/app/setup.json:ro" depends_on: redis: condition: service_healthy mongodb: condition: service_healthy networks: postfix: external: true external_services: external: true