Initial commit

This commit is contained in:
Dmitry Bikulov
2026-08-23 17:17:37 +03:00
commit d97525408e
16 changed files with 391 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
services:
outline:
image: outlinewiki/outline:latest
container_name: outline
restart: unless-stopped
networks:
- proxy
- outline
environment:
- NODE_ENV=production
- URL=https://${OUTLINE_HOST}
- PORT=3000
- FILE_STORAGE_UPLOAD_MAX_SIZE=1024000000
- SECRET_KEY=${OUTLINE_SECRET_KEY}
- UTILS_SECRET=${OUTLINE_UTILS_SECRET}
- POSTGRES_PASSWORD=${OUTLINE_POSTGRES_PASSWORD}
- DATABASE_URL=postgres://outline:${OUTLINE_POSTGRES_PASSWORD}@outline-db:5432/outline
- PGSSLMODE=disable
- REDIS_URL=redis://outline-redis:6379
- FILE_STORAGE=local
- FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
- OIDC_ISSUER_URL=https://${OUTLINE_OIDC_ISSUER_URL}
- OIDC_CLIENT_ID=${OUTLINE_OIDC_CLIENT_ID}
- OIDC_CLIENT_SECRET=${OUTLINE_OIDC_CLIENT_SECRET}
- OIDC_DISPLAY_NAME=Gitea
- OIDC_SCOPES=openid profile email
- OIDC_USERNAME_CLAIM=preferred_username
- OIDC_LOGOUT_URI=https://${OUTLINE_HOST}
volumes:
- ./data/outline:/var/lib/outline/data
depends_on:
outline-db:
condition: service_healthy
outline-redis:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.services.outline.loadbalancer.server.port=3000"
- "traefik.http.routers.outline.rule=Host(`${OUTLINE_HOST}`)"
- "traefik.http.routers.outline.entrypoints=websecure"
- "traefik.http.routers.outline.tls.certresolver=le"
outline-db:
image: postgres:latest
container_name: outline-db
restart: unless-stopped
networks:
- outline
environment:
POSTGRES_USER: outline
POSTGRES_PASSWORD: ${OUTLINE_POSTGRES_PASSWORD}
POSTGRES_DB: outline
volumes:
- ./data/outline-db:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U outline -d outline"]
interval: 10s
timeout: 5s
retries: 5
outline-redis:
image: redis:7-alpine
container_name: outline-redis
restart: unless-stopped
networks:
- outline
volumes:
- ./data/outline-redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
proxy:
name: proxy
external: true
outline:
name: outline