version: '3.9' services: outline: image: outlinewiki/outline container_name: outline restart: unless-stopped command: sh -c "yarn sequelize:migrate --env production-ssl-disabled && yarn start" environment: - SECRET_KEY=${OUTLINE_SECRET_KEY} - UTILS_SECRET=${OUTLINE_UTILS_SECRET} - DATABASE_URL=postgres://outline:outline@outline_db:5432/outline - DATABASE_URL_TEST=postgres://outline:outline@outline_db:5432/outline-test - PGSSLMODE=disable - REDIS_URL=redis://outline_broker:6379 - URL=${OUTLINE_URL} - PORT=${OUTLINE_PORT} - AWS_ACCESS_KEY_ID=${MINIO_ID} - AWS_SECRET_ACCESS_KEY=${MINIO_SECRET} - AWS_REGION=us-east-1 - AWS_S3_UPLOAD_BUCKET_URL=${MINIO_URL} - AWS_S3_UPLOAD_BUCKET_NAME=outline - AWS_S3_UPLOAD_MAX_SIZE=26214400 - AWS_S3_FORCE_PATH_STYLE=true - AWS_S3_ACL=private - OIDC_CLIENT_ID=${OIDC_ID} - OIDC_CLIENT_SECRET=${OIDC_SECRET} - OIDC_AUTH_URI=${OIDC_AUTH_URI} - OIDC_TOKEN_URI=${OIDC_TOKEN_URI} - OIDC_USERINFO_URI=${OIDC_USERINFO_URI} - OIDC_USERNAME_CLAIM=nickname - OIDC_DISPLAY_NAME=GitLab - OIDC_SCOPES=openid profile email - FORCE_HTTPS=false - ENABLE_UPDATES=true - SMTP_HOST=${SMTP_HOST} - SMTP_PORT=${SMTP_PORT} - SMTP_USERNAME=${SMTP_USERNAME} - SMTP_PASSWORD=${SMTP_PASSWORD} - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL} - SMTP_SECURE=${SMTP_SECURE} depends_on: - outline_db - outline_broker networks: - outline - proxy outline_db: image: postgres container_name: outline_db restart: unless-stopped environment: - POSTGRES_USER=outline - POSTGRES_PASSWORD=outline - POSTGRES_DB=outline volumes: - /home/nick/configs/documents/outline/db:/var/lib/postgresql/data networks: - outline user: 1000:1000 outline_broker: image: redis container_name: outline_broker restart: unless-stopped networks: - outline outline_s3: image: minio/minio container_name: outline_s3 restart: unless-stopped command: "minio server /data" environment: - MINIO_ROOT_USER=${MINIO_ID} - MINIO_ROOT_PASSWORD=${MINIO_SECRET} - MINIO_BROWSER=off volumes: - /home/nick/configs/documents/outline/s3:/data networks: - outline - proxy user: 1000:1000 outline_s3_init: image: minio/mc container_name: outline_s3_init entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add minio http://outline_s3:9000 ${MINIO_ID} ${MINIO_SECRET}) do echo 'Waiting for minio...' && sleep 1; done; /usr/bin/mc mb minio/outline; /usr/bin/mc policy set download minio/outline; exit 0; " networks: - outline depends_on: - outline_s3 paperless: image: ghcr.io/paperless-ngx/paperless-ngx container_name: paperless restart: unless-stopped depends_on: - paperless_db - paperless_broker healthcheck: disable: true volumes: - '/mnt/storage/configs/documents/paperless/data:/usr/src/paperless/data' - '/mnt/storage/configs/documents/paperless/media:/usr/src/paperless/media' - '/mnt/storage/configs/documents/paperless/export:/usr/src/paperless/export' - '/mnt/storage/configs/documents/paperless/consume:/usr/src/paperless/consume' environment: - PAPERLESS_URL=${PAPERLESS_URL} - PAPERLESS_REDIS=redis://paperless_broker:6379 - PAPERLESS_DBHOST=paperless_db - USERMAP_UID=1000 - USERMAP_GID=1000 - PAPERLESS_OCR_LANGUAGES=ell - PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY} - PAPERLESS_TIME_ZONE=Europe/Athens - PAPERLESS_OCR_LANGUAGE=eng - PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD=15 - PAPERLESS_FORCE_SCRIPT_NAME=/paperless - PAPERLESS_ENABLE_HTTP_REMOTE_USER=true networks: - paperless - proxy paperless_broker: image: redis:6.0 container_name: paperless_broker restart: unless-stopped networks: - paperless paperless_db: image: postgres:13 container_name: paperless_db restart: unless-stopped volumes: - '/home/nick/configs/documents/paperless/db:/var/lib/postgresql/data' environment: POSTGRES_DB: paperless POSTGRES_USER: paperless POSTGRES_PASSWORD: paperless networks: - paperless user: '1000:1000' networks: outline: name: outline paperless: name: paperless proxy: external: true name: proxy