Files
Docker-Compose/Financial_Containers/invoiceshelf/compose.yaml
T

97 lines
3.2 KiB
YAML

#-------------------------------------------
# InvoiceShelf PostgreSQL docker-compose variant
# Repo : https://github.com/InvoiceShelf/docker
#-------------------------------------------
services:
invoiceshelf_db:
container_name: invoiceshelf_db
image: postgres:15
#ports:
# - 5432:5432
volumes:
- /srv/docker/invoiceshelf/postgres:/var/lib/postgresql/data
env_file:
- .env
environment:
- POSTGRES_PASSWORD=${DB_PASSWORD}
- DB_PASSWORD=${DB_PASSWORD}
- POSTGRES_USER=invoiceshelf
- POSTGRES_DB=invoiceshelf
restart: unless-stopped
networks:
- invoiceshelf
invoiceshelf:
image: invoiceshelf/invoiceshelf:latest
container_name: invoiceshelf
volumes:
#- /srv/docker/invoiceshelf/invoiceshelf_pgsql/data:/data
#- /srv/docker/invoiceshelf/invoiceshelf_pgsql/conf:/conf
- /srv/docker/invoiceshelf/invoiceshelf_pgsql/storage:/var/www/html/storage
- /srv/docker/invoiceshelf/invoiceshelf_pgsql/modules:/var/www/html/Modules
env_file:
- .env
environment:
- PHP_TZ=America/Chicago
- TIMEZONE=America/Chicago
- APP_NAME=InvoiceShelf
- APP_ENV=production
- APP_DEBUG=false
- APP_URL=https://${SERVICE_NAME}.${DOMAIN_NAME}
- DB_CONNECTION=pgsql
- DB_HOST=invoiceshelf_db
- DB_PORT=5432
- DB_DATABASE=invoiceshelf
- DB_USERNAME=invoiceshelf
- DB_PASSWORD=${DB_PASSWORD}
- DB_PASSWORD_FILE=
- DOMAIN_NAME=${DOMAIN_NAME}
- CACHE_STORE=file
- SESSION_DRIVER=file
- SESSION_LIFETIME=120
- SESSION_ENCRYPT=false
- SESSION_PATH=/
- SESSION_DOMAIN=${SERVICE_NAME}.${DOMAIN_NAME}
- SANCTUM_STATEFUL_DOMAINS=${SERVICE_NAME}.${DOMAIN_NAME}
- STARTUP_DELAY=10
- TRUSTED_PROXIES=*
- AUTORUN_ENABLED=true
- AUTORUN_LARAVEL_MIGRATION=false
- AUTORUN_LARAVEL_OPTIMIZE=false
- PHP_OPCACHE_ENABLE=1
- MAIL_DRIVER=smtp
- MAIL_HOST=smtp.mailgun.org
- MAIL_PORT=587
- MAIL_USERNAME=${MAIL_USERNAME}
- MAIL_PASSWORD=${MAIL_PASSWORD}
- MAIL_ENCRYPTION=tls
restart: unless-stopped
depends_on:
- invoiceshelf_db
networks:
- traefik_network
- invoiceshelf
labels:
### Traefik Labels
- traefik.enable=true
- traefik.http.routers.${SERVICE_NAME}-https.tls=true
- traefik.docker.network=traefik_network
- traefik.http.routers.${SERVICE_NAME}-https.tls.certresolver=cloudflare
- traefik.http.routers.${SERVICE_NAME}-https.entrypoints=websecure
- traefik.http.routers.${SERVICE_NAME}-https.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
### Monitor with uptime-kuma
- kuma.monitoring.group.name=Docker Containers
- kuma.${SERVICE_NAME}.docker.parent_name=monitoring
- kuma.${SERVICE_NAME}.docker.name=${SERVICE_NAME}
- kuma.${SERVICE_NAME}.docker.type=docker
- kuma.${SERVICE_NAME}.docker.docker_container=${SERVICE_NAME}
- kuma.${SERVICE_NAME}.docker.docker_host=1
- 'kuma.${SERVICE_NAME}.docker.tag_names=[{"name": "docker_tag"}]'
networks:
traefik_network:
external: true
invoiceshelf:
name: invoiceshelf_network
driver: bridge