NEXTCLOUD AKO DOCKER – ZABEZPEČENIE CEZ NGINX

Tento článok je 12 z 16 v sérii Ubuntu server na doma

Nextcloud ako docker – pokiaľ sa pohrávate s myšlienkou odísť od zálohovania Vašich dokumentov, fotografií či videí prostredníctvom známych služieb ako Google Drive, Dropbox, Office 365…s vedomím, že toto chcete mať vo svojej réžii, potom rozhodne uvážte rozbehanie si vlastnej cloudovej služby.
Medzi najpopulárnejšie cloud open-source služby patrí určite Nextcloud. Okrem štandardného zálohovania súborov ponúka viacero zaujímavých integrovaných služieb.
Je sem možné určite zaradiť napríklad online úpravu súborov Open-Office, alebo klasického Word či Excel.
Pre niekoho môže byť zaujímavou službou napríklad možnosť organizovania videokonferencií s priamou podporou zdieľania súborov.
Doplnkov pre túto službu je pomerne veľké množstvo, takže každý používateľ si môže nainštalovať podľa svojho gusta.
Mnou často využívanou službou je zdieľanie súborov s možnosťou nastavenia vypršania doby platnosti.

Tento návod je smerovaný na všetkých záujemcov, ktorí si chcú rozbehať privátny cloud, lebo im táto myšlienka dáva zmysel. Pomocou niekoľkých krokov vytvoríme vlastný Nextcloud server, na ktorý bude prístup cez zabezpečené pripojenie HTTPS s platným certifikátom. Toto všetko nám zariadi NGINX proxy server, ktorý sme si už inštalovali v predchádzajúcich dieloch. Okrem toho si ukážeme ako nainštalovať desktopového klienta s drobnou úpravou na serveri.

Čo budeme potrebovať?

  1. Nainštalovaný Ubuntu server (návod tu) alebo Debian server (návod tu).
  2. Rozbehanú podporu dockeru a nainštalovaný Portainer (návod na tomto odkaze).
  3. NGINX proxy (návod tu).
  4. Vlastnú doménu alebo subdoménu – ja použijem svoju subdoménu dockecloud.vawav.com

Nastavenie smerovania subdomény

U nášho registrátora domény vytvoríme novú subdoménu a nový A DNS záznam, v mojom prípade sa subdoména bude volať dockercloud.vawav.com

docker cloud A zaznam
docke ip list

Presmerovanie portov na routeri nie je potrebné, nakoľko všetko smerovanie bude riešené prostredníctvom NGINX proxy.

Ďalším krokom je povolenie portu 11180 (dajte si kľudne iný ale nesmie to byť port 80) na firewall v Ubuntu serveri, ktorý interne bude NGINX smerovať následne na port 80.
Prihlásime sa na Ubuntu server cez SSH , v mojom prípadne cez príkaz

ssh [email protected] -p 2211

Odpoveď na otázku prečo sa pripájam na port 2211 nájdete v mojom návode na zabezpečenie linuxového serveru.

a pravidlo pre firewall pridáme príkazom

sudo ufw allow 11180

a ešte necháme pre istotu nahrať pravidlá vo firewall príkazom

sudo ufw reload

Nextcloud ako docker – príprava adresárov

Vytvoríme si 3 adresáre, jeden hlavný s názvom nextcloud a do neho 2 podadresáre, v ktorých sa nám budú ukladať jednotlivé konfiguračné súbory.
Prvý príkaz:

mkdir nextcloud

Následne sa presunieme do adresára nextcloud príkazom

cd nextcloud/

Druhý príkaz

mkdir nextcloud-data

a posledný príkaz

mkdir nextcloud-db

vznikli nám teda 2 podadresáre v adresári nexcloud a cesty k nim nasledovne

/home/tony/nextcloud/nextcloud-data – túto cestu si poznačíme
a
/home/tony/nextcloud/nextcloud-db – túto cestu si rovnako poznačíme

Nextcloud docker – inštalácia cez Portainer

Otvoríme si nainštalovaný Portainer cez webový prehliadač na adrese v mojom prípade 192.168.1.26:9000.

V ľavom stĺpci zvolíme možnosť Stacks a následne vpravo hore modré tlačidlo Add Stack

Vypíšeme nasledovne:
Name: nextcloud
A následne dole do položky Web editor vložíme kód:

version: '3'

volumes:
  nextcloud-data:
  nextcloud-db:

services:

  nextcloud-app:
    image: nextcloud
    restart: always
    ports:
      - 11180:80
    volumes:
      - /home/tony/nextcloud/nextcloud-data:/var/www/html
    environment:
      - MYSQL_PASSWORD=vase-bezpecne-heslo
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=nextcloud-db

  nextcloud-db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /home/tony/nextcloud/nextcloud-db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=vase-bezpecne-heslo
      - MYSQL_PASSWORD=vase-bezpecne-heslo
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

Použijem cesty ktoré som si predtým poznačil. Následne už len necháte kliknutím na tlačítko Deploy the stack vytvoriť 2 dockery s názvom nextcloud_nextcloud-app_1 a nextcloud_nextcloud-db_1, ktoré by sme mali vidieť akonáhle vľavo klikneme na Containers.

Nastavenie smerovania v NGINX proxy

Otvoríme si NGINX proxy na adrese v mojom prípade 192.168.1.26:81

Klikneme Proxy Hosts a následne vpravo hore Add Proxy host
Domain Names – dockercloud.vawav.com
Scheme – http
Forward Hostname / IP – 192.168.1.26 (IP adresa serveru)
Port: 11180
Block Common Exploits – zapnúť

V záložke SSL – Request a new SSL certificate.
Force SSL – zapnúť
HTTP/2 Support – zapnúť
HSTS Enabled – zapnúť
I agree …. – zapnúť
Klikneme na Save

