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:-ninja} - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:-ninjaAdm1nPassword} 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 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: