
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ť?
- Nainštalovaný Ubuntu server (návod tu) alebo Debian server (návod tu).
- Rozbehanú podporu dockeru a nainštalovaný Portainer (návod na tomto odkaze).
- NGINX proxy (návod tu).
- 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


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.

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 kó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č.
Inštalácia NEXTCLOUD 23 – databáza fix
V prípade že máte problém s inštaláciou kvôli chybe databázy.
Error while trying to initialise the database: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
V STACK zamením riadok:
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
za
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
Následne spustím znova vygenerovanie STACK.
ODKAZ NA DISKUSIU VO FÓRE- https://forum.linuxdoma.sk/d/27-nextcloud-ako-docker
##### DOSLOV #####
Milý návštevník,
pokiaľ sa Ti tento článok páčil alebo si sa niečo nové naučil, chcem Ťa požiadať aby si sa zamyslel, čo je všetko nevyhnutné aby vznikol.
Keďže som len amatérsky softvérový kutil musím
- si najprv všetko naštudovať, samozrejme v cudzích jazykoch (angličtina, ruština, poľština, nemčina)
- následne si všetko vyskúšať
- svoje poznatky a skúsenosti napísať do článku ktorý si práve prečítal v jazyku ktorému rozumieš
- nahrať a postrihať video
- všetko dať dohromady a publikovať
Každý článok predstavuje niekoľko hodín práce za ktorú mi nikto neplatí.
Zváž koľko času som Ti práve ušetril.
Pokiaľ Ti to stojí aspoň za cenu kávy, tak mi ju kúp.
Ďakujem.
Prispieť na kávu môžeš tu:
Patreon – https://www.patreon.com/vawaver
Paypal – https://www.paypal.com/paypalme/vawaver
Revolut – https://revolut.me/antone9rp
NordVPN – môj odkaz
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
—
Ďakujem za doplnenie.
neni za co, aspon potom nextcloud nehlasi ziadnu chybu 😀