{ project.name = "wiki"; networks.dmz = { name = "dmz"; external = true; }; networks.internal = {}; services = { outline.service = { image = "docker.getoutline.com/outlinewiki/outline:0.77.2"; container_name = "outline"; labels = { "traefik.enable" = "true"; "traefik.http.services.outline.loadbalancer.server.port" = "3000"; "traefik.http.routers.outline.service" = "outline"; "traefik.http.routers.outline.rule" = "Host(`wiki.ghoscht.com`)"; "traefik.http.routers.outline.entrypoints" = "websecure"; "traefik.http.routers.outline.tls" = "true"; "traefik.http.routers.outline.tls.certresolver" = "letsencrypt"; }; environment = { NODE_ENV = "production"; PGSSLMODE = "disable"; REDIS_URL = "redis://redis:6379"; URL = "https://wiki.ghoscht.com"; PORT = 3000; OIDC_AUTH_URI = "https://auth.ghoscht.com/application/o/authorize/"; OIDC_TOKEN_URI = "https://auth.ghoscht.com/application/o/token/"; OIDC_USERINFO_URI = "https://auth.ghoscht.com/application/o/userinfo/"; AWS_REGION = "local"; AWS_S3_UPLOAD_BUCKET_URL = "https://files.ghoscht.com"; AWS_S3_UPLOAD_BUCKET_NAME = "outline"; AWS_S3_UPLOAD_MAX_SIZE = 26214400; AWS_S3_FORCE_PATH_STYLE = "true"; AWS_S3_ACL = "private"; }; env_file = [ "/home/ghoscht/.docker/wiki/outline.env" ]; restart = "always"; networks = [ "dmz" "internal" ]; }; redis.service = { image = "redis:7.2.4"; command = "--save 60 1 --loglevel warning"; restart = "always"; volumes = [ "/storage/dataset/docker/wiki/redis_data:/data" ]; networks = [ "internal" ]; }; postgres.service = { image = "postgres:12.18"; restart = "always"; volumes = [ "/storage/dataset/docker/wiki/postgres_data:/var/lib/postgresql/data" ]; networks = [ "internal" ]; env_file = [ "/home/ghoscht/.docker/wiki/postgres.env" ]; }; }; }