refactor: debrand docker compose deployments -S
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
## Basic Settings ##
|
||||
# Define the docker compose log driver used.
|
||||
# Defaults to local
|
||||
LOG_DRIVER=
|
||||
# If you're on an internet facing server, comment out following line.
|
||||
# It skips certificate validation for various parts of Infinite Scale and is
|
||||
# needed when self signed certificates are used.
|
||||
INSECURE=true
|
||||
|
||||
|
||||
## Traefik Settings ##
|
||||
# Note: Traefik is always enabled and can't be disabled.
|
||||
# Serve Traefik dashboard.
|
||||
# Defaults to "false".
|
||||
TRAEFIK_DASHBOARD=
|
||||
# Domain of Traefik, where you can find the dashboard.
|
||||
# Defaults to "traefik.opencloud.test"
|
||||
TRAEFIK_DOMAIN=
|
||||
# Basic authentication for the traefik dashboard.
|
||||
# Defaults to user "admin" and password "admin" (written as: "admin:admin").
|
||||
TRAEFIK_BASIC_AUTH_USERS=
|
||||
# Email address for obtaining LetsEncrypt certificates.
|
||||
# Needs only be changed if this is a public facing server.
|
||||
TRAEFIK_ACME_MAIL=
|
||||
# Set to the following for testing to check the certificate process:
|
||||
# "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
# With staging configured, there will be an SSL error in the browser.
|
||||
# When certificates are displayed and are emitted by # "Fake LE Intermediate X1",
|
||||
# the process went well and the envvar can be reset to empty to get valid certificates.
|
||||
TRAEFIK_ACME_CASERVER=
|
||||
|
||||
|
||||
## Infinite Scale Settings ##
|
||||
# Beside Traefik, this service must stay enabled.
|
||||
# Disable only for testing purposes.
|
||||
# Note: the leading colon is required to enable the service.
|
||||
OPENCLOUD=:opencloud.yml
|
||||
# The opencloud container image.
|
||||
# For production releases: "opencloud-eu/opencloud"
|
||||
# For rolling releases: "opencloud-eu/opencloud-rolling"
|
||||
# Defaults to production if not set otherwise
|
||||
OC_DOCKER_IMAGE=opencloud-eu/opencloud
|
||||
# The openCloud container version.
|
||||
# Defaults to "latest" and points to the latest stable tag.
|
||||
OC_DOCKER_TAG=dev
|
||||
# Domain of openCloud, where you can find the frontend.
|
||||
# Defaults to "cloud.opencloud.test"
|
||||
OC_DOMAIN=
|
||||
# openCloud admin user password. Defaults to "admin".
|
||||
ADMIN_PASSWORD=
|
||||
# Demo users should not be created on a production instance,
|
||||
# because their passwords are public. Defaults to "false".
|
||||
# Also see: https://doc.opencloud.eu/opencloud/latest/deployment/general/general-info.html#demo-users-and-groups
|
||||
DEMO_USERS=
|
||||
# Define the openCloud loglevel used.
|
||||
# For more details see:
|
||||
# https://doc.opencloud.eu/opencloud/latest/deployment/services/env-vars-special-scope.html
|
||||
LOG_LEVEL=
|
||||
# Define the kind of logging.
|
||||
# The default log can be read by machines.
|
||||
# Set this to true to make the log human readable.
|
||||
# LOG_PRETTY=true
|
||||
#
|
||||
# Define the openCloud storage location. Set the paths for config and data to a local path.
|
||||
# Note that especially the data directory can grow big.
|
||||
# Leaving it default stores data in docker internal volumes.
|
||||
# For more details see:
|
||||
# https://doc.opencloud.eu/opencloud/next/deployment/general/general-info.html#default-paths
|
||||
# OC_CONFIG_DIR=/your/local/opencloud/config
|
||||
# OC_DATA_DIR=/your/local/opencloud/data
|
||||
|
||||
# S3 Storage configuration - optional
|
||||
# Infinite Scale supports S3 storage as primary storage.
|
||||
# Per default, S3 storage is disabled and the local filesystem is used.
|
||||
# To enable S3 storage, uncomment the following line and configure the S3 storage.
|
||||
# For more details see:
|
||||
# https://doc.opencloud.eu/opencloud/next/deployment/storage/s3.html
|
||||
# Note: the leading colon is required to enable the service.
|
||||
#S3NG=:s3ng.yml
|
||||
# Configure the S3 storage endpoint. Defaults to "http://minio:9000" for testing purposes.
|
||||
S3NG_ENDPOINT=
|
||||
# S3 region. Defaults to "default".
|
||||
S3NG_REGION=
|
||||
# S3 access key. Defaults to "opencloud"
|
||||
S3NG_ACCESS_KEY=
|
||||
# S3 secret. Defaults to "opencloud-secret-key"
|
||||
S3NG_SECRET_KEY=
|
||||
# S3 bucket. Defaults to "opencloud"
|
||||
S3NG_BUCKET=
|
||||
#
|
||||
# For testing purposes, add local minio S3 storage to the docker-compose file.
|
||||
# The leading colon is required to enable the service.
|
||||
#S3NG_MINIO=:minio.yml
|
||||
# Minio domain. Defaults to "minio.opencloud.test".
|
||||
MINIO_DOMAIN=
|
||||
|
||||
# Define SMPT settings if you would like to send Infinite Scale email notifications.
|
||||
# For more details see:
|
||||
# https://doc.opencloud.eu/opencloud/latest/deployment/services/s-list/notifications.html
|
||||
# NOTE: when configuring Inbucket, these settings have no effect, see inbucket.yml for details.
|
||||
# SMTP host to connect to.
|
||||
SMTP_HOST=
|
||||
# Port of the SMTP host to connect to.
|
||||
SMTP_PORT=
|
||||
# An eMail address that is used for sending Infinite Scale notification eMails
|
||||
# like "opencloud notifications <noreply@yourdomain.com>".
|
||||
SMTP_SENDER=
|
||||
# Username for the SMTP host to connect to.
|
||||
SMTP_USERNAME=
|
||||
# Password for the SMTP host to connect to.
|
||||
SMTP_PASSWORD=
|
||||
# Authentication method for the SMTP communication.
|
||||
SMTP_AUTHENTICATION=
|
||||
# Allow insecure connections to the SMTP server. Defaults to false.
|
||||
SMTP_INSECURE=
|
||||
|
||||
# Addititional services to be started on opencloud startup
|
||||
# The following list of services is not startet automatically and must be
|
||||
# manually defined for startup:
|
||||
# IMPORTANT: The notification service is MANDATORY, do not delete!
|
||||
# IMPORTANT: Add any services to the startup list comma separated like "notifications,antivirus" etc.
|
||||
START_ADDITIONAL_SERVICES="notifications"
|
||||
|
||||
|
||||
## openCloud Web Extensions ##
|
||||
# It is possible to use the openCloud Web Extensions to add custom functionality to the openCloud frontend.
|
||||
# For more details see https://github.com/opencloud-eu/web-extensions/blob/main/README.md
|
||||
# Note: the leading colon is required to enable the service.
|
||||
# Enable this to create a new named volume
|
||||
#EXTENSIONS=:web_extensions/extensions.yml
|
||||
# Enable the desired extensions by uncommenting the following lines.
|
||||
# Note: the leading colon is required to enable the service.
|
||||
# Note: if you want to remove a web extension, you must delete the opencloud-apps volume. It will be properly recreated on docker compose startup.
|
||||
#UNZIP=:web_extensions/unzip.yml
|
||||
#DRAWIO=:web_extensions/drawio.yml
|
||||
#JSONVIEWER=:web_extensions/jsonviewer.yml
|
||||
#PROGRESSBARS=:web_extensions/progressbars.yml
|
||||
#EXTERNALSITES=:web_extensions/externalsites.yml
|
||||
# External Sites needs additional config, see the following files for more details.
|
||||
# - config/opencloud/apps.yaml
|
||||
# - config/opencloud/csp.yaml
|
||||
#IMPORTER=:web_extensions/importer.yml
|
||||
# The importer needs additional config, see the following lines for more details.
|
||||
## The docker image to be used for uppy companion.
|
||||
# opencloud has built a container with public link import support.
|
||||
COMPANION_IMAGE=
|
||||
# Domain of Uppy Companion. Defaults to "companion.opencloud.test".
|
||||
COMPANION_DOMAIN=
|
||||
# Provider settings, see https://uppy.io/docs/companion/#provideroptions for reference.
|
||||
# Empty by default, which disables providers.
|
||||
COMPANION_ONEDRIVE_KEY=
|
||||
COMPANION_ONEDRIVE_SECRET=
|
||||
|
||||
|
||||
## Default Enabled Services ##
|
||||
|
||||
### Apache Tika Content Analysis Toolkit ###
|
||||
# Tika (search) is enabled by default, comment if not required.
|
||||
# Note: the leading colon is required to enable the service.
|
||||
#TIKA=:tika.yml
|
||||
# Set the desired docker image tag or digest.
|
||||
# Defaults to "latest"
|
||||
TIKA_IMAGE=
|
||||
|
||||
### IMPORTANT Note for Online Office Apps ###
|
||||
# To avoid app interlocking issues, you should select only one app to be active/configured.
|
||||
# This is due the fact that there is currently no app interlocking for the same file and one
|
||||
# has to wait for a lock release to open the file with another app.
|
||||
|
||||
### Collabora Settings ###
|
||||
# Collabora web office is default enabled, comment if not required.
|
||||
# Note: the leading colon is required to enable the service.
|
||||
COLLABORA=:collabora.yml
|
||||
# Domain of Collabora, where you can find the frontend.
|
||||
# Defaults to "collabora.opencloud.test"
|
||||
COLLABORA_DOMAIN=
|
||||
# Domain of the wopiserver which handles OnlyOffice.
|
||||
# Defaults to "wopiserver.opencloud.test"
|
||||
WOPISERVER_DOMAIN=
|
||||
# Admin user for Collabora.
|
||||
# Defaults to "admin".
|
||||
# Collabora Admin Panel URL:
|
||||
# https://{COLLABORA_DOMAIN}/browser/dist/admin/admin.html
|
||||
COLLABORA_ADMIN_USER=
|
||||
# Admin password for Collabora.
|
||||
# Defaults to "admin".
|
||||
COLLABORA_ADMIN_PASSWORD=
|
||||
# Set to true to enable SSL for Collabora Online. Default is true if not specified.
|
||||
COLLABORA_SSL_ENABLE=false
|
||||
# If you're on an internet-facing server, enable SSL verification for Collabora Online.
|
||||
# Please comment out the following line:
|
||||
COLLABORA_SSL_VERIFICATION=false
|
||||
|
||||
|
||||
## Supplemental Configurations ##
|
||||
# If you want to use supplemental configurations,
|
||||
# you need to uncomment lines containing :path/file.yml
|
||||
# and configure the service as required.
|
||||
|
||||
|
||||
### Debugging - Monitoring ###
|
||||
# Please see documentation at: https://opencloud.dev/opencloud/deployment/monitoring-tracing/
|
||||
# Note: the leading colon is required to enable the service.
|
||||
#MONITORING=:monitoring_tracing/monitoring.yml
|
||||
|
||||
|
||||
### Virusscanner Settings ###
|
||||
# IMPORTANT: If you enable antivirus, you also MUST configure the START_ADDITIONAL_SERVICES
|
||||
# envvar in the Infinite Scale Settings above by adding 'antivirus' to the list.
|
||||
# Note: the leading colon is required to enable the service.
|
||||
#CLAMAV=:clamav.yml
|
||||
# Image version of the ClamAV container.
|
||||
# Defaults to "latest"
|
||||
CLAMAV_DOCKER_TAG=
|
||||
|
||||
|
||||
### OnlyOffice Settings ###
|
||||
# Note: the leading colon is required to enable the service.
|
||||
#ONLYOFFICE=:onlyoffice.yml
|
||||
# Domain for OnlyOffice. Defaults to "onlyoffice.opencloud.test".
|
||||
ONLYOFFICE_DOMAIN=
|
||||
# Domain for the wopiserver which handles OnlyOffice.
|
||||
WOPISERVER_ONLYOFFICE_DOMAIN=
|
||||
|
||||
|
||||
### Inbucket Settings ###
|
||||
# Inbucket is a mail catcher tool for testing purposes.
|
||||
# DO NOT use in Production.
|
||||
# Note: the leading colon is required to enable the service.
|
||||
#INBUCKET=:inbucket.yml
|
||||
# email server (in this case inbucket acts as mail catcher).
|
||||
# Domain for Inbucket. Defaults to "mail.opencloud.test".
|
||||
INBUCKET_DOMAIN=
|
||||
|
||||
|
||||
## IMPORTANT ##
|
||||
# This MUST be the last line as it assembles the supplemental compose files to be used.
|
||||
# ALL supplemental configs must be added here, whether commented or not.
|
||||
# Each var must either be empty or contain :path/file.yml
|
||||
COMPOSE_FILE=docker-compose.yml${OPENCLOUD:-}${TIKA:-}${S3NG:-}${S3NG_MINIO:-}${COLLABORA:-}${MONITORING:-}${IMPORTER:-}${CLAMAV:-}${ONLYOFFICE:-}${INBUCKET:-}${EXTENSIONS:-}${UNZIP:-}${DRAWIO:-}${JSONVIEWER:-}${PROGRESSBARS:-}${EXTERNALSITES:-}
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
document this deployment example in: docs/ocis/deployment/opencloud_full.md
|
||||
---
|
||||
|
||||
# Infinite Scale WOPI Deployment Example
|
||||
|
||||
This deployment example is documented in two locations for different audiences:
|
||||
|
||||
* In the [Admin Documentation](https://doc.owncloud.com/ocis/latest/index.html)\
|
||||
Providing two variants using detailed configuration step by step guides:\
|
||||
[Local Production Setup](https://doc.owncloud.com/ocis/next/depl-examples/ubuntu-compose/ubuntu-compose-prod.html) and [Deploy Infinite Scale on the Hetzner Cloud](https://doc.owncloud.com/ocis/next/depl-examples/ubuntu-compose/ubuntu-compose-hetzner.html).\
|
||||
Note that these examples use LetsEncrypt certificates and are intended for production use.
|
||||
|
||||
* In the [Developer Documentation](https://owncloud.dev/ocis/deployment/ocis_full/)\
|
||||
Providing details which are more developer focused. This description can also be used when deviating from the default.\
|
||||
Note that this examples uses self signed certificates and is intended for testing purposes.
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
environment:
|
||||
ANTIVIRUS_SCANNER_TYPE: "clamav"
|
||||
ANTIVIRUS_CLAMAV_SOCKET: "/var/run/clamav/clamd.sock"
|
||||
# the antivirus service needs manual startup, see .env and opencloud.yaml for START_ADDITIONAL_SERVICES
|
||||
# configure the antivirus service
|
||||
POSTPROCESSING_STEPS: "virusscan"
|
||||
# PROXY_TLS is set to "false", the download url has no https
|
||||
STORAGE_USERS_DATA_GATEWAY_URL: http://opencloud:9200/data
|
||||
volumes:
|
||||
- "clamav-socket:/var/run/clamav"
|
||||
|
||||
clamav:
|
||||
image: clamav/clamav:${CLAMAV_DOCKER_TAG:-latest}
|
||||
# release notes: https://blog.clamav.net
|
||||
networks:
|
||||
opencloud-net:
|
||||
volumes:
|
||||
- "clamav-socket:/tmp"
|
||||
- "clamav-db:/var/lib/clamav"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
clamav-socket:
|
||||
clamav-db:
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
services:
|
||||
traefik:
|
||||
networks:
|
||||
opencloud-net:
|
||||
aliases:
|
||||
- ${COLLABORA_DOMAIN:-collabora.opencloud.test}
|
||||
- ${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}
|
||||
opencloud:
|
||||
environment:
|
||||
# make collabora the secure view app
|
||||
FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR: eu.opencloud.api.collaboration.CollaboraOnline
|
||||
GRAPH_AVAILABLE_ROLES: "b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5,a8d5fe5e-96e3-418d-825b-534dbdf22b99,fb6c3e19-e378-47e5-b277-9732f9de6e21,58c63c02-1d89-4572-916a-870abc5a1b7d,2d00ce52-1fc2-4dbc-8b95-a73b73395f5a,1c996275-f1c9-4e71-abdf-a42f6495e960,312c0871-5ef7-4b3a-85b6-0e4074c64049,aa97fe03-7980-45ac-9e50-b325749fd7e6"
|
||||
|
||||
collaboration:
|
||||
image: ${OC_DOCKER_IMAGE:-opencloud-eu/opencloud}:${OC_DOCKER_TAG:-latest}
|
||||
networks:
|
||||
opencloud-net:
|
||||
depends_on:
|
||||
opencloud:
|
||||
condition: service_started
|
||||
collabora:
|
||||
condition: service_healthy
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: [ "-c", "opencloud collaboration server" ]
|
||||
environment:
|
||||
COLLABORATION_GRPC_ADDR: 0.0.0.0:9301
|
||||
COLLABORATION_HTTP_ADDR: 0.0.0.0:9300
|
||||
MICRO_REGISTRY: "nats-js-kv"
|
||||
MICRO_REGISTRY_ADDRESS: "opencloud:9233"
|
||||
COLLABORATION_WOPI_SRC: https://${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}
|
||||
COLLABORATION_APP_NAME: "CollaboraOnline"
|
||||
COLLABORATION_APP_PRODUCT: "Collabora"
|
||||
COLLABORATION_APP_ADDR: https://${COLLABORA_DOMAIN:-collabora.opencloud.test}
|
||||
COLLABORATION_APP_ICON: https://${COLLABORA_DOMAIN:-collabora.opencloud.test}/favicon.ico
|
||||
COLLABORATION_APP_INSECURE: "${INSECURE:-true}"
|
||||
COLLABORATION_CS3API_DATAGATEWAY_INSECURE: "${INSECURE:-true}"
|
||||
COLLABORATION_LOG_LEVEL: ${LOG_LEVEL:-info}
|
||||
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}
|
||||
volumes:
|
||||
# configure the .env file to use own paths instead of docker internal volumes
|
||||
- ${OC_CONFIG_DIR:-opencloud-config}:/etc/opencloud
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.collaboration.entrypoints=https"
|
||||
- "traefik.http.routers.collaboration.rule=Host(`${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}`)"
|
||||
- "traefik.http.routers.collaboration.tls.certresolver=http"
|
||||
- "traefik.http.routers.collaboration.service=collaboration"
|
||||
- "traefik.http.services.collaboration.loadbalancer.server.port=9300"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
collabora:
|
||||
image: collabora/code:24.04.11.1.1
|
||||
# release notes: https://www.collaboraonline.com/release-notes/
|
||||
networks:
|
||||
opencloud-net:
|
||||
environment:
|
||||
aliasgroup1: https://${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}:443
|
||||
DONT_GEN_SSL_CERT: "YES"
|
||||
extra_params: |
|
||||
--o:ssl.enable=${COLLABORA_SSL_ENABLE:-true} \
|
||||
--o:ssl.ssl_verification=${COLLABORA_SSL_VERIFICATION:-true} \
|
||||
--o:ssl.termination=true \
|
||||
--o:welcome.enable=false \
|
||||
--o:net.frame_ancestors=${OC_DOMAIN:-cloud.opencloud.test}
|
||||
username: ${COLLABORA_ADMIN_USER:-admin}
|
||||
password: ${COLLABORA_ADMIN_PASSWORD:-admin}
|
||||
cap_add:
|
||||
- MKNOD
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.collabora.entrypoints=https"
|
||||
- "traefik.http.routers.collabora.rule=Host(`${COLLABORA_DOMAIN:-collabora.opencloud.test}`)"
|
||||
- "traefik.http.routers.collabora.tls.certresolver=http"
|
||||
- "traefik.http.routers.collabora.service=collabora"
|
||||
- "traefik.http.services.collabora.loadbalancer.server.port=9980"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
command: ["bash", "-c", "coolconfig generate-proof-key ; /start-collabora-online.sh"]
|
||||
healthcheck:
|
||||
test: [ "CMD", "curl", "-f", "http://localhost:9980/hosting/discovery" ]
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# we can't mount it directly because the run-document-server.sh script wants to move it
|
||||
cp /etc/onlyoffice/documentserver/local.dist.json /etc/onlyoffice/documentserver/local.json
|
||||
|
||||
/app/ds/run-document-server.sh
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"services": {
|
||||
"CoAuthoring": {
|
||||
"sql": {
|
||||
"type": "postgres",
|
||||
"dbHost": "localhost",
|
||||
"dbPort": "5432",
|
||||
"dbName": "onlyoffice",
|
||||
"dbUser": "onlyoffice",
|
||||
"dbPass": "onlyoffice"
|
||||
},
|
||||
"token": {
|
||||
"enable": {
|
||||
"request": {
|
||||
"inbox": true,
|
||||
"outbox": true
|
||||
},
|
||||
"browser": true
|
||||
},
|
||||
"inbox": {
|
||||
"header": "Authorization"
|
||||
},
|
||||
"outbox": {
|
||||
"header": "Authorization"
|
||||
}
|
||||
},
|
||||
"secret": {
|
||||
"inbox": {
|
||||
"string": "B8LjkNqGxn6gf8bkuBUiMwyuCFwFddnu"
|
||||
},
|
||||
"outbox": {
|
||||
"string": "B8LjkNqGxn6gf8bkuBUiMwyuCFwFddnu"
|
||||
},
|
||||
"session": {
|
||||
"string": "B8LjkNqGxn6gf8bkuBUiMwyuCFwFddnu"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"rabbitmq": {
|
||||
"url": "amqp://guest:guest@localhost"
|
||||
},
|
||||
"FileConverter": {
|
||||
"converter": {
|
||||
"inputLimits": [
|
||||
{
|
||||
"type": "docx;dotx;docm;dotm",
|
||||
"zip": {
|
||||
"uncompressed": "1GB",
|
||||
"template": "*.xml"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "xlsx;xltx;xlsm;xltm",
|
||||
"zip": {
|
||||
"uncompressed": "1GB",
|
||||
"template": "*.xml"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "pptx;ppsx;potx;pptm;ppsm;potm",
|
||||
"zip": {
|
||||
"uncompressed": "1GB",
|
||||
"template": "*.xml"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
app_registry:
|
||||
mimetypes:
|
||||
- mime_type: application/pdf
|
||||
extension: pdf
|
||||
name: PDF
|
||||
description: PDF document
|
||||
icon: ''
|
||||
default_app: ''
|
||||
allow_creation: false
|
||||
- mime_type: application/vnd.oasis.opendocument.text
|
||||
extension: odt
|
||||
name: OpenDocument
|
||||
description: OpenDocument text document
|
||||
icon: ''
|
||||
default_app: Collabora
|
||||
allow_creation: true
|
||||
- mime_type: application/vnd.oasis.opendocument.spreadsheet
|
||||
extension: ods
|
||||
name: OpenSpreadsheet
|
||||
description: OpenDocument spreadsheet document
|
||||
icon: ''
|
||||
default_app: Collabora
|
||||
allow_creation: true
|
||||
- mime_type: application/vnd.oasis.opendocument.presentation
|
||||
extension: odp
|
||||
name: OpenPresentation
|
||||
description: OpenDocument presentation document
|
||||
icon: ''
|
||||
default_app: Collabora
|
||||
allow_creation: true
|
||||
- mime_type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
||||
extension: docx
|
||||
name: Microsoft Word
|
||||
description: Microsoft Word document
|
||||
icon: ''
|
||||
default_app: OnlyOffice
|
||||
allow_creation: true
|
||||
- mime_type: application/vnd.openxmlformats-officedocument.wordprocessingml.form
|
||||
extension: docxf
|
||||
name: Form Document
|
||||
description: Form Document
|
||||
icon: ''
|
||||
default_app: OnlyOffice
|
||||
allow_creation: true
|
||||
- mime_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
||||
extension: xlsx
|
||||
name: Microsoft Excel
|
||||
description: Microsoft Excel document
|
||||
icon: ''
|
||||
default_app: OnlyOffice
|
||||
allow_creation: true
|
||||
- mime_type: application/vnd.openxmlformats-officedocument.presentationml.presentation
|
||||
extension: pptx
|
||||
name: Microsoft PowerPoint
|
||||
description: Microsoft PowerPoint document
|
||||
icon: ''
|
||||
default_app: OnlyOffice
|
||||
allow_creation: true
|
||||
- mime_type: application/vnd.jupyter
|
||||
extension: ipynb
|
||||
name: Jupyter Notebook
|
||||
description: Jupyter Notebook
|
||||
icon: ''
|
||||
default_app: ''
|
||||
allow_creation: true
|
||||
@@ -0,0 +1,23 @@
|
||||
importer:
|
||||
config:
|
||||
companionUrl: https://${COMPANION_DOMAIN|companion.owncloud.test}
|
||||
supportedClouds:
|
||||
- WebdavPublicLink
|
||||
#- OneDrive # needs a client id and secret
|
||||
#- GoogleDrive # needs a client id and secret and an addition to the DNS zone
|
||||
external-sites:
|
||||
config:
|
||||
sites:
|
||||
# For settings see: https://github.com/owncloud/web-extensions/tree/main/packages/web-app-external-sites
|
||||
- name: ownCloud
|
||||
url: "https://owncloud.dev"
|
||||
target: embedded
|
||||
color: "#0D856F"
|
||||
icon: cloud
|
||||
priority: 50
|
||||
- name: Wikipedia
|
||||
url: "https://www.wikipedia.org"
|
||||
target: external
|
||||
color: "#0D856F"
|
||||
icon: book
|
||||
priority: 51
|
||||
@@ -0,0 +1,5 @@
|
||||
password
|
||||
12345678
|
||||
123
|
||||
ownCloud
|
||||
ownCloud-1
|
||||
@@ -0,0 +1,45 @@
|
||||
directives:
|
||||
child-src:
|
||||
- '''self'''
|
||||
connect-src:
|
||||
- '''self'''
|
||||
- 'blob:'
|
||||
- 'https://${COMPANION_DOMAIN|companion.opencloud.test}/'
|
||||
- 'wss://${COMPANION_DOMAIN|companion.opencloud.test}/'
|
||||
- 'https://raw.githubusercontent.com/opencloud/awesome-apps/'
|
||||
default-src:
|
||||
- '''none'''
|
||||
font-src:
|
||||
- '''self'''
|
||||
frame-ancestors:
|
||||
- '''self'''
|
||||
frame-src:
|
||||
- '''self'''
|
||||
- 'blob:'
|
||||
- 'https://embed.diagrams.net/'
|
||||
# In contrary to bash and docker the default is given after the | character
|
||||
- 'https://${ONLYOFFICE_DOMAIN|onlyoffice.opencloud.test}/'
|
||||
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}/'
|
||||
# This is needed for the external-sites web extension when embedding sites
|
||||
- 'https://opencloud.dev'
|
||||
img-src:
|
||||
- '''self'''
|
||||
- 'data:'
|
||||
- 'blob:'
|
||||
- 'https://raw.githubusercontent.com/opencloud/awesome-apps/'
|
||||
# In contrary to bash and docker the default is given after the | character
|
||||
- 'https://${ONLYOFFICE_DOMAIN|onlyoffice.opencloud.test}/'
|
||||
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}/'
|
||||
manifest-src:
|
||||
- '''self'''
|
||||
media-src:
|
||||
- '''self'''
|
||||
object-src:
|
||||
- '''self'''
|
||||
- 'blob:'
|
||||
script-src:
|
||||
- '''self'''
|
||||
- '''unsafe-inline'''
|
||||
style-src:
|
||||
- '''self'''
|
||||
- '''unsafe-inline'''
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
services:
|
||||
|
||||
collaboration:
|
||||
command: [ "-c", "dlv --listen=:40000 --headless=true --continue --check-go-version=false --api-version=2 --accept-multiclient exec /usr/bin/opencloud collaboration server" ]
|
||||
environment:
|
||||
COLLABORATION_LOG_LEVEL: debug
|
||||
ports:
|
||||
- 40001:40000
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
services:
|
||||
|
||||
collaboration-oo:
|
||||
command: [ "-c", "dlv --listen=:40002 --headless=true --continue --check-go-version=false --api-version=2 --accept-multiclient exec /usr/bin/opencloud collaboration server" ]
|
||||
environment:
|
||||
COLLABORATION_LOG_LEVEL: debug
|
||||
ports:
|
||||
- 40002:40002
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
services:
|
||||
|
||||
opencloud:
|
||||
command: [ "-c", "opencloud init || true; dlv --listen=:40000 --headless=true --continue --check-go-version=false --api-version=2 --accept-multiclient exec /usr/bin/opencloud server" ]
|
||||
ports:
|
||||
- 40000:40000
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:v3.3.1
|
||||
# release notes: https://github.com/traefik/traefik/releases
|
||||
networks:
|
||||
opencloud-net:
|
||||
command:
|
||||
- "--log.level=${TRAEFIK_LOG_LEVEL:-ERROR}"
|
||||
# letsencrypt configuration
|
||||
- "--certificatesResolvers.http.acme.email=${TRAEFIK_ACME_MAIL:-example@example.org}"
|
||||
- "--certificatesResolvers.http.acme.storage=/certs/acme.json"
|
||||
- "--certificatesResolvers.http.acme.httpChallenge.entryPoint=http"
|
||||
- "--certificatesResolvers.http.acme.caserver=${TRAEFIK_ACME_CASERVER:-https://acme-v02.api.letsencrypt.org/directory}"
|
||||
# enable dashboard
|
||||
- "--api.dashboard=true"
|
||||
# define entrypoints
|
||||
- "--entryPoints.http.address=:80"
|
||||
- "--entryPoints.http.http.redirections.entryPoint.to=https"
|
||||
- "--entryPoints.http.http.redirections.entryPoint.scheme=https"
|
||||
- "--entryPoints.https.address=:443"
|
||||
# change default timeouts for long-running requests
|
||||
# this is needed for webdav clients that do not support the TUS protocol
|
||||
- "--entryPoints.https.transport.respondingTimeouts.readTimeout=12h"
|
||||
- "--entryPoints.https.transport.respondingTimeouts.writeTimeout=12h"
|
||||
- "--entryPoints.https.transport.respondingTimeouts.idleTimeout=3m"
|
||||
# docker provider (get configuration from container labels)
|
||||
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
|
||||
- "--providers.docker.exposedByDefault=false"
|
||||
# access log
|
||||
- "--accessLog=true"
|
||||
- "--accessLog.format=json"
|
||||
- "--accessLog.fields.headers.names.X-Request-Id=keep"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- "${DOCKER_SOCKET_PATH:-/var/run/docker.sock}:/var/run/docker.sock:ro"
|
||||
- "certs:/certs"
|
||||
labels:
|
||||
- "traefik.enable=${TRAEFIK_DASHBOARD:-false}"
|
||||
# defaults to admin:admin
|
||||
- "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_BASIC_AUTH_USERS:-admin:$$apr1$$4vqie50r$$YQAmQdtmz5n9rEALhxJ4l.}"
|
||||
- "traefik.http.routers.traefik.entrypoints=https"
|
||||
- "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DOMAIN:-traefik.opencloud.test}`)"
|
||||
- "traefik.http.routers.traefik.middlewares=traefik-auth"
|
||||
- "traefik.http.routers.traefik.tls.certresolver=http"
|
||||
- "traefik.http.routers.traefik.service=api@internal"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
certs:
|
||||
|
||||
networks:
|
||||
opencloud-net:
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
environment:
|
||||
NOTIFICATIONS_SMTP_HOST: inbucket
|
||||
NOTIFICATIONS_SMTP_PORT: 2500
|
||||
NOTIFICATIONS_SMTP_SENDER: oCIS notifications <notifications@${OC_DOMAIN:-cloud.opencloud.test}>
|
||||
NOTIFICATIONS_SMTP_USERNAME: notifications@${OC_DOMAIN:-cloud.opencloud.test}
|
||||
# the mail catcher uses self signed certificates
|
||||
NOTIFICATIONS_SMTP_INSECURE: "true"
|
||||
|
||||
inbucket:
|
||||
image: inbucket/inbucket
|
||||
# changelog: https://github.com/inbucket/inbucket/blob/main/CHANGELOG.md
|
||||
networks:
|
||||
- opencloud-net
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: [ "-c", "apk add openssl; openssl req -subj '/CN=inbucket.test' -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/server.key -out /tmp/server.crt; /start-inbucket.sh" ]
|
||||
environment:
|
||||
INBUCKET_SMTP_TLSENABLED: "true"
|
||||
INBUCKET_SMTP_TLSPRIVKEY: /tmp/server.key
|
||||
INBUCKET_SMTP_TLSCERT: /tmp/server.crt
|
||||
INBUCKET_STORAGE_MAILBOXMSGCAP: 1000
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.inbucket.entrypoints=https"
|
||||
- "traefik.http.routers.inbucket.rule=Host(`${INBUCKET_DOMAIN:-mail.opencloud.test}`)"
|
||||
- "traefik.http.routers.inbucket.tls.certresolver=http"
|
||||
- "traefik.http.routers.inbucket.service=inbucket"
|
||||
- "traefik.http.services.inbucket.loadbalancer.server.port=9000"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
services:
|
||||
minio:
|
||||
image: minio/minio:latest
|
||||
# release notes: https://github.com/minio/minio/releases
|
||||
networks:
|
||||
opencloud-net:
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command:
|
||||
[
|
||||
"-c",
|
||||
"mkdir -p /data/${S3NG_BUCKET:-opencloud-bucket} && minio server --console-address ':9001' /data",
|
||||
]
|
||||
volumes:
|
||||
- minio-data:/data
|
||||
environment:
|
||||
MINIO_ACCESS_KEY: ${S3NG_ACCESS_KEY:-opencloud}
|
||||
MINIO_SECRET_KEY: ${S3NG_SECRET_KEY:-opencloud-secret-key}
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.minio.entrypoints=https"
|
||||
- "traefik.http.routers.minio.rule=Host(`${MINIO_DOMAIN:-minio.opencloud.test}`)"
|
||||
- "traefik.http.routers.minio.tls.certresolver=http"
|
||||
- "traefik.http.routers.minio.service=minio"
|
||||
- "traefik.http.services.minio.loadbalancer.server.port=9001"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
minio-data:
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
|
||||
services:
|
||||
opencloud:
|
||||
environment:
|
||||
# tracing
|
||||
OC_TRACING_ENABLED: "true"
|
||||
OC_TRACING_TYPE: "jaeger"
|
||||
OC_TRACING_ENDPOINT: jaeger-agent:6831
|
||||
# metrics
|
||||
# if oCIS runs as a single process, all <debug>/metrics endpoints
|
||||
# will expose the same metrics, so it's sufficient to query one endpoint
|
||||
PROXY_DEBUG_ADDR: 0.0.0.0:9205
|
||||
|
||||
collaboration-oo:
|
||||
environment:
|
||||
# tracing
|
||||
OC_TRACING_ENABLED: "true"
|
||||
OC_TRACING_TYPE: "jaeger"
|
||||
OC_TRACING_ENDPOINT: jaeger-agent:6831
|
||||
# metrics
|
||||
COLLABORATION_DEBUG_ADDR: 0.0.0.0:9304
|
||||
|
||||
networks:
|
||||
opencloud-net:
|
||||
external: true
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
|
||||
services:
|
||||
opencloud:
|
||||
environment:
|
||||
# tracing
|
||||
OC_TRACING_ENABLED: "true"
|
||||
OC_TRACING_TYPE: "jaeger"
|
||||
OC_TRACING_ENDPOINT: jaeger-agent:6831
|
||||
# metrics
|
||||
# if oCIS runs as a single process, all <debug>/metrics endpoints
|
||||
# will expose the same metrics, so it's sufficient to query one endpoint
|
||||
PROXY_DEBUG_ADDR: 0.0.0.0:9205
|
||||
|
||||
collaboration:
|
||||
environment:
|
||||
# tracing
|
||||
OC_TRACING_ENABLED: "true"
|
||||
OC_TRACING_TYPE: "jaeger"
|
||||
OC_TRACING_ENDPOINT: jaeger-agent:6831
|
||||
# metrics
|
||||
COLLABORATION_DEBUG_ADDR: 0.0.0.0:9304
|
||||
|
||||
networks:
|
||||
opencloud-net:
|
||||
external: true
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
services:
|
||||
traefik:
|
||||
networks:
|
||||
opencloud-net:
|
||||
aliases:
|
||||
- ${ONLYOFFICE_DOMAIN:-onlyoffice.opencloud.test}
|
||||
- ${WOPISERVER_ONLYOFFICE_DOMAIN:-wopiserver-oo.opencloud.test}
|
||||
|
||||
collaboration-oo:
|
||||
image: ${OC_DOCKER_IMAGE:-opencloud-eu/opencloud}:${OC_DOCKER_TAG:-latest}
|
||||
networks:
|
||||
opencloud-net:
|
||||
depends_on:
|
||||
opencloud:
|
||||
condition: service_started
|
||||
onlyoffice:
|
||||
condition: service_healthy
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: [ "-c", "opencloud collaboration server" ]
|
||||
environment:
|
||||
COLLABORATION_GRPC_ADDR: 0.0.0.0:9301
|
||||
COLLABORATION_HTTP_ADDR: 0.0.0.0:9300
|
||||
MICRO_REGISTRY: "nats-js-kv"
|
||||
MICRO_REGISTRY_ADDRESS: "opencloud:9233"
|
||||
COLLABORATION_WOPI_SRC: https://${WOPISERVER_ONLYOFFICE_DOMAIN:-wopiserver-oo.opencloud.test}
|
||||
COLLABORATION_APP_NAME: "OnlyOffice"
|
||||
COLLABORATION_APP_PRODUCT: "OnlyOffice"
|
||||
COLLABORATION_APP_ADDR: https://${ONLYOFFICE_DOMAIN:-onlyoffice.opencloud.test}
|
||||
COLLABORATION_APP_ICON: https://${ONLYOFFICE_DOMAIN:-onlyoffice.opencloud.test}/web-apps/apps/documenteditor/main/resources/img/favicon.ico
|
||||
COLLABORATION_APP_INSECURE: "${INSECURE:-true}"
|
||||
COLLABORATION_CS3API_DATAGATEWAY_INSECURE: "${INSECURE:-true}"
|
||||
COLLABORATION_LOG_LEVEL: ${LOG_LEVEL:-info}
|
||||
COLLABORATION_APP_PROOF_DISABLE: "true"
|
||||
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}
|
||||
volumes:
|
||||
# configure the .env file to use own paths instead of docker internal volumes
|
||||
- ${OC_CONFIG_DIR:-opencloud-config}:/etc/opencloud
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.collaboration-oo.entrypoints=https"
|
||||
- "traefik.http.routers.collaboration-oo.rule=Host(`${WOPISERVER_ONLYOFFICE_DOMAIN:-wopiserver-oo.opencloud.test}`)"
|
||||
- "traefik.http.routers.collaboration-oo.tls.certresolver=http"
|
||||
- "traefik.http.routers.collaboration-oo.service=collaboration-oo"
|
||||
- "traefik.http.services.collaboration-oo.loadbalancer.server.port=9300"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
onlyoffice:
|
||||
# if you want to use oo enterprise edition, use: onlyoffice/documentserver-ee:<version>
|
||||
# note, you also need to add a volume, see below
|
||||
image: onlyoffice/documentserver:8.2.2
|
||||
# changelog https://github.com/ONLYOFFICE/DocumentServer/releases
|
||||
networks:
|
||||
opencloud-net:
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
- /entrypoint-override.sh
|
||||
environment:
|
||||
WOPI_ENABLED: "true"
|
||||
# self-signed certificates
|
||||
USE_UNAUTHORIZED_STORAGE: "${INSECURE:-false}"
|
||||
volumes:
|
||||
# paths are relative to the main compose file
|
||||
- ./config/onlyoffice/entrypoint-override.sh:/entrypoint-override.sh
|
||||
- ./config/onlyoffice/local.json:/etc/onlyoffice/documentserver/local.dist.json
|
||||
# if you want to use oo enterprise edition, you need to add a volume for the license file
|
||||
# for details see: Registering your Enterprise Edition version -->
|
||||
# https://helpcenter.onlyoffice.com/installation/docs-enterprise-install-docker.aspx
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.onlyoffice.entrypoints=https"
|
||||
- "traefik.http.routers.onlyoffice.rule=Host(`${ONLYOFFICE_DOMAIN:-onlyoffice.opencloud.test}`)"
|
||||
- "traefik.http.routers.onlyoffice.tls.certresolver=http"
|
||||
- "traefik.http.routers.onlyoffice.service=onlyoffice"
|
||||
- "traefik.http.services.onlyoffice.loadbalancer.server.port=80"
|
||||
# websockets can't be opened when this is omitted
|
||||
- "traefik.http.middlewares.onlyoffice.headers.customrequestheaders.X-Forwarded-Proto=https"
|
||||
- "traefik.http.routers.onlyoffice.middlewares=onlyoffice"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost/hosting/discovery"]
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
services:
|
||||
traefik:
|
||||
networks:
|
||||
opencloud-net:
|
||||
aliases:
|
||||
- ${OC_DOMAIN:-cloud.opencloud.test}
|
||||
opencloud:
|
||||
image: ${OC_DOCKER_IMAGE:-opencloud-eu/opencloud}:${OC_DOCKER_TAG:-latest}
|
||||
# changelog: https://github.com/opencloud-eu/opencloud/tree/master/changelog
|
||||
# release notes: https://doc.owncloud.com/opencloud_release_notes.html
|
||||
networks:
|
||||
opencloud-net:
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
# run opencloud init to initialize a configuration file with random secrets
|
||||
# it will fail on subsequent runs, because the config file already exists
|
||||
# therefore we ignore the error and then start the opencloud server
|
||||
command: ["-c", "opencloud init || true; opencloud server"]
|
||||
environment:
|
||||
# enable services that are not started automatically
|
||||
OC_ADD_RUN_SERVICES: ${START_ADDITIONAL_SERVICES}
|
||||
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}
|
||||
OC_LOG_LEVEL: ${LOG_LEVEL:-info}
|
||||
OC_LOG_COLOR: "${LOG_PRETTY:-false}"
|
||||
OC_LOG_PRETTY: "${LOG_PRETTY:-false}"
|
||||
# do not use SSL between Traefik and oCIS
|
||||
PROXY_TLS: "false"
|
||||
# make the REVA gateway accessible to the app drivers
|
||||
GATEWAY_GRPC_ADDR: 0.0.0.0:9142
|
||||
# INSECURE: needed if oCIS / Traefik is using self generated certificates
|
||||
OC_INSECURE: "${INSECURE:-false}"
|
||||
# basic auth (not recommended, but needed for eg. WebDav clients that do not support OpenID Connect)
|
||||
PROXY_ENABLE_BASIC_AUTH: "${PROXY_ENABLE_BASIC_AUTH:-false}"
|
||||
# admin user password
|
||||
IDM_ADMIN_PASSWORD: "${ADMIN_PASSWORD:-admin}" # this overrides the admin password from the configuration file
|
||||
# demo users
|
||||
IDM_CREATE_DEMO_USERS: "${DEMO_USERS:-false}"
|
||||
# email server (if configured)
|
||||
NOTIFICATIONS_SMTP_HOST: "${SMTP_HOST}"
|
||||
NOTIFICATIONS_SMTP_PORT: "${SMTP_PORT}"
|
||||
NOTIFICATIONS_SMTP_SENDER: "${SMTP_SENDER:-oCIS notifications <notifications@${OC_DOMAIN:-cloud.opencloud.test}>}"
|
||||
NOTIFICATIONS_SMTP_USERNAME: "${SMTP_USERNAME}"
|
||||
NOTIFICATIONS_SMTP_INSECURE: "${SMTP_INSECURE}"
|
||||
# make the registry available to the app provider containers
|
||||
MICRO_REGISTRY_ADDRESS: 127.0.0.1:9233
|
||||
NATS_NATS_HOST: 0.0.0.0
|
||||
NATS_NATS_PORT: 9233
|
||||
PROXY_CSP_CONFIG_FILE_LOCATION: /etc/opencloud/csp.yaml
|
||||
# these three vars are needed to the csp config file to include the web office apps and the importer
|
||||
COLLABORA_DOMAIN: ${COLLABORA_DOMAIN:-collabora.opencloud.test}
|
||||
ONLYOFFICE_DOMAIN: ${ONLYOFFICE_DOMAIN:-onlyoffice.opencloud.test}
|
||||
COMPANION_DOMAIN: ${COMPANION_DOMAIN:-companion.opencloud.test}
|
||||
# enable to allow using the banned passwords list
|
||||
OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST: banned-password-list.txt
|
||||
volumes:
|
||||
- ./config/opencloud/app-registry.yaml:/etc/opencloud/app-registry.yaml
|
||||
- ./config/opencloud/csp.yaml:/etc/opencloud/csp.yaml
|
||||
- ./config/opencloud/banned-password-list.txt:/etc/opencloud/banned-password-list.txt
|
||||
# configure the .env file to use own paths instead of docker internal volumes
|
||||
- ${OC_CONFIG_DIR:-opencloud-config}:/etc/opencloud
|
||||
- ${OC_DATA_DIR:-opencloud-data}:/var/lib/opencloud
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.opencloud.entrypoints=https"
|
||||
- "traefik.http.routers.opencloud.rule=Host(`${OC_DOMAIN:-cloud.opencloud.test}`)"
|
||||
- "traefik.http.routers.opencloud.tls.certresolver=http"
|
||||
- "traefik.http.routers.opencloud.service=opencloud"
|
||||
- "traefik.http.services.opencloud.loadbalancer.server.port=9200"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
opencloud-config:
|
||||
opencloud-data:
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
environment:
|
||||
# activate s3ng storage driver
|
||||
STORAGE_USERS_DRIVER: s3ng
|
||||
# keep system data on opencloud storage since this are only small files atm
|
||||
STORAGE_SYSTEM_DRIVER: ocis
|
||||
# s3ng specific settings
|
||||
STORAGE_USERS_S3NG_ENDPOINT: ${S3NG_ENDPOINT:-http://minio:9000}
|
||||
STORAGE_USERS_S3NG_REGION: ${S3NG_REGION:-default}
|
||||
STORAGE_USERS_S3NG_ACCESS_KEY: ${S3NG_ACCESS_KEY:-opencloud}
|
||||
STORAGE_USERS_S3NG_SECRET_KEY: ${S3NG_SECRET_KEY:-opencloud-secret-key}
|
||||
STORAGE_USERS_S3NG_BUCKET: ${S3NG_BUCKET:-opencloud-bucket}
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
services:
|
||||
tika:
|
||||
image: ${TIKA_IMAGE:-apache/tika:latest-full}
|
||||
# release notes: https://tika.apache.org
|
||||
networks:
|
||||
opencloud-net:
|
||||
restart: always
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
|
||||
opencloud:
|
||||
environment:
|
||||
# fulltext search
|
||||
SEARCH_EXTRACTOR_TYPE: tika
|
||||
SEARCH_EXTRACTOR_TIKA_TIKA_URL: http://tika:9998
|
||||
FRONTEND_FULL_TEXT_SEARCH_ENABLED: "true"
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
depends_on:
|
||||
drawio-init:
|
||||
condition: service_completed_successfully
|
||||
|
||||
drawio-init:
|
||||
image: opencloud-eu/web-extensions:draw-io-0.3.0
|
||||
user: root
|
||||
volumes:
|
||||
- opencloud-apps:/apps
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: ["-c", "cp -R /var/lib/nginx/html/draw-io/ /apps"]
|
||||
@@ -0,0 +1,7 @@
|
||||
services:
|
||||
opencloud:
|
||||
volumes:
|
||||
- opencloud-apps:/var/lib/opencloud/web/assets/apps
|
||||
|
||||
volumes:
|
||||
opencloud-apps:
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
depends_on:
|
||||
externalsites-init:
|
||||
condition: service_completed_successfully
|
||||
|
||||
externalsites-init:
|
||||
image: opencloud-eu/web-extensions:external-sites-0.3.0
|
||||
user: root
|
||||
volumes:
|
||||
- opencloud-apps:/apps
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: ["-c", "cp -R /var/lib/nginx/html/external-sites/ /apps"]
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
services:
|
||||
traefik:
|
||||
networks:
|
||||
opencloud-net:
|
||||
aliases:
|
||||
- ${COMPANION_DOMAIN:-companion.opencloud.test}
|
||||
opencloud:
|
||||
volumes:
|
||||
# the cloud importer needs to be enabled in the web.yaml
|
||||
- ./config/opencloud/apps.yaml:/etc/opencloud/apps.yaml
|
||||
depends_on:
|
||||
importer-init:
|
||||
condition: service_completed_successfully
|
||||
|
||||
importer-init:
|
||||
image: opencloud-eu/web-extensions:importer-0.3.0
|
||||
user: root
|
||||
volumes:
|
||||
- opencloud-apps:/apps
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: [ "-c", "cp -R /var/lib/nginx/html/importer/ /apps" ]
|
||||
|
||||
companion:
|
||||
image: ${COMPANION_IMAGE:-transloadit/companion:5.5.0}
|
||||
networks:
|
||||
- opencloud-net
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
NODE_TLS_REJECT_UNAUTHORIZED: 0
|
||||
COMPANION_DATADIR: /tmp/companion/
|
||||
COMPANION_DOMAIN: ${COMPANION_DOMAIN:-companion.opencloud.test}
|
||||
COMPANION_PROTOCOL: https
|
||||
COMPANION_UPLOAD_URLS: "^https://${OC_DOMAIN:-cloud.opencloud.test}/"
|
||||
COMPANION_ONEDRIVE_KEY: "${COMPANION_ONEDRIVE_KEY}"
|
||||
COMPANION_ONEDRIVE_SECRET: "${COMPANION_ONEDRIVE_SECRET}"
|
||||
volumes:
|
||||
- companion-data:/tmp/companion/
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.companion.entrypoints=https"
|
||||
- "traefik.http.routers.companion.rule=Host(`${COMPANION_DOMAIN:-companion.opencloud.test}`)"
|
||||
- "traefik.http.routers.companion.tls.certresolver=http"
|
||||
- "traefik.http.routers.companion.service=companion"
|
||||
- "traefik.http.services.companion.loadbalancer.server.port=3020"
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
companion-data:
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
depends_on:
|
||||
jsonviewer-init:
|
||||
condition: service_completed_successfully
|
||||
|
||||
jsonviewer-init:
|
||||
image: opencloud-eu/web-extensions:json-viewer-0.3.0
|
||||
user: root
|
||||
volumes:
|
||||
- opencloud-apps:/apps
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: ["-c", "cp -R /var/lib/nginx/html/json-viewer/ /apps"]
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
depends_on:
|
||||
progressbars-init:
|
||||
condition: service_completed_successfully
|
||||
|
||||
progressbars-init:
|
||||
image: opencloud-eu/web-extensions:progress-bars-0.3.0
|
||||
user: root
|
||||
volumes:
|
||||
- ocis-apps:/apps
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: ["-c", "cp -R /var/lib/nginx/html/progress-bars/ /apps"]
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
services:
|
||||
opencloud:
|
||||
depends_on:
|
||||
unzip-init:
|
||||
condition: service_completed_successfully
|
||||
|
||||
unzip-init:
|
||||
image: opencloud-eu/web-extensions:unzip-0.4.0
|
||||
user: root
|
||||
volumes:
|
||||
- opencloud-apps:/apps
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
command: ["-c", "cp -R /var/lib/nginx/html/unzip/ /apps"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user