====== 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