Nextcloud Docker Compose


Aby ułatwić sobie automatyczny backup zdjęć z telefonu na swój własny serwer postanowiłem postawić własny serwer Nextcloud używając Docker Compose.

Konfiguracja jest dość prosta, wystarczy użyć poniższego pliku YAML:

version: '3.7'

services:
  nextcloud_db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /mnt/dane/container/nextcloud-mysql:/var/lib/mysql
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=true
      - MYSQL_PASSWORD=TWOJEHASLO
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

  nextcloud:
    image: nextcloud:24-apache
    restart: always
    ports:
      - 4080:80
    volumes:
      - /mnt/dane/container/nextcloud:/var/www/html
    environment:
      - NEXTCLOUD_DATA_DIR=/var/www/html/data
      - MYSQL_PASSWORD=TWOJEHASLO
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=nextcloud_db
      - REDIS_HOST=redis

      - APACHE_DISABLE_REWRITE_IP
      - VIRTUAL_HOST=nextcloud.sloniupl.eu
      - OVERWRITEPROTOCOL=https
      - TRUSTED_PROXIES=NginxProxyManager
      - OVERWRITECLIURL=https://nextcloud.sloniupl.eu
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

  cron:
    image: rcdailey/nextcloud-cronjob
    restart: always
    network_mode: none
    depends_on:
    - app
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock:ro
    - /etc/localtime:/etc/localtime:ro
    environment:
    - NEXTCLOUD_CONTAINER_NAME=nextcloud
    - NEXTCLOUD_PROJECT_NAME=nextcloud
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

  redis:
    image: redis:alpine
    restart: always
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

Poniżej szybkie objaśnienie niektórych funkcji:

  • etykieta wykorzystywana przez watchtower do automatycznego sprawdzania i aktualizacji: labels: – „com.centurylinklabs.watchtower.enable=true”
  • zmień wartość na swoje trudne hasło do bazy danych: TWOJEHASLO
  • zmień na własne lokalizacje katalogów wartości wskazane w: volumes:
  • nextcloud będzie dostępny na porcie 4080

Na koniec w Nginx Proxy Manager dodałem proxy host z dodatkową konfiguracją w sekcji advanced:

location /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
}

location /.well-known/caldav {
    return 301 $scheme://$host/remote.php/dav;
}

Linkografia:

https://techsparx.com/software-development/docker/self-hosting/nextcloud.html

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.