From 1554e4a9ba3e1532c0b06dd1e51d3fbd6a6eaecc Mon Sep 17 00:00:00 2001 From: PorridgePi Date: Sat, 24 Sep 2022 11:59:11 +0100 Subject: [PATCH] nextcloud: Initial commit --- nextcloud/.env.example | 3 ++ nextcloud/docker-compose.yml | 57 ++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 nextcloud/.env.example create mode 100644 nextcloud/docker-compose.yml diff --git a/nextcloud/.env.example b/nextcloud/.env.example new file mode 100644 index 0000000..fbdb413 --- /dev/null +++ b/nextcloud/.env.example @@ -0,0 +1,3 @@ +NEXTCLOUD_DOMAIN=domain_goes_here +DB_ROOT_PASSWORD=mariadb_root_password_goes_here +NEXTCLOUD_DB_PASSWORD=mariadb_nextcloud_user_password_goes_here diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..8ca13cb --- /dev/null +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,57 @@ +version: "3.9" + +networks: + public: + external: true + +services: + nextcloud: + image: lscr.io/linuxserver/nextcloud:latest + container_name: nextcloud + restart: always + volumes: + - "./nextcloud-config-data:/config" + - "./nextcloud-data:/data" + environment: + - "PUID=1000" + - "PGID=1000" + - "TZ=Asia/Singapore" + # ports: + # - "443:443" + networks: + - public + labels: + - "traefik.enable=true" + - "traefik.http.routers.nextcloud.rule=Host(`${NEXTCLOUD_DOMAIN}`)" + - "traefik.http.routers.nextcloud.service=nextcloud-service" + - "traefik.http.services.nextcloud-service.loadbalancer.server.port=443" + - "traefik.http.services.nextcloud-service.loadbalancer.server.scheme=https" + - "traefik.http.routers.nextcloud.tls=true" + - "traefik.http.routers.nextcloud.tls.certresolver=le" + # Nextcloud DAV services discovery + - "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.regex=https://(.*)/.well-known/(card|cal)dav" + - "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.replacement=https://$${1}/remote.php/dav/" + - "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.permanent=true" + # HSTS + - "traefik.http.middlewares.nextcloud-headers.headers.stsSeconds=15552000" + # Apply middlewares + - "traefik.http.routers.nextcloud.middlewares=nextcloud-redirectregex,nextcloud-headers" + + mariadb: + image: lscr.io/linuxserver/mariadb:latest + container_name: mariadb + restart: always + volumes: + - "./mariadb-data:/config" + environment: + - "PUID=1000" + - "PGID=1000" + - "MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}" + - "TZ=Asia/Singapore" + - "MYSQL_DATABASE=nextcloud_db" + - "MYSQL_USER=nextcloud" + - "MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}" + # ports: + # - "3306:3306" + networks: + - public