nexo-cloud-scripts/docker-compose.yaml

105 lines
3.2 KiB
YAML

services:
nexo-cloud:
image: git.masscivicdynamic.com/masscivicdynamic/nexo-cloud:latest
ports:
- "8080:8080"
environment:
- SSL_MODE=${SSL_MODE-off}
- APP_KEY=${APP_KEY}
- APP_NAME=${APP_NAME}
- DB_CONNECTION=${DB_CONNECTION:-pgsql}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- REDIS_PASSWORD=${REDIS_PASSWORD}
- APP_PREVIOUS_KEYS=${APP_PREVIOUS_KEYS}
- PHP_OPCACHE_ENABLE=${PHP_OPCACHE_ENABLE:-1}
- LOG_CHANNEL=${LOG_CHANNEL:-stack}
networks:
- nexo-cloud
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
reverb:
condition: service_healthy
volumes:
- /data/nexo-cloud/logs:/var/www/html/storage/logs
- /data/nexo-cloud/ssh:/var/www/html/storage/app/ssh
- /data/nexo-cloud/applications:/var/www/html/storage/app/applications
- /data/nexo-cloud/databases:/var/www/html/storage/app/databases
- /data/nexo-cloud/services:/var/www/html/storage/app/services
- /data/nexo-cloud/backups:/var/www/html/storage/app/backups
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_USER=${DB_USERNAME:-nexo-cloud}
- POSTGRES_PASSWORD=${DB_PASSWORD:-nexo-cloud}
- POSTGRES_DB=${DB_DATABASE:-nexo-cloud}
networks:
- nexo-cloud
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U ${DB_USERNAME}", "-d", "${DB_DATABASE:-nexo-cloud}" ]
interval: 5s
retries: 10
timeout: 2s
redis:
image: redis:7.2-alpine
command: redis-server --save 20 1 --loglevel warning --requirepass ${REDIS_PASSWORD}
environment:
- REDIS_PASSWORD="${REDIS_PASSWORD}"
networks:
- nexo-cloud
healthcheck:
test: redis-cli ping
interval: 5s
retries: 10
timeout: 2s
task:
image: git.masscivicdynamic.com/masscivicdynamic/nexo-cloud:latest
command: ["php", "/var/www/html/artisan", "schedule:work"]
stop_signal: SIGTERM
networks:
- nexo-cloud
healthcheck:
test: ["CMD", "healthcheck-schedule"]
start_period: 10s
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
queue:
image: git.masscivicdynamic.com/masscivicdynamic/nexo-cloud:latest
command: [ "php", "/var/www/html/artisan", "queue:work", "--tries=3" ]
stop_signal: SIGTERM
networks:
- nexo-cloud
healthcheck:
test: [ "CMD", "healthcheck-queue" ]
start_period: 10s
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
reverb:
image: git.masscivicdynamic.com/masscivicdynamic/nexo-cloud:latest
command: [ "php", "/var/www/html/artisan", "--port=8000", "reverb:start" ]
stop_signal: SIGTERM
environment:
- REVERB_APP_ID=${REVERB_APP_ID:-271026}
- REVERB_APP_KEY=${REVERB_APP_KEY:-dyadpyflxsz00fd60az2}
- REVERB_APP_SECRET=${REVERB_APP_SECRET:-quuxylmbloar05e6kk0e}
- REVERB_HOST="${REVERB_HOST:-*}"
- REVERB_PORT=${REVERB_PORT:-8000}
- REVERB_SCHEME=${REVERB_SCHEME:-http}
healthcheck:
test: [ "CMD", "healthcheck-reverb" ]
start_period: 10s
ports:
- "8000:8000"
networks:
nexo-cloud: