diff --git a/apps/owncloud/docker-compose.yml b/apps/owncloud/docker-compose.yml new file mode 100644 index 0000000..9f8ac16 --- /dev/null +++ b/apps/owncloud/docker-compose.yml @@ -0,0 +1,92 @@ +version: "3" + +services: + owncloud: + image: owncloud/server:latest + container_name: owncloud + restart: unless-stopped + security_opt: + - no-new-privileges:true + environment: + - OWNCLOUD_DOMAIN=owncloud.euredomain.de + - OWNCLOUD_DB_TYPE=mysql + - OWNCLOUD_DB_NAME=owncloud + - OWNCLOUD_DB_USERNAME=${OWNCLOUD_DBUSER} + - OWNCLOUD_DB_PASSWORD=${OWNCLOUD_DBPW} + - OWNCLOUD_DB_HOST=mariadb + - OWNCLOUD_ADMIN_USERNAME=${OWNCLOUD_ADMINUSER} + - OWNCLOUD_ADMIN_PASSWORD=${OWNCLOUD_ADMINPW} + - OWNCLOUD_MYSQL_UTF8MB4=true + - OWNCLOUD_REDIS_ENABLED=true + - OWNCLOUD_REDIS_HOST=redis + healthcheck: + test: ["CMD", "/usr/bin/healthcheck"] + interval: 30s + timeout: 10s + retries: 5 + volumes: + - ./files:/mnt/data + labels: + - "traefik.enable=true" + - "traefik.http.routers.owncloud.entrypoints=http" + - "traefik.http.routers.owncloud.rule=Host(`${OWNCLOUD_HOST}`)" + - "traefik.http.middlewares.owncloud-https-redirect.redirectscheme.scheme=https" + - "traefik.http.routers.owncloud.middlewares=owncloud-https-redirect" + - "traefik.http.routers.owncloud-secure.entrypoints=https" + - "traefik.http.routers.owncloud-secure.rule=Host(`${OWNCLOUD_HOST}`)" + - "traefik.http.routers.owncloud-secure.tls=true" + - "traefik.http.routers.owncloud-secure.tls.certresolver=http" + - "traefik.http.routers.owncloud-secure.service=owncloud" + - "traefik.http.services.owncloud.loadbalancer.server.port=${OWNCLOUD_LBPORT}" + - "traefik.docker.network=traefik-proxy" + - "traefik.http.routers.owncloud-secure.middlewares=secHeaders@file" + networks: + - owncloud + - traefik-proxy + depends_on: + - mariadb + - redis + + mariadb: + image: mariadb:10.5 + container_name: owncloud_mariadb + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${MARIADB_SQLROOTPW} + - MYSQL_USER=${MARIADB_SQLUSER} + - MYSQL_PASSWORD=${MARIADB_SQLPW} + - MYSQL_DATABASE=owncloud + command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"] + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=${MARIADB_SQLROOTPW} "] + interval: 10s + timeout: 5s + retries: 5 + volumes: + - ./database:/var/lib/mysql + networks: + - owncloud + + redis: + image: redis:6 + container_name: owncloud_redis + restart: unless-stopped + command: ["--databases", "1"] + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + volumes: + - ./redis:/data + networks: + - owncloud + +networks: + owncloud: + driver: bridge + external: false + name: int_owncloud + traefik-proxy: + external: true + name: traefik-proxy \ No newline at end of file diff --git a/apps/owncloud/env-template b/apps/owncloud/env-template new file mode 100644 index 0000000..1926b77 --- /dev/null +++ b/apps/owncloud/env-template @@ -0,0 +1,10 @@ +OWNCLOUD_DBUSER=owncloud +OWNCLOUD_DBPW=supersecretpassword +OWNCLOUD_ADMINUSER=owncloud-admin +OWNCLOUD_ADMINPW=supersecretadminpassword +OWNCLOUD_HOST=subdomain.domain.com +OWNCLOUD_LBPORT=8080 + +MARIADB_SQLROOTPW=supersecretrootpassword +MARIADB_SQLUSER=owncloud +MARIADB_SQLPW=supersecretpassword \ No newline at end of file