115 lines
3.1 KiB
YAML
115 lines
3.1 KiB
YAML
version: '3.8'
|
|
services:
|
|
coolify-testing-host:
|
|
init: true
|
|
image: "ghcr.io/coollabsio/coolify-testing-host:latest"
|
|
container_name: coolify-testing-host
|
|
volumes:
|
|
- //var/run/docker.sock://var/run/docker.sock
|
|
- ./:/data/coolify
|
|
coolify:
|
|
image: "ghcr.io/coollabsio/coolify:${LATEST_IMAGE:-4.0.0-beta.199}"
|
|
container_name: coolify
|
|
restart: always
|
|
working_dir: /var/www/html
|
|
extra_hosts:
|
|
- 'host.docker.internal:host-gateway'
|
|
volumes:
|
|
- type: bind
|
|
source: ./.env
|
|
target: /var/www/html/.env
|
|
read_only: true
|
|
- ./ssh:/var/www/html/storage/app/ssh
|
|
- ./applications:/var/www/html/storage/app/applications
|
|
- ./databases:/var/www/html/storage/app/databases
|
|
- ./services:/var/www/html/storage/app/services
|
|
- ./backups:/var/www/html/storage/app/backups
|
|
environment:
|
|
- APP_ID
|
|
- APP_ENV=production
|
|
- APP_NAME
|
|
- APP_KEY
|
|
- DB_PASSWORD
|
|
- REDIS_PASSWORD
|
|
- SSL_MODE=off
|
|
- PHP_PM_CONTROL=dynamic
|
|
- PHP_PM_START_SERVERS=1
|
|
- PHP_PM_MIN_SPARE_SERVERS=1
|
|
- PHP_PM_MAX_SPARE_SERVERS=10
|
|
- PUSHER_APP_ID
|
|
- PUSHER_APP_KEY
|
|
- PUSHER_APP_SECRET
|
|
- AUTOUPDATE=true
|
|
- SELF_HOSTED=true
|
|
- MUX_ENABLED=false
|
|
ports:
|
|
- "${APP_PORT:-8000}:80"
|
|
expose:
|
|
- "${APP_PORT:-8000}"
|
|
healthcheck:
|
|
test: curl --fail http://localhost:80/api/health || exit 1
|
|
interval: 5s
|
|
retries: 10
|
|
timeout: 2s
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
container_name: coolify-db
|
|
restart: always
|
|
volumes:
|
|
- coolify-db:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_USER: "${DB_USERNAME:-coolify}"
|
|
POSTGRES_PASSWORD: "${DB_PASSWORD}"
|
|
POSTGRES_DB: "${DB_DATABASE:-coolify}"
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
"pg_isready -U ${DB_USERNAME:-coolify}",
|
|
"-d",
|
|
"${DB_DATABASE:-coolify}"
|
|
]
|
|
interval: 5s
|
|
retries: 10
|
|
timeout: 2s
|
|
redis:
|
|
image: redis:alpine
|
|
container_name: coolify-redis
|
|
restart: always
|
|
command: redis-server --save 20 1 --loglevel warning --requirepass ${REDIS_PASSWORD}
|
|
environment:
|
|
REDIS_PASSWORD: "${REDIS_PASSWORD}"
|
|
volumes:
|
|
- coolify-redis:/data
|
|
healthcheck:
|
|
test: redis-cli ping
|
|
interval: 5s
|
|
retries: 10
|
|
timeout: 2s
|
|
soketi:
|
|
image: 'quay.io/soketi/soketi:1.6-16-alpine'
|
|
container_name: coolify-realtime
|
|
restart: always
|
|
ports:
|
|
- "${SOKETI_PORT:-6001}:6001"
|
|
environment:
|
|
SOKETI_DEBUG: "${SOKETI_DEBUG:-false}"
|
|
SOKETI_DEFAULT_APP_ID: "${PUSHER_APP_ID}"
|
|
SOKETI_DEFAULT_APP_KEY: "${PUSHER_APP_KEY}"
|
|
SOKETI_DEFAULT_APP_SECRET: "${PUSHER_APP_SECRET}"
|
|
healthcheck:
|
|
test: wget -qO- http://localhost:6001/ready || exit 1
|
|
interval: 5s
|
|
retries: 10
|
|
timeout: 2s
|
|
volumes:
|
|
coolify-db:
|
|
name: coolify-db
|
|
coolify-redis:
|
|
name: coolify-redis
|