Benutzer-Werkzeuge

Webseiten-Werkzeuge


server:docker:nextcloud

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
.env
# MariaDB
MYSQL_ROOT_PASSWORD=<MariaDB Root Passwort>
MYSQL_DATABASE=nextcloud
MYSQL_USER=nc-dbuser
MYSQL_PASSWORD=<Nextcloud DB-User Passwort>
# Nextcloud
VIRTUAL_HOST=<your.domain></your.domain>
LETSENCRYPT_HOST=<your.domain></your.domain>
LETSENCRYPT_EMAIL=<your@email></your@email>

Docker-Compose

nano docker-compose.yaml
docker-compose.yml
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
server/docker/nextcloud.txt · Zuletzt geändert: 2025/02/27 13:04 von hse