85 lines
2.1 KiB
YAML
85 lines
2.1 KiB
YAML
version: '3.8'
|
|
services:
|
|
coolify:
|
|
image: "ghcr.io/coollabsio/coolify:${LATEST_IMAGE:-4.0.0-nightly.0}"
|
|
volumes:
|
|
- type: bind
|
|
source: /data/coolify/source/.env
|
|
target: /var/www/html/.env
|
|
read_only: true
|
|
- /data/coolify/ssh:/var/www/html/storage/app/ssh
|
|
- /data/coolify/deployments:/var/www/html/storage/app/deployments
|
|
environment:
|
|
- APP_ID
|
|
- APP_ENV=production
|
|
- APP_DEBUG
|
|
- APP_NAME
|
|
- APP_KEY
|
|
- APP_URL
|
|
- DB_CONNECTION
|
|
- DB_HOST
|
|
- DB_PORT
|
|
- DB_DATABASE
|
|
- DB_USERNAME
|
|
- DB_PASSWORD
|
|
- QUEUE_CONNECTION
|
|
- REDIS_HOST
|
|
- 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
|
|
- SELF_HOSTED
|
|
- LEMON_SQUEEZY_WEBHOOK_SECRET
|
|
- LEMON_SQUEEZY_CHECKOUT_ID
|
|
- LEMON_SQUEEZY_PRODUCT_ID
|
|
ports:
|
|
- "${APP_PORT:-8000}:80"
|
|
expose:
|
|
- "${APP_PORT:-8000}"
|
|
healthcheck:
|
|
test: curl --fail http://localhost:80/api/health || exit 1
|
|
interval: 4s
|
|
retries: 5
|
|
timeout: 2s
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
postgres:
|
|
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: 2s
|
|
retries: 5
|
|
timeout: 2s
|
|
redis:
|
|
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: 2s
|
|
retries: 5
|
|
timeout: 2s
|
|
volumes:
|
|
coolify-db:
|
|
name: coolify-db
|
|
coolify-redis:
|
|
name: coolify-redis
|