Blog o wszystkim o czym nie chciałbym zapomnieć.
Blog o wszystkim o czym nie chciałbym zapomnieć.

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:

services:
  nextcloud_db:
    image: mariadb:lts
    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
    #ports:
    #  - 4406:3306
    labels:
      - com.centurylinklabs.watchtower.enable=true
  nextcloud:
    image: nextcloud:latest
    restart: always
    ports:
      - 4080:80
    volumes:
      - /mnt/dane/container/nextcloud:/var/www/html
    environment:
      - TZ=Europe/Warsaw
      - NEXTCLOUD_DATA_DIR=/var/www/html/data
      - MYSQL_PASSWORD=TWOJEHASLO
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=nextcloud_db
      - REDIS_HOST=redis
      - PHP_MEMORY_LIMIT=6144M
      - PHP_UPLOAD_LIMIT=6144M
      - APACHE_BODY_LIMIT=0
      # - VIRTUAL_HOST=nextcloud.sloniupl.eu
    labels:
      - com.centurylinklabs.watchtower.enable=true
  cron:
    image: rcdailey/nextcloud-cronjob
    restart: always
    network_mode: none
    depends_on:
      - nextcloud
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /etc/localtime:/etc/localtime:ro
      #    - /mnt/dane/container/nextcloud/cronscripts/previewgenerator.sh:/cron-scripts/previewgenerator.sh: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
  onlyoffice:
    image: onlyoffice/documentserver:latest
    restart: always
    environment:
      - TZ=Europe/Warsaw
      - JWT_SECRET=TWOJSEKRETONLYOFFICE
      #- JWT_IN_BODY=true
    volumes:
      - /mnt/dane/container/nextcloud-onlyoffice/document_data:/var/www/onlyoffice/Data
      - /mnt/dane/container/nextcloud-onlyoffice/document_log:/var/log/onlyoffice
    ports:
      - 8043:80
    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ń TWOJSEKRETONLYOFFICE na secret który bedziesz konfigurował we wtyczce OnlyOffice w Nextcloud
  • 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:

proxy_buffering off;
location /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/caldav {
    return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/webfinger {
    return 301 $scheme://$host/index.php/.well-known/webfinger;
}
location /.well-known/nodeinfo {
    return 301 $scheme://$host/index.php/.well-known/nodeinfo;
}
location /ocm-provider {
    return 301 $scheme://$host/index.php/ocm-provider;
}

proxy_buffering off; umożliwi ci uploadowanie plików większych niż 1GB używając NGINX Proxy Manager.

Gotowe 🙂

Linkografia:

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.

Komentarz do “Nextcloud Docker Compose”

Translate »