97 lines
3.1 KiB
YAML
97 lines
3.1 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
outline:
|
|
container_name: outline
|
|
image: outlinewiki/outline:0.77.2
|
|
restart: unless-stopped
|
|
environment:
|
|
- DATABASE_URL=postgres://outline:${OUTLINE_PG_PASSWORD}@outline-postgres:5432/outline
|
|
- REDIS_URL=redis://outline-redis:6379
|
|
- SECRET_KEY=${OUTLINE_SECRET_KEY}
|
|
- UTILS_SECRET=${OUTLINE_UTILS_SECRET}
|
|
- URL=https://${APP_DOMAIN}
|
|
- FORCE_HTTPS=false
|
|
- FILE_STORAGE=local
|
|
- FILE_STORAGE_UPLOAD_MAX_SIZE=26214400
|
|
- PGSSLMODE=disable
|
|
- OIDC_CLIENT_ID=${OUTLINE_OIDC_CLID}
|
|
- OIDC_CLIENT_SECRET=${OUTLINE_OIDC_CLKEY}
|
|
- OIDC_AUTH_URI=https://${APP_DOMAIN}/uc/oauth/authorize/
|
|
- OIDC_TOKEN_URI=http://outline-oidc:8000/oauth/token/
|
|
- OIDC_USERINFO_URI=http://outline-oidc:8000/oauth/userinfo/
|
|
- OIDC_USERNAME_CLAIM=preferred_username
|
|
- OIDC_DISPLAY_NAME=OpenID
|
|
- OIDC_SCOPES=openid profile email
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/outline:/var/lib/outline/data
|
|
depends_on:
|
|
- outline-postgres
|
|
- outline-redis
|
|
networks:
|
|
- tipi_main_network
|
|
|
|
outline-postgres:
|
|
container_name: outline-postgres
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=outline
|
|
- POSTGRES_PASSWORD=${OUTLINE_PG_PASSWORD}
|
|
- POSTGRES_DB=outline
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
|
networks:
|
|
- tipi_main_network
|
|
|
|
outline-redis:
|
|
container_name: outline-redis
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
networks:
|
|
- tipi_main_network
|
|
|
|
outline-oidc:
|
|
container_name: outline-oidc
|
|
image: ghcr.io/sergi0g/oidc-provider:v0.2.0
|
|
restart: unless-stopped
|
|
environment:
|
|
- LANGUAGE_CODE=en-us
|
|
- TIME_ZONE=UTC
|
|
- FORCE_SCRIPT_NAME=/uc
|
|
- SECRET_KEY=${OUTLINE_OIDC_SECRET}
|
|
- DJANGO_SUPERUSER_PASSWORD=${OUTLINE_PASSWORD}
|
|
- DJANGO_SUPERUSER_USERNAME=${OUTLINE_USER}
|
|
- DJANGO_SUPERUSER_EMAIL=user@outline.localhost
|
|
- INITIAL_DATA=oidc-config.json
|
|
- DOMAIN=https://${APP_DOMAIN}
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/oidc-config.json:/app/oidc-config.json:ro
|
|
- ${APP_DATA_DIR}/data/uc/db:/app/db:z
|
|
- ${APP_DATA_DIR}/data/uc/static_root:/app/static_root:z
|
|
networks:
|
|
- tipi_main_network
|
|
|
|
outline-nginx:
|
|
container_name: outline-reverse-proxy
|
|
image: nginx:alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- ${APP_PORT}:80
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/nginx/:/etc/nginx/conf.d/:ro
|
|
- ${APP_DATA_DIR}/data/uc/static_root:/uc/static_root:ro
|
|
depends_on:
|
|
- outline
|
|
- outline-oidc
|
|
networks:
|
|
- tipi_main_network
|
|
labels:
|
|
# Main
|
|
traefik.enable: true
|
|
traefik.http.middlewares.outline-web-redirect.redirectscheme.scheme: https
|
|
traefik.http.services.outline.loadbalancer.server.port: 80
|
|
traefik.http.routers.outline.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.outline.entrypoints: websecure
|
|
traefik.http.routers.outline.service: outline
|
|
traefik.http.routers.outline.tls.certresolver: myresolver |