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
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
VPS Centrum
Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.
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
- V rozhraní VPS Centra přejděte do sekce Databáze.
- Vytvořte novou databázi typu PostgreSQL.
- Uložte si jméno databáze, uživatele a heslo.

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.
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.
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.
5. Konfigurace webserveru
Vytvoření subdomény přes VPS Centrum
- Nejprve si vytvořte subdoménu k naší doméně pomocí VPS Centra.
- 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. 🙌