services: app: image: "solidtime/solidtime:${SOLIDTIME_VERSION:-latest}" container_name: solidtime restart: always labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.solidtime.entrypoints=http" - "traefik.http.routers.solidtime.rule=Host(`${SOLIDTIME_DOMAIN:?error}`)" - "traefik.http.middlewares.solidtime-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.solidtime.middlewares=solidtime-https-redirect" - "traefik.http.routers.solidtime-secure.entrypoints=https" - "traefik.http.routers.solidtime-secure.rule=Host(`${SOLIDTIME_DOMAIN:?error}`)" - "traefik.http.routers.solidtime-secure.tls=true" - "traefik.http.routers.solidtime-secure.service=solidtime" - "traefik.http.services.solidtime.loadbalancer.server.port=8000" networks: - traefik - solidtime volumes: - "app-storage:/var/www/html/storage" - "./data/logs:/var/www/html/storage/logs" - "./data/app-storage:/var/www/html/storage/app" environment: CONTAINER_MODE: http healthcheck: test: [ "CMD-SHELL", "curl --fail http://localhost:8000/health-check/up || exit 1" ] env_file: - laravel.env depends_on: - database scheduler: image: "solidtime/solidtime:${SOLIDTIME_VERSION:-latest}" restart: always networks: - solidtime volumes: - "app-storage:/var/www/html/storage" - "./data/logs:/var/www/html/storage/logs" - "./data/app-storage:/var/www/html/storage/app" environment: CONTAINER_MODE: scheduler healthcheck: test: [ "CMD-SHELL", "supervisorctl status scheduler:scheduler_00" ] env_file: - laravel.env depends_on: - database queue: restart: always image: "solidtime/solidtime:${SOLIDTIME_VERSION:-latest}" networks: - solidtime volumes: - "app-storage:/var/www/html/storage" - "./data/logs:/var/www/html/storage/logs" - "./data/app-storage:/var/www/html/storage/app" environment: CONTAINER_MODE: worker WORKER_COMMAND: "php /var/www/html/artisan queue:work" healthcheck: test: [ "CMD-SHELL", "supervisorctl status worker:worker_00" ] env_file: - laravel.env depends_on: - database database: restart: always image: 'postgres:${SOLIDTIME_POSTGRES_VERSION:-16}' environment: PGPASSWORD: '${SOLIDTIME_POSTGRES_PASSWORD:?error}' POSTGRES_DB: '${SOLIDTIME_POSTGRES_DATABASE:?error}' POSTGRES_USER: '${SOLIDTIME_POSTGRES_USERNAME:?error}' POSTGRES_PASSWORD: '${SOLIDTIME_POSTGRES_PASSWORD:?error}' volumes: - 'database-storage:/var/lib/postgresql/data' networks: - solidtime healthcheck: test: - CMD - pg_isready - '-q' - '-d' - '${SOLIDTIME_POSTGRES_DATABASE}' - '-U' - '${SOLIDTIME_POSTGRES_USERNAME}' retries: 3 timeout: 5s gotenberg: image: gotenberg/gotenberg:8 networks: - solidtime healthcheck: test: [ "CMD", "curl", "--silent", "--fail", "http://localhost:3000/health" ] networks: traefik: external: true internal: volumes: database-storage: app-storage: