mirror of
https://github.com/opencloud-eu/opencloud-compose.git
synced 2026-06-08 20:20:04 +08:00
Compare commits
40 Commits
refactor-c
...
mount-loca
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b501311d0f | ||
|
|
85deada0d2 | ||
|
|
0622cf6e60 | ||
|
|
69b40132c0 | ||
|
|
f466650a97 | ||
|
|
a27c40c4dc | ||
|
|
94c8075b36 | ||
|
|
7543aa2eec | ||
|
|
d51d43825a | ||
|
|
723fb73fb4 | ||
|
|
16dd321bf2 | ||
|
|
df98c14b80 | ||
|
|
53ec7140da | ||
|
|
d3f0044fe3 | ||
|
|
9cb8196122 | ||
|
|
bdd2638f3f | ||
|
|
3558f9c2e1 | ||
|
|
bc338d7ff4 | ||
|
|
4fc30f0330 | ||
|
|
93b8186eb6 | ||
|
|
85e3098e1c | ||
|
|
fed9c09ae5 | ||
|
|
c689b26275 | ||
|
|
c1dcf1d1d9 | ||
|
|
25b0de4525 | ||
|
|
67743a8e19 | ||
|
|
f253158ae7 | ||
|
|
219899adfc | ||
|
|
6be2c824ea | ||
|
|
3d82f1b60b | ||
|
|
c55b36b559 | ||
|
|
ce65001eba | ||
|
|
b88b80539b | ||
|
|
6502f1fee7 | ||
|
|
ef64eb6b92 | ||
|
|
07183c14fc | ||
|
|
409d775471 | ||
|
|
ad89914a81 | ||
|
|
5c26c75080 | ||
|
|
27aa8f40f1 |
22
.env.example
22
.env.example
@@ -56,10 +56,10 @@ TRAEFIK_SERVICES_TLS_CONFIG="tls.certresolver=letsencrypt"
|
||||
# certificates:
|
||||
# - certFile: /certs/opencloud.test.crt
|
||||
# keyFile: /certs/opencloud.test.key
|
||||
# stores:
|
||||
# - default
|
||||
# stores:
|
||||
# - default
|
||||
#
|
||||
# The certificates need to copied into ./certs/, the absolute path inside the container is /certs/.
|
||||
# The certificates need to be copied into ./certs/, the absolute path inside the container is /certs/.
|
||||
# You can also use TRAEFIK_CERTS_DIR=/path/on/host to set the path to the certificates directory.
|
||||
# Enable the access log for Traefik by setting the following variable to true.
|
||||
TRAEFIK_ACCESS_LOG=
|
||||
@@ -137,6 +137,8 @@ DECOMPOSEDS3_BUCKET=
|
||||
|
||||
|
||||
# Define SMTP settings if you would like to send OpenCloud email notifications.
|
||||
# To actually send notifications, you also need to enable the 'notifications' service
|
||||
# by adding it to the START_ADDITIONAL_SERVICES variable below.
|
||||
#
|
||||
# NOTE: when configuring Inbucket, these settings have no effect, see inbucket.yml for details.
|
||||
# SMTP host to connect to.
|
||||
@@ -157,12 +159,11 @@ SMTP_TRANSPORT_ENCRYPTION=
|
||||
# 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
|
||||
# Additional services to be started on opencloud startup
|
||||
# The following list of services is not started 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"
|
||||
START_ADDITIONAL_SERVICES=""
|
||||
|
||||
|
||||
## Default Enabled Services ##
|
||||
@@ -203,6 +204,11 @@ 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
|
||||
# Enable home mode in Collabore Online.
|
||||
# Home users can enable this setting, which in turn disables welcome screen and user feedback popups,
|
||||
# but also limits concurrent open connections to 20 and concurrent open documents to 10.
|
||||
# Default is false if not specified.
|
||||
COLLABORA_HOME_MODE=
|
||||
|
||||
|
||||
### Virusscanner Settings ###
|
||||
@@ -216,7 +222,7 @@ COLLABORA_SSL_VERIFICATION=false
|
||||
# Defaults to "partial"
|
||||
#ANTIVIRUS_MAX_SCAN_SIZE_MODE=
|
||||
# Image version of the ClamAV container.
|
||||
# Defaults to "latest"y
|
||||
# Defaults to "latest"
|
||||
CLAMAV_DOCKER_TAG=
|
||||
|
||||
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,6 +5,7 @@
|
||||
# exclude the apps folder
|
||||
/config/opencloud/apps/*
|
||||
!/config/opencloud/apps/.gitkeep
|
||||
!/config/opencloud/apps/maps
|
||||
|
||||
# exclude custom compose files
|
||||
/custom
|
||||
|
||||
@@ -42,8 +42,9 @@ OpenCloud Compose offers a modular approach to deploying OpenCloud with several
|
||||
|
||||
3. **Set admin password**:
|
||||
set `INITIAL_ADMIN_PASSWORD=your_secure_password` environment variable in your `.env` file
|
||||
|
||||
4. **Configure deployment options**:
|
||||
4. **Domain**:
|
||||
optionally, set `OC_DOMAIN=your-domain.com` to overwrite the default `cloud.opencloud.test`
|
||||
5. **Configure deployment options**:
|
||||
|
||||
You can deploy using explicit `-f` flags:
|
||||
```bash
|
||||
@@ -60,14 +61,14 @@ OpenCloud Compose offers a modular approach to deploying OpenCloud with several
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
5. **Add local domains to `/etc/hosts`** (for local development only):
|
||||
6. **Add local domains to `/etc/hosts`** (for local development only):
|
||||
```
|
||||
127.0.0.1 cloud.opencloud.test
|
||||
127.0.0.1 traefik.opencloud.test
|
||||
127.0.0.1 keycloak.opencloud.test
|
||||
```
|
||||
|
||||
6. **Access OpenCloud**:
|
||||
7. **Access OpenCloud**:
|
||||
- URL: https://cloud.opencloud.test
|
||||
- Username: `admin`
|
||||
- Password: value of your `INITIAL_ADMIN_PASSWORD`
|
||||
|
||||
@@ -676,6 +676,7 @@
|
||||
"profile",
|
||||
"roles",
|
||||
"groups",
|
||||
"OpenCloudUnique_ID",
|
||||
"basic",
|
||||
"email"
|
||||
],
|
||||
@@ -2336,7 +2337,7 @@
|
||||
"always"
|
||||
],
|
||||
"usePasswordModifyExtendedOp": [
|
||||
"false"
|
||||
"true"
|
||||
],
|
||||
"trustEmail": [
|
||||
"false"
|
||||
|
||||
11
config/ldap/init-ldap-acls.sh
Executable file
11
config/ldap/init-ldap-acls.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eu
|
||||
|
||||
# apply acls
|
||||
echo -n "Applying acls... "
|
||||
slapmodify -F /opt/bitnami/openldap/etc/slapd.d -b cn=config -l /opt/bitnami/openldap/etc/schema/50_acls.ldif
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "done."
|
||||
else
|
||||
echo "failed."
|
||||
fi
|
||||
9
config/ldap/ldif/50_acls.ldif
Normal file
9
config/ldap/ldif/50_acls.ldif
Normal file
@@ -0,0 +1,9 @@
|
||||
# OpenCloud ldap acl file which gets applied during the first db initialisation
|
||||
dn: olcDatabase={2}mdb,cn=config
|
||||
changetype: modify
|
||||
replace: olcAccess
|
||||
olcAccess: {0}to dn.subtree="dc=opencloud,dc=eu" attrs=entry,uid,objectClass,entryUUID
|
||||
by * read
|
||||
olcAccess: {1}to attrs=userPassword
|
||||
by self write
|
||||
by * auth
|
||||
24
config/opencloud/apps/maps/js/maps-DKGjis05.js
Normal file
24
config/opencloud/apps/maps/js/maps-DKGjis05.js
Normal file
File diff suppressed because one or more lines are too long
3
config/opencloud/apps/maps/manifest.json
Normal file
3
config/opencloud/apps/maps/manifest.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"entrypoint": "js/maps-DKGjis05.js"
|
||||
}
|
||||
@@ -8,6 +8,7 @@ directives:
|
||||
- 'wss://${COMPANION_DOMAIN|companion.opencloud.test}/'
|
||||
- 'https://raw.githubusercontent.com/opencloud-eu/awesome-apps/'
|
||||
- 'https://${IDP_DOMAIN|keycloak.opencloud.test}/'
|
||||
- 'https://update.opencloud.eu/'
|
||||
default-src:
|
||||
- '''none'''
|
||||
font-src:
|
||||
@@ -27,6 +28,7 @@ directives:
|
||||
- 'data:'
|
||||
- 'blob:'
|
||||
- 'https://raw.githubusercontent.com/opencloud-eu/awesome-apps/'
|
||||
- 'https://tile.openstreetmap.org/'
|
||||
# In contrary to bash and docker the default is given after the | character
|
||||
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}/'
|
||||
manifest-src:
|
||||
|
||||
@@ -44,7 +44,7 @@ services:
|
||||
# The openCloud users need to be able to edit their account in the externa IdP
|
||||
WEB_OPTION_ACCOUNT_EDIT_LINK_HREF: ${IDP_ACCOUNT_URL}
|
||||
ldap-server:
|
||||
image: bitnami/openldap:2.6
|
||||
image: bitnamilegacy/openldap:2.6
|
||||
networks:
|
||||
opencloud-net:
|
||||
entrypoint: [ "/bin/sh", "/opt/bitnami/scripts/openldap/docker-entrypoint-override.sh", "/opt/bitnami/scripts/openldap/run.sh" ]
|
||||
@@ -57,9 +57,6 @@ services:
|
||||
LDAP_TLS_KEY_FILE: /opt/bitnami/openldap/share/openldap.key
|
||||
LDAP_ROOT: "dc=opencloud,dc=eu"
|
||||
LDAP_ADMIN_PASSWORD: ${LDAP_BIND_PASSWORD:-admin}
|
||||
ports:
|
||||
- "127.0.0.1:389:1389"
|
||||
- "127.0.0.1:636:1636"
|
||||
volumes:
|
||||
# Only use the base ldif file to create the base structure
|
||||
- ./config/ldap/ldif/10_base.ldif:/ldifs/10_base.ldif
|
||||
@@ -68,6 +65,7 @@ services:
|
||||
- ./config/ldap/docker-entrypoint-override.sh:/opt/bitnami/scripts/openldap/docker-entrypoint-override.sh
|
||||
- ${LDAP_CERTS_DIR:-ldap-certs}:/opt/bitnami/openldap/share
|
||||
- ${LDAP_DATA_DIR:-ldap-data}:/bitnami/openldap
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
ldap-certs:
|
||||
|
||||
@@ -51,12 +51,11 @@ services:
|
||||
LDAP_TLS_KEY_FILE: /opt/bitnami/openldap/share/openldap.key
|
||||
LDAP_ROOT: "dc=opencloud,dc=eu"
|
||||
LDAP_ADMIN_PASSWORD: ${LDAP_BIND_PASSWORD:-admin}
|
||||
ports:
|
||||
- "127.0.0.1:389:1389"
|
||||
- "127.0.0.1:636:1636"
|
||||
volumes:
|
||||
- ./config/ldap/ldif/10_base.ldif:/ldifs/10_base.ldif
|
||||
- ./config/ldap/ldif/20_admin.ldif:/ldifs/20_admin.ldif
|
||||
- ./config/ldap/ldif/50_acls.ldif:/opt/bitnami/openldap/etc/schema/50_acls.ldif
|
||||
- ./config/ldap/init-ldap-acls.sh:/docker-entrypoint-initdb.d/init-ldap-acls.sh
|
||||
- ./config/ldap/docker-entrypoint-override.sh:/opt/bitnami/scripts/openldap/docker-entrypoint-override.sh
|
||||
- ldap-certs:/opt/bitnami/openldap/share
|
||||
- ldap-data:/bitnami/openldap
|
||||
@@ -65,7 +64,7 @@ services:
|
||||
restart: always
|
||||
|
||||
postgres:
|
||||
image: postgres:alpine
|
||||
image: postgres:17-alpine
|
||||
networks:
|
||||
opencloud-net:
|
||||
volumes:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:alpine
|
||||
image: postgres:17-alpine
|
||||
networks:
|
||||
opencloud-net:
|
||||
volumes:
|
||||
|
||||
@@ -6,14 +6,14 @@ services:
|
||||
aliases:
|
||||
- ${COLLABORA_DOMAIN:-collabora.opencloud.test}
|
||||
- ${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}
|
||||
# collaboration:
|
||||
# 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.${TRAEFIK_SERVICES_TLS_CONFIG}"
|
||||
# - "traefik.http.routers.collaboration.service=collaboration"
|
||||
# - "traefik.http.services.collaboration.loadbalancer.server.port=9300"
|
||||
collaboration:
|
||||
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.${TRAEFIK_SERVICES_TLS_CONFIG}"
|
||||
- "traefik.http.routers.collaboration.service=collaboration"
|
||||
- "traefik.http.services.collaboration.loadbalancer.server.port=9300"
|
||||
collabora:
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
|
||||
@@ -6,14 +6,30 @@ services:
|
||||
# this is needed for setting the correct CSP header
|
||||
COLLABORA_DOMAIN: ${COLLABORA_DOMAIN:-collabora.opencloud.test}
|
||||
# expose nats and the reva gateway for the collaboration service
|
||||
# NATS_NATS_HOST: 0.0.0.0
|
||||
# GATEWAY_GRPC_ADDR: 0.0.0.0:9142
|
||||
NATS_NATS_HOST: 0.0.0.0
|
||||
GATEWAY_GRPC_ADDR: 0.0.0.0:9142
|
||||
# make collabora the secure view app
|
||||
FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR: eu.opencloud.api.collaboration
|
||||
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_GRPC_ADDR: 0.0.0.0:9301
|
||||
# COLLABORATION_HTTP_ADDR: 0.0.0.0:9300
|
||||
COLLABORATION_WOPI_SRC: https://${OC_DOMAIN:-cloud.opencloud.test}
|
||||
|
||||
collaboration:
|
||||
image: ${OC_DOCKER_IMAGE:-opencloudeu/opencloud-rolling}:${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}
|
||||
@@ -21,39 +37,17 @@ services:
|
||||
COLLABORATION_APP_INSECURE: "${INSECURE:-true}"
|
||||
COLLABORATION_CS3API_DATAGATEWAY_INSECURE: "${INSECURE:-true}"
|
||||
COLLABORATION_LOG_LEVEL: ${LOG_LEVEL:-info}
|
||||
|
||||
# collaboration:
|
||||
# image: ${OC_DOCKER_IMAGE:-opencloudeu/opencloud-rolling}:${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
|
||||
# logging:
|
||||
# driver: ${LOG_DRIVER:-local}
|
||||
# restart: always
|
||||
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
|
||||
# Mount local TrueType fonts so the container can use system fonts
|
||||
# (e.g. Microsoft fonts like Arial, Calibri, Cambria by installing the `ttf-mscorefonts-installer` package).
|
||||
- /usr/share/fonts/truetype:/usr/share/fonts/truetype/more:ro
|
||||
- /usr/share/fonts/truetype:/opt/cool/systemplate/usr/share/fonts/truetype/more:ro
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
|
||||
collabora:
|
||||
image: collabora/code:25.04.4.2.1
|
||||
@@ -61,14 +55,16 @@ services:
|
||||
networks:
|
||||
opencloud-net:
|
||||
environment:
|
||||
aliasgroup1: https://${OC_DOMAIN:-cloud.opencloud.test}:443
|
||||
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}
|
||||
--o:net.frame_ancestors=${OC_DOMAIN:-cloud.opencloud.test} \
|
||||
--o:net.lok_allow.host[14]=${OC_DOMAIN-cloud.opencloud.test} \
|
||||
--o:home_mode.enable=${COLLABORA_HOME_MODE:-false}
|
||||
username: ${COLLABORA_ADMIN_USER:-admin}
|
||||
password: ${COLLABORA_ADMIN_PASSWORD:-admin}
|
||||
cap_add:
|
||||
@@ -76,8 +72,8 @@ services:
|
||||
logging:
|
||||
driver: ${LOG_DRIVER:-local}
|
||||
restart: always
|
||||
entrypoint: ['/bin/bash', '-c']
|
||||
command: ['coolconfig generate-proof-key && /start-collabora-online.sh']
|
||||
entrypoint: [ '/bin/bash', '-c' ]
|
||||
command: [ 'coolconfig generate-proof-key && /start-collabora-online.sh' ]
|
||||
healthcheck:
|
||||
test: [ "CMD", "curl", "-f", "http://localhost:9980/hosting/discovery" ]
|
||||
interval: 15s
|
||||
|
||||
Reference in New Issue
Block a user