mirror of
https://github.com/furyhawk/cloudy.git
synced 2026-05-21 07:26:51 +00:00
Refactor Docker and Kubernetes configurations to add Docmost and Outline services
This commit is contained in:
@@ -485,3 +485,77 @@ REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION=off
|
||||
REDLIB_DEFAULT_HIDE_SCORE=off
|
||||
# Enable fixed navbar by default
|
||||
REDLIB_DEFAULT_FIXED_NAVBAR=on
|
||||
|
||||
# outline
|
||||
NODE_ENV=production
|
||||
|
||||
# Generate a hex-encoded 32-byte random key. You should use `openssl rand -hex 32`
|
||||
# in your terminal to generate a random value.
|
||||
OUTLINE_SECRET_KEY=00b5677d3ce6c106f3d95ec830f9530f9014a2620d16fe60ed867a30c4964c5e
|
||||
|
||||
# Generate a unique random key. The format is not important but you could still use
|
||||
# `openssl rand -hex 32` in your terminal to produce this.
|
||||
OUTLINE_UTILS_SECRET=4b8235fdc01295571bd0946abb5eaf7c131f1a652386c98b658bbc4b1b4e3540
|
||||
|
||||
# For production point these at your databases, in development the default
|
||||
# should work out of the box.
|
||||
DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE__HOSTNAME}:5432/outline
|
||||
# DATABASE_CONNECTION_POOL_MIN=
|
||||
# DATABASE_CONNECTION_POOL_MAX=
|
||||
# Uncomment this to disable SSL for connecting to Postgres
|
||||
PGSSLMODE=disable
|
||||
|
||||
# For redis you can either specify an ioredis compatible url like this
|
||||
REDIS_URL=redis://redis:6379
|
||||
# or alternatively, if you would like to provide additional connection options,
|
||||
# use a base64 encoded JSON connection option object. Refer to the ioredis documentation
|
||||
# for a list of available options.
|
||||
# Example: Use Redis Sentinel for high availability
|
||||
# {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"}
|
||||
# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJzZW50aW5lbC0wIiwicG9ydCI6MjYzNzl9LHsiaG9zdCI6InNlbnRpbmVsLTEiLCJwb3J0IjoyNjM3OX1dLCJuYW1lIjoibXltYXN0ZXIifQ==
|
||||
|
||||
# URL should point to the fully qualified, publicly accessible URL. If using a
|
||||
# proxy the port in URL and PORT may be different.
|
||||
OUTLINE_URL=https://outline.${DOMAINNAME}
|
||||
OUTLINE_PORT=3000
|
||||
|
||||
# See [documentation](docs/SERVICES.md) on running a separate collaboration
|
||||
# server, for normal operation this does not need to be set.
|
||||
COLLABORATION_URL=
|
||||
|
||||
# Specify what storage system to use. Possible value is one of "s3" or "local".
|
||||
# For "local", the avatar images and document attachments will be saved on local disk.
|
||||
FILE_STORAGE=local
|
||||
|
||||
# If "local" is configured for FILE_STORAGE above, then this sets the parent directory under
|
||||
# which all attachments/images go. Make sure that the process has permissions to create
|
||||
# this path and also to write files to it.
|
||||
FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
|
||||
|
||||
# Maximum allowed size for the uploaded attachment.
|
||||
FILE_STORAGE_UPLOAD_MAX_SIZE=262144000
|
||||
|
||||
# Override the maximum size of document imports, generally this should be lower
|
||||
# than the document attachment maximum size.
|
||||
FILE_STORAGE_IMPORT_MAX_SIZE=
|
||||
|
||||
# Override the maximum size of workspace imports, these can be especially large
|
||||
# and the files are temporary being automatically deleted after a period of time.
|
||||
FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=
|
||||
|
||||
# –––––––––––––– AUTHENTICATION ––––––––––––––
|
||||
|
||||
# Third party signin credentials, at least ONE OF EITHER Google, Slack,
|
||||
# or Microsoft is required for a working installation or you'll have no sign-in
|
||||
# options.
|
||||
|
||||
# To configure Google auth, you'll need to create an OAuth Client ID at
|
||||
# => https://console.cloud.google.com/apis/credentials
|
||||
#
|
||||
# When configuring the Client ID, add an Authorized redirect URI:
|
||||
# https://<URL>/auth/google.callback
|
||||
GOOGLE_CLIENT_ID=
|
||||
GOOGLE_CLIENT_SECRET=
|
||||
|
||||
SLACK_CLIENT_ID=
|
||||
SLACK_CLIENT_SECRET=
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user