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é:

Rozhranie prvého prihlásenia Nextcloud s možnosťou výberu databázy.

Tu sú rovnaké vstupné údaje v tabuľke, pre prípad, že obrázok je nečitateľný:

PoleHodnota
Usernextcloud
Passwordpassword
Database namenextcloud
Host namenextcloud_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!