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:
parent
bcca73c17a
commit
c836df8825
91 changed files with 414 additions and 17714 deletions
67
dokploy.yaml
67
dokploy.yaml
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue