← Zpět na všechny články blogu

Jak nainstalovat wiki Outline na Debian VPS (pomocí Dockeru)

Matyáš Vaneš
Matyáš Vaneš Aktualizováno 1. 7. 2025 – 5 min. čtení
Blog

Outline je open-source wiki nástroj ideální pro týmy, které potřebují přehledně sdílet interní dokumentaci, návody, poznámky a nebo znalosti. Dá se provozovat na vlastním serveru (například na VPS), čímž získáte plnou kontrolu nad daty a zároveň jednoduché rozhraní pro zápis i čtení obsahu.

V tomto návodu si ukážeme, jak Outline zprovoznit na VPS s Debianem pomocí Dockeru a Docker Compose.

1. Instalace Dockeru a Docker Compose

Přidání repozitáře Dockeru

Nejdřív přidáme oficiální Docker repozitář a klíč:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Freelo - Nástroj na řízení úkolů a projektů

Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.

Instalace Dockeru

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

Instalace Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Kontrola instalace

Po instalaci je třeba zkontrolovat, zda se instalace zdařila. Kontrolu provedete následujícím příkazem:

docker -v && docker-compose -v

Pokud proběhne v pořádku, zobrazí se info o úspěšné instalaci:

2. Příprava konfigurace Outline

Vytvoření složky

mkdir ~/outline && cd ~/outline

Generování tajných klíčů

openssl rand -hex 32

Vygenerujte dva různé klíče a dočasně si je uložte.

Vytvoření PostgreSQL databáze přes VPS Centrum

  1. V rozhraní VPS Centra přejděte do sekce Databáze.
  2. Vytvořte novou databázi typu PostgreSQL.
  3. Uložte si jméno databáze, uživatele a heslo.

3. Konfigurace Dockeru

Vytvoření docker-compose.yml

nano docker-compose.yml

Vložte:

version: "3"
services:
  outline:
    image: docker.getoutline.com/outlinewiki/outline:latest
    env_file: ./docker.env
    restart: always
    network_mode: "host"
    volumes:
      - /var/lib/outline/data:/var/lib/outline/data

Vytvoření docker.env

Soubor obsahuje konfiguraci aplikace. Vložte sem mimo jiné:

  • SECRET_KEY – hlavní aplikační klíč (vložte jeden z vašich tajných klíčů).
  • UTILS_SECRET – doplňkový bezpečnostní klíč (vložte druhý z vašich tajných klíčů).
  • DATABASE_URL – připojovací string k databázi ve formátu: postgres://uživatel:heslo@localhost:port/nazev_databaze
  • REDIS_URL – adresa připojení na Redis. Standardně se zadává pouze heslo, např.: redis://:heslo@localhost:6379.
    (Heslo najdete v instalační dokumentaci VPS, uživatel se běžně nepoužívá.)
  • URL – adresa, pod kterou bude aplikace veřejně dostupná (např. https://wiki.domena.cz).
  • PORT – výchozí port je 3000. Pokud je již obsazený, změňte ho a upravte konfiguraci webserveru.
  • FILE_STORAGE_LOCAL_ROOT_DIR – adresář, kam bude Outline ukládat soubory (obrázky atd.). Ujistěte se, že složka existuje a má správná oprávnění.
  • AUTHENTICATION – nutné zvolit a nakonfigurovat jednu metodu přihlašování (např. Slack, Google, Email atd.), jinak nebude možné se přihlásit.
  • SMTP konfigurace – pro funkční odesílání e-mailů je třeba zadat SMTP údaje stejně jako v běžném e-mailovém klientovi (host, port, uživatel, heslo, šifrování).
  • DEFAULT_LANGUAGE – výchozí jazyk rozhraní, např. cs_CZ pro češtinu.

Ujistěte se, že každý řádek odpovídá vašemu prostředí. Kompletní šablonu najdete na GitLabu Outline.

4. Složky a spuštění

Vytvoření datových složek

sudo mkdir -p /var/lib/outline/data
sudo chown -R 1000:1000 /var/lib/outline/data
sudo chmod -R 755 /var/lib/outline/data

Migrace databáze

docker compose run --rm outline yarn db:migrate --env=production-ssl-disabled

Spuštění služby

docker compose up -d

Zkontrolujte, že vše běží:

docker compose ps

A případné logy:

docker logs outline-outline-1

Pokud vidíte:

Listening on http://localhost:3000 / https://subdomena.domena.cz

…máte vyhráno.

VPS Centrum

Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.

5. Konfigurace webserveru

Vytvoření subdomény přes VPS Centrum

  1. Nejprve si vytvořte subdoménu k naší doméně pomocí VPS Centra.
  2. V nastavení zvolte aktivní webserver (Apache nebo Nginx).

Apache2

Přidejte do konfigurace za RewriteRule:

RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P]

ProxyPreserveHost On
ProxyTimeout 360
ProxyPass / http://localhost:3000/ upgrade=WebSocket retry=0 timeout=360
ProxyPassReverse / http://localhost:3000/

Zároveň smažte mod_proxy_fcgi tak, aby makro vypadalo podle následujícího vzoru:

<Macro wiki.domena.cz>

## odkomentovat, pokud se ma web presmerovavat automaticky z http na https - pozor, bude automaticky pro vsechny subdomeny!!!
   RewriteEngine On
   RewriteCond %{HTTPS} off
   RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/ [NC]
#  RewriteRule (.*) https://%{SERVER_NAME}$1 [R,L]

  RewriteCond %{HTTP:Upgrade} =websocket [NC]
  RewriteCond %{HTTP:Connection} upgrade [NC]
  RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P]

  ProxyPreserveHost On
  ProxyTimeout 360
  ProxyPass / http://localhost:3000/ upgrade=WebSocket retry=0 timeout=360
  ProxyPassReverse / http://localhost:3000/

</Macro>

Nginx

V bloku location / nahraďte:

location / {
  proxy_pass http://localhost:3000;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_buffering off;
  proxy_connect_timeout 360s;
  proxy_read_timeout 360s;
  proxy_send_timeout 360s;
}

Zároveň smažte ostatní definice tak, aby blok server vypadal dle následujícího vzoru:

server {
    server_name wiki.domena.cz wiki.domena.cz.<ID>.vas-server.cz; 

	include /etc/nginx/sites-available/domains_conf/domena.cz.conf;

    ### redirect to https - zacatek
#       if ($scheme != https) { return 308 https://$host$uri$is_args$args; }
    ### redirect to https - konec

    location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
    proxy_connect_timeout 360s;
    proxy_read_timeout 360s;
    proxy_send_timeout 360s;
    }
}

Soubor uložte – cron se o restart webserveru postará do minuty.

A je to!

Pokud jste došli až sem, máte funkční self-hosted wiki systém Outline. Teď už jen stačí přidat první poznámky, přizvat tým a začít sdílet znalosti. 🙌

Poznámka: Krátké chybové hlášení 502 po restartu serveru je běžné – Docker potřebuje chvíli na rozběhnutí.

Zůstaňte s námi v kontaktu

Jednou za měsíc posíláme souhrn novinek. Nemusíte se bát, spamovat vás nebudeme a odhlásit se můžete kdykoliv...

Karel Dytrych
Tým Váš Hosting
Vyzkoušejte náš trial na týden zdarma

Garance 14denní záruky vrácení peněz

Vyzkoušejte server na týden zdarma

Vyzkoušet server