144 lines
4.0 KiB
YAML
144 lines
4.0 KiB
YAML
version: "3.8"
|
|
services:
|
|
coolify:
|
|
image: "githaven.org/shiloh/lasthourcloud:4.0.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/applications:/var/www/html/storage/app/applications
|
|
- /data/coolify/databases:/var/www/html/storage/app/databases
|
|
- /data/coolify/services:/var/www/html/storage/app/services
|
|
- /data/coolify/backups:/var/www/html/storage/app/backups
|
|
|
|
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
|
|
- HORIZON_MAX_PROCESSES
|
|
- HORIZON_BALANCE_MAX_SHIFT
|
|
- HORIZON_BALANCE_COOLDOWN
|
|
- 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_HOST
|
|
- PUSHER_BACKEND_HOST
|
|
- PUSHER_PORT
|
|
- PUSHER_BACKEND_PORT
|
|
- PUSHER_SCHEME
|
|
- PUSHER_APP_ID
|
|
- PUSHER_APP_KEY
|
|
- PUSHER_APP_SECRET
|
|
- AUTOUPDATE
|
|
- SELF_HOSTED
|
|
- FEEDBACK_DISCORD_WEBHOOK
|
|
- WAITLIST
|
|
- SUBSCRIPTION_PROVIDER
|
|
- STRIPE_API_KEY
|
|
- STRIPE_WEBHOOK_SECRET
|
|
- STRIPE_PRICE_ID_BASIC_MONTHLY
|
|
- STRIPE_PRICE_ID_BASIC_YEARLY
|
|
- STRIPE_PRICE_ID_PRO_MONTHLY
|
|
- STRIPE_PRICE_ID_PRO_YEARLY
|
|
- STRIPE_PRICE_ID_ULTIMATE_MONTHLY
|
|
- STRIPE_PRICE_ID_ULTIMATE_YEARLY
|
|
- STRIPE_EXCLUDED_PLANS
|
|
- PADDLE_VENDOR_ID
|
|
- PADDLE_WEBHOOK_SECRET
|
|
- PADDLE_VENDOR_AUTH_CODE
|
|
- PADDLE_PUBLIC_KEY
|
|
- PADDLE_PRICE_ID_BASIC_MONTHLY
|
|
- PADDLE_PRICE_ID_BASIC_YEARLY
|
|
- PADDLE_PRICE_ID_PRO_MONTHLY
|
|
- PADDLE_PRICE_ID_PRO_YEARLY
|
|
- PADDLE_PRICE_ID_ULTIMATE_MONTHLY
|
|
- PADDLE_PRICE_ID_ULTIMATE_YEARLY
|
|
- LEMON_SQUEEZY_API_KEY
|
|
- LEMON_SQUEEZY_WEBHOOK_SECRET
|
|
- LEMON_SQUEEZY_CHECKOUT_ID_BASIC_MONTHLY
|
|
- LEMON_SQUEEZY_CHECKOUT_ID_BASIC_YEARLY
|
|
- LEMON_SQUEEZY_CHECKOUT_ID_PRO_MONTHLY
|
|
- LEMON_SQUEEZY_CHECKOUT_ID_PRO_YEARLY
|
|
- LEMON_SQUEEZY_CHECKOUT_ID_ULTIMATE_MONTHLY
|
|
- LEMON_SQUEEZY_CHECKOUT_ID_ULTIMATE_YEARLY
|
|
- LEMON_SQUEEZY_BASIC_PLAN_IDS
|
|
- LEMON_SQUEEZY_PRO_PLAN_IDS
|
|
- LEMON_SQUEEZY_ULTIMATE_PLAN_IDS
|
|
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:
|
|
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:
|
|
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:
|
|
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
|