--- version: "3.7" services: traefik: image: "traefik:v2.3" 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=true" - "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" 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_DOMAIN: ${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_OIDC_ISSUER: https://${OCIS_DOMAIN:-ocis.owncloud.test} PROXY_TLS: "false" # konnectd - binddn must exist as oc10 admin user KONNECTD_IDENTIFIER_REGISTRATION_CONF: "/config/identifier-registration.yaml" KONNECTD_INSECURE: "${INSECURE:-false}" KONNECTD_ISS: https://${OCIS_DOMAIN:-ocis.owncloud.test} KONNECTD_SIGNING_KID: super KONNECTD_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 PHOENIX_WEB_CONFIG: "/config/config.json" # storage - although not used, yet STORAGE_OIDC_ISSUER: https://${OCIS_DOMAIN:-ocis.owncloud.test} STORAGE_OIDC_INSECURE: "${INSECURE:-false}" STORAGE_TRANSFER_EXPIRES: 86400 STORAGE_FRONTEND_PUBLIC_URL: https://${OCIS_DOMAIN:-ocis.owncloud.test} STORAGE_DATAGATEWAY_PUBLIC_URL: https://${OCIS_DOMAIN:-ocis.owncloud.test}/data STORAGE_LDAP_IDP: https://${OCIS_DOMAIN:-ocis.owncloud.test} 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" restart: always oc10: image: owncloud/server:10.6.0-rc1 depends_on: - db - redis environment: PROXY_LOG_LEVEL: debug OCIS_DOMAIN: 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" restart: always db: image: webhippie/mariadb:latest environment: MARIADB_ROOT_PASSWORD: owncloud MARIADB_USERNAME: owncloud MARIADB_PASSWORD: owncloud MARIADB_DATABASE: owncloud MARIADB_MAX_ALLOWED_PACKET: 128M MARIADB_INNODB_LOG_FILE_SIZE: 256M healthcheck: test: ["CMD", "/usr/bin/healthcheck"] interval: 30s timeout: 10s retries: 5 volumes: - mysql:/var/lib/mysql - backup:/var/lib/backup restart: always redis: image: webhippie/redis:latest environment: - REDIS_DATABASES=1 volumes: - redis:/var/lib/redis restart: always volumes: certs: ocis-data: files: driver: local mysql: driver: local backup: driver: local redis: driver: local tmp: driver: local