Strip the Nuxt 4 static site and replace with Docker Compose config for self-hosted Outline wiki (Outline + PostgreSQL 16 + Redis 7). Adds nginx reverse proxy with WebSocket support and CSS injection, migration script for existing markdown articles, backup script, and starter theme CSS.
62 lines
1.4 KiB
YAML
62 lines
1.4 KiB
YAML
services:
|
|
outline:
|
|
image: docker.getoutline.com/outlinewiki/outline:latest
|
|
container_name: outline
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:3100:3000"
|
|
env_file: ./outline.env
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
volumes:
|
|
- outline-storage:/var/lib/outline/data
|
|
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: outline-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: outline
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: outline
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
command:
|
|
- "postgres"
|
|
- "-c"
|
|
- "shared_buffers=128MB"
|
|
- "-c"
|
|
- "max_connections=20"
|
|
- "-c"
|
|
- "work_mem=4MB"
|
|
- "-c"
|
|
- "maintenance_work_mem=64MB"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U outline"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: outline-redis
|
|
restart: unless-stopped
|
|
command: >
|
|
redis-server
|
|
--maxmemory 64mb
|
|
--maxmemory-policy allkeys-lru
|
|
volumes:
|
|
- redis-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
outline-storage:
|
|
postgres-data:
|
|
redis-data:
|