added nextcloud standalone

This commit is contained in:
Henrik 2023-05-07 12:40:32 +00:00
parent 9fa6b16bed
commit 2badc54f91
3 changed files with 77 additions and 41 deletions

View file

@ -11,11 +11,18 @@ services:
- --providers.docker.network=proxy - --providers.docker.network=proxy
- --serversTransport.insecureSkipVerify=true - --serversTransport.insecureSkipVerify=true
- --api - --api
#Lets Encrypt
- --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- --certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL} - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- --certificatesresolvers.letsencrypt.acme.storage=/acme.json #- "--certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- --certificatesresolvers.letsencrypt.acme.tlschallenge=true - "--certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL}"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
#Lets Encrypt TLS Challenge
#- --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
#- --certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL}
#- --certificatesresolvers.letsencrypt.acme.storage=/acme.json
#- --certificatesresolvers.letsencrypt.acme.tlschallenge=true
#Logging #Logging
- "--accesslog=true" - "--accesslog=true"
- "--accesslog.filePath=/logs/access.log" - "--accesslog.filePath=/logs/access.log"
@ -28,12 +35,12 @@ services:
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
- "/var/run/docker.sock:/var/run/docker.sock:ro" - "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./data/letsencrypt/acme.json:/acme.json" - "./data/letsencrypt:/letsencrypt"
- ./data/logs/:/logs/ - ./data/logs/:/logs/
labels: labels:
# Dashboard # Dashboard
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`treafik.dev.mertens.digital`)" - "traefik.http.routers.traefik.rule=Host(`traefik.dev.mertens.digital`)"
- "traefik.http.routers.traefik.service=api@internal" - "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.tls.certresolver=letsencrypt" - "traefik.http.routers.traefik.tls.certresolver=letsencrypt"
- "traefik.http.routers.traefik.entrypoints=websecure" - "traefik.http.routers.traefik.entrypoints=websecure"
@ -54,22 +61,22 @@ services:
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
whoami: # whoami:
image: traefik/whoami # image: traefik/whoami
command: # command:
- --port=2001 # - --port=2001
- --name=test # - --name=test
ports: # ports:
- "2001:2001" # - "2001:2001"
networks: # networks:
- proxy # - proxy
labels: # labels:
- "traefik.enable=true" # - "traefik.enable=true"
- "traefik.http.routers.whoami.entrypoints=websecure" # - "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.rule=Host(`whoami.dev.mertens.digital`)" # - "traefik.http.routers.whoami.rule=Host(`whoami.dev.mertens.digital`)"
- "traefik.http.routers.whoami.tls=true" # - "traefik.http.routers.whoami.tls=true"
- "traefik.http.routers.whoami.tls.certresolver=letsencrypt" # - "traefik.http.routers.whoami.tls.certresolver=letsencrypt"
- "traefik.http.services.whoami.loadbalancer.server.port=2001" # - "traefik.http.services.whoami.loadbalancer.server.port=2001"

View file

@ -1,24 +1,29 @@
version: '3' version: '3'
services: services:
app: app:
image: nextcloud image: nextcloud
restart: always restart: always
networks: networks:
- caddy - proxy
- nextcloud - nextcloud
labels: labels:
caddy: ${HOSTNAME} - "traefik.enable=true"
caddy.reverse_proxy: "{{upstreams http 80}}" - "traefik.http.routers.nextcloud.rule=Host(`${HOSTNAME}`)"
caddy.0_redir: "/.well-known/carddav /remote.php/dav 301" - "traefik.http.routers.nextcloud.service=nextcloud"
caddy.1_redir: "/.well-known/caldav /remote.php/dav 301" - "traefik.http.routers.nextcloud.entrypoints=websecure"
caddy.header: "Strict-Transport-Security max-age=15552000" - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
caddy.tls: "internal" - "traefik.http.routers.nextcloud.tls=true"
- "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- "traefik.http.services.nextcloud.loadbalancer.passhostheader=true"
- "traefik.http.routers.nextcloud.middlewares=compresstraefik"
- "traefik.http.middlewares.compresstraefik.compress=true"
volumes: volumes:
- ./data/nextcloud/www:/var/www/html - ./data/nextcloud/www:/var/www/html
- ./default-config/preview.config.php:/var/www/html/config/preview.config.php #- ./default-config/preview.config.php:/var/www/html/config/preview.config.php
depends_on: depends_on:
- clamav #- clamav
- preview - preview
- db - db
- redis - redis
@ -42,14 +47,38 @@ services:
- PORT=9000 - PORT=9000
command: -concurrency 50 -enable-url-source command: -concurrency 50 -enable-url-source
clamav: collabora-code:
image: "clamav/clamav:stable_base" image: collabora/code
container_name: "clamav" container_name: collabora-code
networks: cap_add:
- nextcloud - MKNOD
volumes: ports:
- ./data/clamav/virus_db:/var/lib/clamav/ # Virus database - 9980:9980
environment:
- "domain=cloud\\.dev\\.mertens\\.digital"
- username=admin
- "extra_params=--o:ssl.enable=false --o:ssl.termination=true"
- password=CREATE-A-SECURE-PASSWORD-HERE
restart: unless-stopped restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.collabora.entrypoints=websecure"
- "traefik.http.routers.collabora.rule=Host(`${COLLABORA_FQDN}`)"
- "traefik.http.routers.collabora.tls=true"
- "traefik.http.routers.collabora.tls.certresolver=letsencrypt"
- "traefik.http.services.collabora.loadbalancer.server.port=9980"
#- "traefik.http.services.collabora.loadbalancer.passhostheader=true"
networks:
- proxy
# clamav:
# image: "clamav/clamav:stable_base"
# container_name: "clamav"
# networks:
# - nextcloud
# volumes:
# - ./data/clamav/virus_db:/var/lib/clamav/ # Virus database
# restart: unless-stopped
# Does Not Work # Does Not Work
#notify_push: #notify_push:
@ -89,12 +118,12 @@ services:
db: db:
container_name: db
image: postgres:alpine image: postgres:alpine
restart: always restart: always
networks: networks:
- nextcloud - nextcloud
environment: environment:
POSTGRES_DB: nextcloud
POSTGRES_USER: ${POSTGRES_USER} POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes: volumes:
@ -111,5 +140,5 @@ services:
networks: networks:
nextcloud: nextcloud:
internal: true internal: true
caddy: proxy:
external: true external: true