Direkt zum Hauptinhalt

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.