mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-27 07:23:10 -05:00
213 lines
7.7 KiB
YAML
213 lines
7.7 KiB
YAML
---
|
|
version: "3.7"
|
|
|
|
services:
|
|
traefik:
|
|
image: traefik:v2.4
|
|
networks:
|
|
default:
|
|
aliases:
|
|
- ${OCIS_DOMAIN:-ocis.owncloud.test}
|
|
- ${OC10_DOMAIN:-oc10.owncloud.test}
|
|
command:
|
|
#- "--log.level=DEBUG"
|
|
- "--certificatesResolvers.http.acme.email=${TRAEFIK_ACME_MAIL:-example@example.org}"
|
|
- "--certificatesResolvers.http.acme.storage=/certs/acme.json"
|
|
- "--certificatesResolvers.http.acme.httpChallenge.entryPoint=http"
|
|
- "--api.dashboard=true"
|
|
- "--entryPoints.http.address=:80"
|
|
- "--entryPoints.https.address=:443"
|
|
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
|
|
- "--providers.docker.exposedByDefault=false"
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
- "certs:/certs"
|
|
labels:
|
|
- "traefik.enable=${TRAEFIK_DASHBOARD:-false}"
|
|
- "traefik.http.routers.traefik.entrypoints=http"
|
|
- "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DOMAIN:-traefik.owncloud.test}`)"
|
|
- "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_BASIC_AUTH_USERS:-admin:$apr1$4vqie50r$YQAmQdtmz5n9rEALhxJ4l.}" # defaults to admin:admin
|
|
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
|
|
- "traefik.http.routers.traefik-secure.entrypoints=https"
|
|
- "traefik.http.routers.traefik-secure.rule=Host(`${TRAEFIK_DOMAIN:-traefik.owncloud.test}`)"
|
|
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
|
|
- "traefik.http.routers.traefik-secure.tls=true"
|
|
- "traefik.http.routers.traefik-secure.tls.certresolver=http"
|
|
- "traefik.http.routers.traefik-secure.service=api@internal"
|
|
logging:
|
|
driver: "local"
|
|
restart: always
|
|
|
|
ocis:
|
|
image: owncloud/ocis:${OCIS_DOCKER_TAG:-latest}
|
|
entrypoint:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
cp /config/identifier-registration.dist.yaml /config/identifier-registration.yaml
|
|
sed -i 's/ocis.owncloud.test/${OCIS_DOMAIN:-ocis.owncloud.test}/g' /config/identifier-registration.yaml
|
|
sed -i 's/oc10.owncloud.test/${OC10_DOMAIN:-oc10.owncloud.test}/g' /config/identifier-registration.yaml
|
|
|
|
cp /config/config.dist.json /config/config.json
|
|
sed -i 's/ocis.owncloud.test/${OCIS_DOMAIN:-ocis.owncloud.test}/g' /config/config.json
|
|
sed -i 's/oc10.owncloud.test/${OC10_DOMAIN:-oc10.owncloud.test}/g' /config/config.json
|
|
|
|
cp /config/proxy-config.dist.json /config/proxy-config.json
|
|
sed -i 's/ocis.owncloud.test/${OCIS_DOMAIN:-ocis.owncloud.test}/g' /config/proxy-config.json
|
|
sed -i 's/oc10.owncloud.test/${OC10_DOMAIN:-oc10.owncloud.test}/g' /config/proxy-config.json
|
|
|
|
ocis server
|
|
networks:
|
|
default:
|
|
environment:
|
|
# general config
|
|
OCIS_URL: https://${OCIS_DOMAIN:-ocis.owncloud.test}
|
|
OCIS_LOG_LEVEL: ${OCIS_LOG_LEVEL:-error}
|
|
# proxy
|
|
PROXY_AUTOPROVISION_ACCOUNTS: "true"
|
|
PROXY_INSECURE_BACKENDS: "${INSECURE:-false}"
|
|
PROXY_OIDC_INSECURE: "${INSECURE:-false}"
|
|
PROXY_CONFIG_FILE: "/config/proxy-config.json"
|
|
PROXY_ENABLE_PRESIGNEDURLS: "false"
|
|
PROXY_TLS: "false"
|
|
# idp - binddn must exist as oc10 admin user
|
|
IDP_IDENTIFIER_REGISTRATION_CONF: "/config/identifier-registration.yaml"
|
|
IDP_INSECURE: "${INSECURE:-false}"
|
|
IDP_SIGNING_KID: super
|
|
IDP_TLS: 0
|
|
LDAP_BASEDN: "dc=example,dc=org"
|
|
LDAP_BINDDN: "cn=admin,dc=example,dc=org"
|
|
LDAP_BINDPW: "admin"
|
|
LDAP_EMAIL_ATTRIBUTE: mail
|
|
LDAP_FILTER: "(objectClass=posixaccount)"
|
|
LDAP_LOGIN_ATTRIBUTE: uid
|
|
LDAP_NAME_ATTRIBUTE: givenName
|
|
LDAP_SCOPE: sub
|
|
LDAP_URI: ldap://localhost:9125
|
|
LDAP_UUID_ATTRIBUTE_TYPE: text
|
|
LDAP_UUID_ATTRIBUTE: uid
|
|
# glauth
|
|
GLAUTH_BACKEND_DATASTORE: owncloud
|
|
GLAUTH_BACKEND_SERVERS: https://${OC10_DOMAIN:-oc10.owncloud.test}/apps/graphapi/v1.0
|
|
GLAUTH_BACKEND_INSECURE: "${INSECURE:-false}"
|
|
# graph
|
|
GRAPH_OIDC_ENDPOINT: https://${OC10_DOMAIN:-oc10.owncloud.test}/apps/graphapi/v1.0
|
|
# web ui
|
|
WEB_UI_CONFIG: "/config/config.json"
|
|
# storage - although not used, yet
|
|
STORAGE_OIDC_INSECURE: "${INSECURE:-false}"
|
|
STORAGE_TRANSFER_EXPIRES: 86400
|
|
volumes:
|
|
- ./config/ocis:/config
|
|
- ocis-data:/var/tmp/ocis
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.ocis.entrypoints=http"
|
|
- "traefik.http.routers.ocis.rule=Host(`${OCIS_DOMAIN:-ocis.owncloud.test}`)"
|
|
- "traefik.http.middlewares.ocis-https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.routers.ocis.middlewares=ocis-https-redirect"
|
|
- "traefik.http.routers.ocis-secure.entrypoints=https"
|
|
- "traefik.http.routers.ocis-secure.rule=Host(`${OCIS_DOMAIN:-ocis.owncloud.test}`)"
|
|
- "traefik.http.routers.ocis-secure.tls=true"
|
|
- "traefik.http.routers.ocis-secure.tls.certresolver=http"
|
|
- "traefik.http.routers.ocis-secure.service=ocis"
|
|
- "traefik.http.services.ocis.loadbalancer.server.port=9200"
|
|
logging:
|
|
driver: "local"
|
|
restart: always
|
|
|
|
oc10:
|
|
image: owncloud/server:10.6.0-rc1
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
environment:
|
|
PROXY_LOG_LEVEL: debug
|
|
OCIS_URL: https://${OCIS_DOMAIN:-ocis.owncloud.test}
|
|
OWNCLOUD_DOMAIN: ${OC10_DOMAIN:-oc10.owncloud.test}
|
|
OWNCLOUD_DB_TYPE: mysql
|
|
OWNCLOUD_DB_NAME: owncloud
|
|
OWNCLOUD_DB_USERNAME: owncloud
|
|
OWNCLOUD_DB_PASSWORD: owncloud
|
|
OWNCLOUD_DB_HOST: db
|
|
OWNCLOUD_ADMIN_USERNAME: admin
|
|
OWNCLOUD_ADMIN_PASSWORD: admin
|
|
OWNCLOUD_MYSQL_UTF8MB4: "true"
|
|
OWNCLOUD_REDIS_ENABLED: "true"
|
|
OWNCLOUD_REDIS_HOST: redis
|
|
OWNCLOUD_TRUSTED_PROXIES: ${OC10_DOMAIN:-oc10.owncloud.test}
|
|
OWNCLOUD_OVERWRITE_PROTOCOL: https
|
|
OWNCLOUD_OVERWRITE_HOST: ${OC10_DOMAIN:-oc10.owncloud.test}
|
|
OWNCLOUD_APPS_ENABLE: "openidconnect,oauth2,user_ldap,graphapi"
|
|
OWNCLOUD_LOG_LEVEL: 0
|
|
volumes:
|
|
- ./config/oc10/config.php:/etc/templates/config.php
|
|
- files:/mnt/data
|
|
- tmp:/tmp/shared
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.oc10.entrypoints=http"
|
|
- "traefik.http.routers.oc10.rule=Host(`${OC10_DOMAIN:-oc10.owncloud.test}`)"
|
|
- "traefik.http.middlewares.oc10-https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.routers.oc10.middlewares=oc10-https-redirect"
|
|
- "traefik.http.routers.oc10-secure.entrypoints=https"
|
|
- "traefik.http.routers.oc10-secure.rule=Host(`${OC10_DOMAIN:-oc10.owncloud.test}`)"
|
|
- "traefik.http.routers.oc10-secure.tls=true"
|
|
- "traefik.http.routers.oc10-secure.tls.certresolver=http"
|
|
- "traefik.http.routers.oc10-secure.service=oc10"
|
|
- "traefik.http.services.oc10.loadbalancer.server.port=8080"
|
|
logging:
|
|
driver: "local"
|
|
restart: always
|
|
|
|
db:
|
|
image: mariadb:10.5
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=owncloud
|
|
- MYSQL_USER=owncloud
|
|
- MYSQL_PASSWORD=owncloud
|
|
- MYSQL_DATABASE=owncloud
|
|
command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
volumes:
|
|
- mysql:/var/lib/mysql
|
|
logging:
|
|
driver: "local"
|
|
restart: always
|
|
|
|
redis:
|
|
image: redis:6
|
|
command: ["--databases", "1"]
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
volumes:
|
|
- redis:/data
|
|
logging:
|
|
driver: "local"
|
|
restart: always
|
|
|
|
volumes:
|
|
certs:
|
|
ocis-data:
|
|
files:
|
|
driver: local
|
|
mysql:
|
|
driver: local
|
|
backup:
|
|
driver: local
|
|
redis:
|
|
driver: local
|
|
tmp:
|
|
driver: local
|