====== Nextcloud ====== https://www.ionos.de/digitalguide/server/konfiguration/nextcloud-installation-mit-docker/ * Nextcloud benötigt zur Funktion eine Datenbank und einen Webserver * Let's encrypt benötigt zur Funktion einen Webserver Daher benötigen wir die Dienste in dieser Reihenfolge: * Webserver - nginx-Reverse Proxy * SSL - Let's encrypt * Datenbank - MariaDB * App - Nextcloud ===== Projektstruktur ===== su - docker mkdir -p ~/projects/nextcloud/ cd ~/projects/nextcloud/ ===== Umgebungsvariablen ===== nano .env # MariaDB MYSQL_ROOT_PASSWORD= MYSQL_DATABASE=nextcloud MYSQL_USER=nc-dbuser MYSQL_PASSWORD= # Nextcloud VIRTUAL_HOST= LETSENCRYPT_HOST= LETSENCRYPT_EMAIL= ===== Docker-Compose ===== nano docker-compose.yaml networks: network: services: proxy: image: jwilder/nginx-proxy:alpine labels: - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true" container_name: nextcloud-proxy networks: - network ports: - 80:80 - 443:443 volumes: - ./proxy/conf.d:/etc/nginx/conf.d:rw - ./proxy/vhost.d:/etc/nginx/vhost.d:rw - ./proxy/html:/usr/share/nginx/html:rw - ./proxy/certs:/etc/nginx/certs:ro - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/tmp/docker.sock:ro restart: always letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion container_name: nextcloud-letsencrypt depends_on: - proxy networks: - network volumes: - ./proxy/certs:/etc/nginx/certs:rw - ./proxy/vhost.d:/etc/nginx/vhost.d:rw - ./proxy/html:/usr/share/nginx/html:rw - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro restart: always mariadb: image: mariadb:10.11 container_name: nextcloud-mariadb environment: - MYSQL_ROOT_PASSWORD - MYSQL_DATABASE - MYSQL_USER - MYSQL_PASSWORD networks: - network ports: - 3306:3306 restart: always volumes: - mariadb:/var/lib/mysql - /etc/localtime:/etc/localtime:ro app: image: nextcloud:latest container_name: nextcloud-app networks: - network depends_on: - letsencrypt - proxy - mariadb volumes: - app:/var/www/html - ./app/config:/var/www/html/config - ./app/custom_apps:/var/www/html/custom_apps - ./app/data:/var/www/html/data - ./app/themes:/var/www/html/themes - /etc/localtime:/etc/localtime:ro environment: - VIRTUAL_HOST - LETSENCRYPT_HOST - LETSENCRYPT_EMAIL restart: always volumes: app: mariadb: docker compose up -d