Pre istotu si ešte raz otvorte pripojenie a na záložke SSL si urobte kontrolu, či Force SSL a HTTP/2 Support a zostali HSTS Enabled zapnuté. Môže sa stať že pri prvotnom nastavení sa tieto parametre neuložili.

Pokiaľ všetko prejde v poriadku, náš Nextcloud by mal byť dostupný na webovej adrese https://dockercloud.vawav.com a spustíme inštaláciu Nextcloud.

Nextcloud ako docker – inštalácia tip

Ako prvé vytvoríme administrátorské konto a teda si zvolíme prihlasovacie meno a heslo pre administrátora.
Políčko s možnosťou inštalácie aplikácií doporučujem nechať prázdne, nakoľko sa môže inštalácia v tomto bode zahryznúť. Aplikácie sa dajú nainštalovať dodatočne.
Spustíme inštaláciu a chvíľu počkáme.
V prípade že Vám vyhodí PHP chybu, stačí nanovo otvoriť stránku https://dockercloud.vawav.com a dostanete sa do používateľského rozhrania administrátorského konta.

Inštalácia klienta Nextcloud na desktop

Stiahnite si svojho desktop klienta z tohto odkazu.

Pokiaľ sa Vám nebude dať prihlásiť, je potrebné naviac urobiť ešte niekoľko krokov. V terminále zadáme tieto príkazy, aby sme sa dostali dovnútra dockeru s aplikáciou nextcloud a do súboru config.php
Ako prvé zadáme:

docker exec -it nextcloud_nextcloud-app_1 /bin/bash

Tip – v prípade, že sa Vám nejde prihlásiť do dockeru, urobte si kontrolu či máte rovnaký názov dockeru nextcloud_nextcloud-app_1 ako ja. Svoj správny názov si pozrite cez Portainer. Prípadne ho nahraďte svojim pomenovaním dockeru. Stane sa to v prípade, že ste použili pri vytváraní iné pomenovanie Stack.

docker pomenovanie

a sme vnútri dockeru. Následne postupne tieto príkazy na aktualizáciu.

apt get update
apt get upgrade

doinštalujeme textový editor nano

apt install nano

a následne upravíme súbor config.php

nano config/config.php

pridať riadok

'overwriteprotocol' => 'https',

Cez CTRL + O, Enter, CTRL + X – uložíme a zatvoríme súbor.

Následne by sa náš desktopový klient mal bez problémov prihlásiť.

Koniec návodu.

UPOZORNENIE

V prípade použitia Collabora online DEMO serveru berte do úvahy, že Vaše dokumenty budú obsahovať vodoznak. Je potrebné mať nainštalovaný a nastavený vlastný Collabora Server. Prípadne miesto docker inštalácie Nextcloud zvážiť radšej SNAP inštaláciu, kde tento problém nie je.

Problémy a ich riešenie

V prípade že sa Vám v konfigurácii objaví chybové hlásenie (je to od verzie Nextcloud 21)
„Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add „default_phone_region“ with the respective ISO 3166-1 code ↗ of the region to your config file.“
malo by zabrať toto riešenie.
Je potrebné si otvoriť súbor config.php, ktorý by sa mal nachádzať na umiestnení
/home/tony/nextcloud/nextcloud-data/config/config.php
nasledovne

sudo nano /home/tony/nextcloud/nextcloud-data/config/config.php

do úplne spodnej časti dódu treba vložiť tento riadok

'default_phone_region' => 'SK',

SK (Slovensko) je prípadne potreby zmeniť za iný, ktorý Vám vyhovuje.

Malo by to teda vyzerať nasledovne, nedávam sem celý obsah súboru ale len jeho koniec.

.........
'maintenance' => false,
'default_phone_region' => 'SK',
);

Uložiť a zatvoriť súbor cez Ctrl+O, Enter, Ctrl+X

Znovu načítať stránku a toto chybové hlásenie by malo byť preč.

##### DOSLOV #####
Tvorba obsahu týchto stránok mi zaberá čas, počas ktorého sa snažím dodržiavať pitný režim.
Budem veľmi rád, ak ma v tomto kroku starostlivosti o životosprávu podporíte a prispejete na chod môjho „pivomatu“.
Ďakujem.
Odkazy na zaslanie príspevku.
Patreon – https://www.patreon.com/vawaver
Paypal – https://www.paypal.com/paypalme/vawaver
Revolut – https://revolut.me/antone9rp

Series Navigation<< WORDPRESS AKO DOCKER CEZ NGINXQBITTORRENT CEZ NORDVPN AKO DOCKER >>

3 myšlienky na “NEXTCLOUD AKO DOCKER – ZABEZPEČENIE CEZ NGINX

  1. odstranenie chyb nextcloud:

    pripojit sa na kontajner nextcloud_nextcloud-app_1 (aj priamo v portainery, asi najrychlejsie)

    apt update
    apt install nano
    apt install imagemagick
    nano .htaccess (.htaccess – editovat v nextcloud app (aj priamo v portainery))

    # RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L] povodne nastavenie
    # RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L] povodne nastavenie
    RewriteRule ^\.well-known/carddav$ https://moj.example.com/remote.php/dav/ [R=301,L] nove nastavenie
    RewriteRule ^\.well-known/caldav$ https://moj.example.com/remote.php/dav/ [R=301,L] nove nastavenie

    moj.example.com = nahradit za svoj nazov

    restart kontajner
    a je to
    🙂

    zmena moznosti nahrat aj subory nad 512MB:

    nano .user.ini
    php_value upload_max_filesize 16G
    php_value post_max_size 16G
    php_value max_input_time 3600
    php_value max_execution_time 3600

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *