Installation Docker mit MariaDB SSL
Beschreibung:
Nextcloud installation via docker-compose script.
Wir nutzen für das Letsencrypt cert das image linuxserver/swag.
Dies ist ein image was letsencrypt und den nginx vereint
Installation
Vorbereitung
Docker und Verzeichnisse anlegen
apt install docker.io docker-compose apparmor
mkdir -p /root/nextcloud/mariadb/data
mkdir -p /root/nextcloud/data
mkdir -p /root/nextcloud/letsencrypt
.env Datei
Am Anfang setzten wir staging auf true.
Damit testen wir ob alles in ordnung ist beim Zertifikat holen.
Wenn alles klappt dann auf false stellen.
root@cloud:~/nextcloud/letsencrypt/nginx/proxy-confs# cd ..
root@cloud:~/nextcloud/letsencrypt/nginx# cd ..
root@cloud:~/nextcloud/letsencrypt# cd ..
root@cloud:~/nextcloud# cat .env
# Datenbank Konfiguration
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextclouduser
MYSQL_PASSWORD=nextcloudpassword
MYSQL_ROOT_PASSWORD=rootpassword
# Volumes
NEXTCLOUD_DATA_PATH=/root/nextcloud/data
DB_DATA_PATH=/root/nextcloud/mariadb/data
LETSENCRYPT_DATA_PATH=/root/nextcloud/letsencrypt
# Netzwerk
VIRTUAL_HOST=cloud.banane.com
LETSENCRYPT_HOST=cloud.banane.com
LETSENCRYPT_EMAIL=info@banane.com
#subdomains (wildcard,www,customdomain or nothing
SUBDOMAINS=
STAGING=true # Schaltet den Testmodus ein
Die composer Datei
version: '3.8'
services:
db:
image: mariadb
restart: always
volumes:
- ${DB_DATA_PATH}:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
app:
image: nextcloud
restart: always
volumes:
- ${NEXTCLOUD_DATA_PATH}:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
depends_on:
- db
letsencrypt:
image: linuxserver/swag
restart: always
volumes:
- ${LETSENCRYPT_DATA_PATH}:/config
environment:
- URL=${VIRTUAL_HOST}
- SUBDOMAINS=${SUBDOMAINS}
- VALIDATION=http
- EMAIL=${LETSENCRYPT_EMAIL}
- STAGING=${STAGING}
depends_on:
- app
ports:
- "80:80"
- "443:443"
networks:
default:
external:
name: nginx-proxy
Das Docker netzwerk nginx-proxy anlegen
docker network create nginx-proxy
Starten und schauen ob certificate erstellt wird.