62 lines
2.2 KiB
YAML
62 lines
2.2 KiB
YAML
version: "3"
|
|
|
|
services:
|
|
web:
|
|
image: reg.federspiel.software/fedeo/software:beta
|
|
restart: always
|
|
environment:
|
|
- INFISICAL_CLIENT_ID=abc
|
|
- INFISICAL_CLIENT_SECRET=abc
|
|
backend:
|
|
image: reg.federspiel.software/fedeo/backend:main
|
|
restart: always
|
|
environment:
|
|
- NUXT_PUBLIC_API_BASE=
|
|
- NUXT_PUBLIC_PDF_LICENSE=
|
|
db:
|
|
image: postgres
|
|
restart: always
|
|
shm_size: 128mb
|
|
environment:
|
|
POSTGRES_PASSWORD: abc
|
|
POSTGRES_USER: sandelcom
|
|
POSTGRES_DB: sensorfy
|
|
volumes:
|
|
- ./pg-data:/var/lib/postgresql/data
|
|
ports:
|
|
- "5432:5432"
|
|
traefik:
|
|
image: traefik:v2.2
|
|
restart: unless-stopped
|
|
container_name: traefik
|
|
command:
|
|
- "--api.insecure=false"
|
|
- "--api.dashboard=true"
|
|
- "--api.debug=false"
|
|
- "--providers.docker=true"
|
|
- "--providers.docker.exposedbydefault=false"
|
|
- "--providers.docker.network=traefik"
|
|
- "--entrypoints.web.address=:80"
|
|
- "--entrypoints.web-secured.address=:443"
|
|
- "--accesslog=true"
|
|
- "--accesslog.filepath=/logs/access.log"
|
|
- "--accesslog.bufferingsize=5000"
|
|
- "--accesslog.fields.defaultMode=keep"
|
|
- "--accesslog.fields.headers.defaultMode=keep"
|
|
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true" # <== Enable TLS-ALPN-01 to generate and renew ACME certs
|
|
- "--certificatesresolvers.mytlschallenge.acme.email=info@sandelcom.de" # <== Setting email for certs
|
|
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json" # <== Defining acme file to store cert information
|
|
ports:
|
|
- 80:80
|
|
- 8080:8080
|
|
- 443:443
|
|
volumes:
|
|
- "./traefik/letsencrypt:/letsencrypt" # <== Volume for certs (TLS)
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
- "./traefik/logs:/logs"
|
|
labels:
|
|
#### Labels define the behavior and rules of the traefik proxy for this container ####
|
|
- "traefik.enable=true" # <== Enable traefik on itself to view dashboard and assign subdomain to view it
|
|
- "traefik.http.routers.api.rule=Host(`srv1.drinkingteam.de`)" # <== Setting the domain for the dashboard
|
|
- "traefik.http.routers.api.service=api@internal" # <== Enabling the api to be a service to access
|