Refactor Docker and Kubernetes configurations to add Docmost and Outline services

This commit is contained in:
2024-07-31 10:45:46 +08:00
parent 6301da7603
commit 012a1dd117
3 changed files with 196 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
networks:
net:
driver: overlay
attachable: true
traefik-public:
external: true
services:
docmost:
image: docmost/docmost:latest
depends_on:
# - db
- redis
environment:
APP_URL: "https://doc.${DOMAIN}"
APP_SECRET: ${JWT_SECRET}
DATABASE_URL: "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE__HOSTNAME}:5432/docmost?schema=public"
REDIS_URL: "redis://redis:6379"
expose:
- 3000
restart: unless-stopped
volumes:
- /var/data/docmost:/app/data/storage
networks:
- net
- traefik-public
deploy:
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.docmost.entrypoints=https
- traefik.http.routers.docmost.rule=Host(`doc.${DOMAIN}`)
- traefik.http.routers.docmost.tls.certresolver=le
- traefik.http.routers.docmost.service=docmost_service
- traefik.http.services.docmost_service.loadbalancer.server.port=3000
# db:
# image: postgres:16-alpine
# environment:
# POSTGRES_DB: docmost
# POSTGRES_USER: ${POSTGRES_USER}
# POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
# restart: unless-stopped
# volumes:
# - /var/data/db_data:/var/lib/postgresql/data
# networks:
# - net
redis:
image: redis:7.2-alpine
restart: unless-stopped
volumes:
- /var/data/redis_data:/data
networks:
- net
+66
View File
@@ -0,0 +1,66 @@
# volumes:
# storage-data: {}
# database-data: {}
networks:
net:
driver: overlay
attachable: true
traefik-public:
external: true
services:
redis:
image: redis
command: ["redis-server", "/redis.conf"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 30s
retries: 3
volumes:
- /var/data/redis.conf:/redis.conf
networks:
- net
outline:
image: docker.getoutline.com/outlinewiki/outline:latest
environment:
- NODE_ENV=${NODE_ENV}
- SECRET_KEY=${OUTLINE_SECRET_KEY}
- UTILS_SECRET=${OUTLINE_UTILS_SECRET}
- DATABASE_URL=${DATABASE_URL}
- PGSSLMODE=${PGSSLMODE}
- REDIS_URL=${REDIS_URL}
- URL=${OUTLINE_URL}
- PORT=${OUTLINE_PORT}
- COLLABORATION_URL=${COLLABORATION_URL}
- FILE_STORAGE=${FILE_STORAGE}
- FILE_STORAGE_LOCAL_ROOT_DIR=${FILE_STORAGE_LOCAL_ROOT_DIR}
- FILE_STORAGE_UPLOAD_MAX_SIZE=${FILE_STORAGE_UPLOAD_MAX_SIZE}
- FILE_STORAGE_IMPORT_MAX_SIZE=${FILE_STORAGE_IMPORT_MAX_SIZE}
- FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=${FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- SLACK_CLIENT_ID=${SLACK_CLIENT_ID}
- SLACK_CLIENT_SECRET=${SLACK_CLIENT_SECRET}
expose:
- 3000
volumes:
- /var/data/outline_data:/var/lib/outline/data
depends_on:
- redis
networks:
- net
- traefik-public
deploy:
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.outline-rtr.entrypoints=https
- traefik.http.routers.outline-rtr.rule=Host(`outline.${DOMAIN}`)
- traefik.http.routers.outline-rtr.middlewares=xbot
- traefik.http.routers.outline-rtr.tls.certresolver=le
- traefik.http.routers.outline-rtr.service=outline-svc
- traefik.http.services.outline-svc.loadbalancer.server.port=3000