mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-03 18:36:22 +00:00
- VOL_PATH always defaults to /data; vscode/opencode VOL_PROJECTS nests it - TZ defaults to America/Vancouver (was UTC in etherpad, ntfy, redis) - compose section order fixed (volumes before environment, command after networks) - all default secrets are the literal ChangeThisPassword (grep-friendly, users must change them); removed a real key from ollama sample.env - sample.env synced with compose: missing vars added with defaults, dead vars removed - invoiceninja_dev/openarchiver_dev: app services had no environment block, wired all sample.env vars through so the stacks actually work - opencode: sample.env OLLAMA_HOST renamed to OLLAMA_HOST_URL to match compose - TZ values unquoted consistently Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
88 lines
3.0 KiB
YAML
88 lines
3.0 KiB
YAML
services:
|
|
mysql:
|
|
image: ${MYSQL_IMAGE:-mysql:8}
|
|
restart: ${INVOICENINJA_RESTART:-unless-stopped}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/invoiceninja/mysql:/var/lib/mysql
|
|
environment:
|
|
- MYSQL_DATABASE=${DB_DATABASE:-ninja}
|
|
- MYSQL_USER=${DB_USERNAME:-ninja}
|
|
- MYSQL_PASSWORD=${DB_PASSWORD:-ChangeThisPassword}
|
|
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:-ChangeThisPassword}
|
|
networks:
|
|
- internal
|
|
|
|
redis:
|
|
image: ${REDIS_IMAGE:-redis:alpine}
|
|
restart: ${INVOICENINJA_RESTART:-unless-stopped}
|
|
networks:
|
|
- internal
|
|
|
|
app:
|
|
image: ${INVOICENINJA_IMAGE:-invoiceninja/invoiceninja-debian:latest}
|
|
restart: ${INVOICENINJA_RESTART:-unless-stopped}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/invoiceninja/public:/var/www/html/public
|
|
- ${VOL_PATH:-/data}/invoiceninja/storage:/var/www/html/storage
|
|
environment:
|
|
- APP_URL=${APP_URL:-http://localhost:8000}
|
|
- APP_KEY=${APP_KEY:-ChangeThisPassword}
|
|
- APP_ENV=${APP_ENV:-production}
|
|
- APP_DEBUG=${APP_DEBUG:-false}
|
|
- REQUIRE_HTTPS=${REQUIRE_HTTPS:-false}
|
|
- PHANTOMJS_PDF_GENERATION=${PHANTOMJS_PDF_GENERATION:-false}
|
|
- PDF_GENERATOR=${PDF_GENERATOR:-snappdf}
|
|
- TRUSTED_PROXIES=${TRUSTED_PROXIES:-*}
|
|
- CACHE_DRIVER=${CACHE_DRIVER:-redis}
|
|
- QUEUE_CONNECTION=${QUEUE_CONNECTION:-redis}
|
|
- SESSION_DRIVER=${SESSION_DRIVER:-redis}
|
|
- REDIS_HOST=${REDIS_HOST:-redis}
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-null}
|
|
- REDIS_PORT=${REDIS_PORT:-6379}
|
|
- FILESYSTEM_DISK=${FILESYSTEM_DISK:-debian_docker}
|
|
- DB_CONNECTION=${DB_CONNECTION:-mysql}
|
|
- DB_HOST=${DB_HOST:-mysql}
|
|
- DB_PORT=${DB_PORT:-3306}
|
|
- DB_DATABASE=${DB_DATABASE:-ninja}
|
|
- DB_USERNAME=${DB_USERNAME:-ninja}
|
|
- DB_PASSWORD=${DB_PASSWORD:-ChangeThisPassword}
|
|
- IN_USER_EMAIL=${IN_USER_EMAIL:-admin@example.com}
|
|
- IN_PASSWORD=${IN_PASSWORD:-ChangeThisPassword}
|
|
- MAIL_MAILER=${MAIL_MAILER:-log}
|
|
- MAIL_HOST=${MAIL_HOST:-smtp.mailtrap.io}
|
|
- MAIL_PORT=${MAIL_PORT:-2525}
|
|
- MAIL_USERNAME=${MAIL_USERNAME:-null}
|
|
- MAIL_PASSWORD=${MAIL_PASSWORD:-null}
|
|
- MAIL_ENCRYPTION=${MAIL_ENCRYPTION:-null}
|
|
- MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS:-user@example.com}
|
|
- MAIL_FROM_NAME=${MAIL_FROM_NAME:-Self Hosted User}
|
|
- NORDIGEN_SECRET_ID=${NORDIGEN_SECRET_ID:-}
|
|
- NORDIGEN_SECRET_KEY=${NORDIGEN_SECRET_KEY:-}
|
|
- IS_DOCKER=${IS_DOCKER:-true}
|
|
- SCOUT_DRIVER=${SCOUT_DRIVER:-null}
|
|
networks:
|
|
- internal
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
|
|
nginx:
|
|
image: ${NGINX_IMAGE:-nginx:alpine}
|
|
restart: ${INVOICENINJA_RESTART:-unless-stopped}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/invoiceninja/nginx:/etc/nginx/conf.d:ro
|
|
- ${VOL_PATH:-/data}/invoiceninja/public:/var/www/html/public:ro
|
|
- ${VOL_PATH:-/data}/invoiceninja/storage:/var/www/html/storage:ro
|
|
ports:
|
|
- "${INVOICENINJA_PORT:-8000}:80"
|
|
networks:
|
|
- proxy
|
|
- internal
|
|
depends_on:
|
|
- app
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|
|
internal:
|