@@ -0,0 +1,68 @@
+version: "3.3"
+services:
+ traefik:
+ restart: always
+ image: "traefik:v2.8.5"
+ container_name: gitfoss_traefik
+ command:
+ - "--configFile=/var/lib/traefik/traefik.yml"
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.api.rule=Host(`traefik.${DOMAIN:-gitfoss.io}`)"
+ - "traefik.http.routers.api.service=api@internal"
+ - "traefik.http.routers.api.middlewares=traefik_auth"
+ networks:
+ - reverse-proxy-public
+ ports:
+ - "80:80"
+ - "443:443"
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ - ./data/traefik:/var/lib/traefik
+ - ./data/traefik/acme:/var/lib/traefik/acme
+ db:
+ restart: always
+ container_name: gitfoss_db
+ image: "postgres:14"
+ environment:
+ - POSTGRES_PASSWORD=change_me_password
+ - POSTGRES_DB=gitfoss
+ networks:
+ - internal
+ volumes:
+ - ./data/postgres_data:/var/lib/postgresql/data
+ web:
+ restart: always
+ image: "gitfoss_web:latest"
+ container_name: gitfoss_web
+ depends_on:
+ - db
+ environment:
+ - COOKIE_NAME=gitfoss_ssid
+ - COOKIE_SECRET=change_me_cookie_secret
+ - DATABASE_URL=postgresql://postgres:change_me_password@gitfoss_db/gitfoss?sslmode=disable&connection_limit=3
+ - DEPLOYMENT_DOMAIN=${DOMAIN:-gitfoss.io}
+ - DEPLOYMENT_SCHEME=https
+ - GIT_REPOSITORIES_ROOT=/var/lib/gitfoss/repos
+ - PORT=1337
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.gitfoss_https.redirectscheme.scheme=https"
+ - "traefik.http.middlewares.gitfoss_redirect.redirectscheme.scheme=https"
+ - "traefik.http.routers.gitfoss_web.entrypoints=web"
+ - "traefik.http.routers.gitfoss_web.rule=Host(`${DOMAIN:-gitfoss.io}`)"
+ - "traefik.http.routers.gitfoss_web.middlewares=gitfoss_redirect@docker"
+ - "traefik.http.routers.gitfoss_secure.entrypoints=websecure"
+ - "traefik.http.routers.gitfoss_secure.rule=Host(`${DOMAIN:-gitfoss.io}`)"
+ - "traefik.http.routers.gitfoss_secure.middlewares=gitfoss_https@docker"
+ - "traefik.http.routers.gitfoss_secure.tls=true"
+ - "traefik.http.routers.gitfoss_secure.tls.certresolver=letsencrypt"
+ networks:
+ - internal
+ - reverse-proxy-public
+ volumes:
+ - ./data/gitfoss_repos:/var/lib/gitfoss/repos
+
+networks:
+ internal:
+ reverse-proxy-public: