Replace Nuxt wiki with Outline deployment config

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.
This commit is contained in:
Jennie Robinson Faber 2026-03-01 15:45:44 +00:00
parent bcca73c17a
commit c836df8825
91 changed files with 414 additions and 17714 deletions

View file

@ -1,44 +1,31 @@
# DokPloy Configuration for Wiki.GhostGuild.org
# Dokploy Configuration for Wiki.GhostGuild.org
# Outline wiki deployed via docker-compose
name: wiki-ghostguild
type: nixpacks
type: compose
# Build Configuration
build:
dockerfile: null # Using Nixpacks auto-detection
context: .
composeFile: docker-compose.yml
# Environment Configuration
env:
NODE_ENV: production
NITRO_PRESET: node-server
# Secrets (configured in DokPloy UI)
# These should be set in DokPloy interface, not in this file:
# - MONGODB_URI
# - JWT_SECRET
# - JWT_REFRESH_SECRET
# - GHOSTGUILD_CLIENT_ID
# - GHOSTGUILD_CLIENT_SECRET
# - GHOSTGUILD_API_KEY
# Port Configuration
ports:
- 3000:3000
# Secrets (configured in Dokploy UI)
# These should be set in the Dokploy interface, not in this file:
# - POSTGRES_PASSWORD (used by docker-compose for the postgres service)
# - All Outline env vars are in outline.env on the server
# Health Check
healthcheck:
path: /api/health
interval: 30
timeout: 10
retries: 3
retries: 5
# Resource Limits
# Resource Limits (Outline + Postgres + Redis combined)
resources:
limits:
memory: 1GB
cpu: 1
memory: 3GB
cpu: 2
requests:
memory: 512MB
memory: 1GB
cpu: 0.5
# Domains
@ -58,34 +45,8 @@ deploy:
maxSurge: 1
maxUnavailable: 0
# Volume Mounts (for persistent data)
volumes:
- name: content
path: /app/content
size: 5GB
- name: uploads
path: /app/public/uploads
size: 10GB
# Commands
scripts:
prebuild: |
echo "Installing dependencies..."
npm ci
build: |
echo "Building application..."
npm run build
start: |
echo "Starting production server..."
node .output/server/index.mjs
# Monitoring
monitoring:
enabled: true
metrics_path: /metrics
# Backup Configuration
backup:
enabled: true
schedule: "0 2 * * *" # Daily at 2 AM
retention: 30 # Keep 30 days of backups
retention: 14 # Keep 14 days of backups