V predchádzajúcom krátkom článku o inštalácii Nextcloud som neposkytol veľa podrobností, okrem konfigurácie portov (ktorá môže byť potrebná v závislosti od ďalších faktorov). Zvolené nastavenie jednoducho fungovalo. Napriek tomu som aj ja zistil, že výkon základnej SQLite databázy je trochu nedostatočný, a rozhodol som sa použiť PostgreSQL databázu namiesto nej, ako čistú inštaláciu.
Pre PostgreSQL pod docker-compose som použil rovnaké kroky opísané v mojom návode na inštaláciu Mastodon s docker-compose. Tam to funguje, ešte plne nerozumiem nevýhodám, tak prečo vymýšľať niečo úplne iné? Tu je zhutnený zoznam krokov, vysvetlenia sú na vyššie uvedenom odkaze.
Krok 1. Stiahnuť repozitár #
cd /home/user
git clone https://github.com/onlyoffice/docker-onlyoffice-nextcloud
mv docker-onlyoffice-nextcloud nextcloud
cd nextcloud
Názov adresára bude neskôr dôležitý, preferujem krátky nextcloud.
Krok 2. Pripraviť databázový kontajner #
sudo docker pull postgres:12.5-alpine
sudo docker run --name postgres12 \
-v /YOUR/NEXTCLOUD/LOCATION/postgres:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=password --rm -d postgres:12.5-alpine
sudo docker exec -it postgres12 psql -U postgres
> CREATE USER nextcloud WITH PASSWORD 'password' CREATEDB;
> exit
sudo docker stop postgres12
Prosím, zvoľte iné heslo vo vyššie uvedených dvoch príkazoch a upravte
cestu na tú, kde sa nachádza docker-compose.yml.
Krok 3. Prvé spustenie #
Upravte docker-compose.yml a pridajte sekciu databázy blízko vrcholu:
db:
restart: always
image: postgres:12.5-alpine
shm_size: 256mb
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
volumes:
- ./postgres:/var/lib/postgresql/data
Cesta k volume vyššie musí byť rovnaká ako tá v docker run vyššie, hoci
relatívna cesta ako tu funguje dobre. Tiež nechajte službu app závisieť
od služby db:
app:
# contaner_name: app-server
# ...
depends_on:
- db
Keď je docker-compose.yml pripravený, spustite skript:
sudo docker-compose up -d
Krok 4. Nastaviť reverzný proxy #
Nastavte reverzný proxy podľa vlastného uváženia. Inšpirácie možno nájsť v príspevkoch pod tagmi Nginx a najmä acme.sh. Dôležitá časť je vystavený HTTP port 80, riadok 37 v zdrojovom kóde príkladu. To bolo to, čo ma prekvapilo v príspevku Reverzný proxy za reverzným proxy. Tu port 8081 je tam, kde počúva Nextcloud.
Krok 5. Vybrať PostgreSQL databázu #
Otvorte stránku, vyplňte meno a heslo administrátora. Nemeňte cestu k priečinku s dátami. Potom zvoľte PostgreSQL databázu a vyplňte nasledovné:

Tu sú rovnaké vstupné údaje v tabuľke, pre prípad, že obrázok je nečitateľný:
| Pole | Hodnota |
|---|---|
| User | nextcloud |
| Password | password |
| Database name | nextcloud |
| Host name | nextcloud_db_1 |
Potom kliknite na „Finish” v spodnej časti.
Krok 6. Nastaviť OnlyOffice #
Posledným krokom je nastavenie OnlyOffice, ktorý sa mi
už preukázal ako veľmi užitočný nástroj
celkovo. Spustite skript set_configuration.sh z repozitára:
sudo set_configuration.sh
Teraz nastavte reverzný proxy a otvorte webové rozhranie.
Aktualizácia #
Celý stack som dokázal aktualizovať jednoducho takto:
docker-compose pull
A potom reštartovať kompozíciu:
docker-compose down && docker-compose up -d
Príjemnú prácu!