Outline je open source, spolupracující software znalostní báze. Můžete jej použít k hostování dokumentačních a fanouškovských stránek nebo jej dokonce použít pro sdílení poznámek. Obsahuje editor markdown a integruje se s více službami, jako je Slack, Figma, Airtable, Google Docs, Trello, Zapier, Codepen, Spotify, Youtube atd. Má bezpečnostní funkce, jako jsou skupiny uživatelů se samostatnými oprávněními pro čtení a zápis, umožňuje veřejné sdílení a má podporu RTL s překlady do 13 jazyků. Je vytvořen pomocí React a Node.js. Outline lze používat dvěma způsoby. Jedním z nich je jejich cloudová verze, nebo ji můžete hostovat na svém serveru.
Tento tutoriál vás naučí, jak nainstalovat Outline Wiki na server založený na Ubuntu pomocí Dockeru.
Předpoklady
-
Server se systémem Ubuntu 20.04 s minimálně 1 GB RAM.
-
Uživatel bez oprávnění root s právy sudo.
-
Název domény směřující na server. Použijeme
https://outline.example.com
pro náš tutoriál. -
Několik základních aplikací pro začátek.
$ sudo apt install nano curl wget unzip gnupg
Krok 1 – Konfigurace brány firewall
Prvním krokem je konfigurace firewallu. Ubuntu je standardně dodáváno s ufw (Uncomplicated Firewall).
Zkontrolujte, zda je spuštěna brána firewall.
Stav $ sudo ufw
Měli byste získat následující výstup.
Stav:neaktivní
Povolte port SSH, aby firewall při jeho povolení nepřerušil aktuální připojení.
$ sudo ufw povolit OpenSSH
Povolit také porty HTTP a HTTPS.
$ sudo ufw povolit 80 $ sudo ufw povolit 443
Povolte bránu firewall.
$ sudo ufw enableCommand může narušit stávající připojení ssh. Pokračovat v operaci (y|n)? yFirewall je aktivní a povolený při spuštění systému
Znovu zkontrolujte stav brány firewall.
Stav $ sudo ufw
Měli byste vidět podobný výstup.
Stav:activeTo Action From-- ------ ----OpenSSH ALLOW Anywhere80 ALLOW Anywhere443 ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80 (v6) ALLOW Anywhere (v6)443 (v6) ALLOW Anywhere (v6)
Krok 2 – Instalace Docker
Budeme muset nainstalovat Docker pomocí jeho oficiálního úložiště. Přidejte oficiální klíč GPG společnosti Docker.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Přidejte úložiště Docker do systému.
$ echo \"deb [arch=$(dpkg --print-architecture) sign-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux /ubuntu \$(lsb_release -cs) stabilní" | sudo tee /etc/apt/sources.list.d/docker.list> /dev/null
Aktualizujte seznam repozitářů APT a nainstalujte Docker.
$ sudo apt update$ sudo apt install docker-ce
Ověřte, zda je modul Docker správně nainstalován.
$ docker --versionDocker verze 20.10.14, sestavení a224086
Proveďte následující příkazy, abyste ke spouštění příkazů Dockeru nemuseli používat sudo.
$ sudo usermod -aG docker ${USER}$ su - ${USER}
Krok 3 – Instalace Docker Compose
Spuštěním následujícího příkazu nainstalujte Docker compose. Docker Compose byl nedávno aktualizován na verzi 2.0, která přinesla mnoho převratných změn. Použijeme nejnovější verzi 1.x dostupnou na stránce vydání Github.
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o / usr/local/bin/docker-compose
Použijte oprávnění ke spuštění pro binární soubor Docker compose.
$ sudo chmod +x /usr/local/bin/docker-compose
Ověřte, zda je správně nainstalován Docker Compose.
$ docker-compose --versiondocker-compose verze 1.29.2, sestavení 5becea4c
Nainstalujte dokončení příkazu pro Docker compose.
$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-compose$ zdroj ~/.bashrc
Tím je dokončena sekce instalace Docker and Docker Compose ve výukovém programu.
Krok 4 – Vytvoření souboru prostředí pro Docker
Konfigurace Slack Authentication
Outline vyžaduje, abyste nakonfigurovali poskytovatele ověření. V našem tutoriálu nakonfigurujeme přihlášení založené na Slacku.
Přihlaste se pomocí svého účtu Slack a navštivte stránku Slack API Apps.
Klikněte na Vytvořit aplikaci tlačítko pro pokračování. Klikněte na Od nuly odkaz k vytvoření aplikace.
Vyberte název aplikace a vyberte pracovní prostor, kde se má aplikace zobrazovat. Pokud svou aplikaci nechcete přidružit ke stávajícímu pracovnímu prostoru, můžete vytvořit další a vrátit se k tomuto kroku.
Klikněte na Vytvořit aplikaci až budete hotovi. Poté přejděte dolů na konec stránky a zadejte popis aplikace, ikonu a barvu pozadí.
Klikněte na tlačítko Uložit změny až budete hotovi. Vyberte OAuth and Permissions možnost z levého postranního panelu.
Přidejte adresu URL přesměrování https://outline.example.com/auth/slack.callback
v zobrazeném poli a klikněte na Přidat tlačítko.
Klikněte na Uložit adresy URL tlačítko pro pokračování. Přejděte dolů na Rozsahy uživatelských tokenů části stránky a z rozbalovací nabídky vyberte následující rozsahy.
identity.avatar
identity.basic
identity.email
identity.team
Vraťte se na Základní informace stránku z levého postranního panelu. Zkopírujte hodnoty Client ID a Tajný klíč klienta z jejich polí v části Přihlašovací údaje aplikace .
Konfigurace integrace Slack
Navštivte Příkazy lomítka možnost z levého postranního panelu.
Klikněte na Nový příkaz tlačítko na výsledné stránce. Zadejte /outline
jako příkaz. Zadejte https://outline.example.com/api/hooks.slack
jako URL požadavku . Zadejte popis příkazu a slovo jako nápovědu. Klikněte na tlačítko Uložit po dokončení.
Otevřete nabídku Funkce>> Interaktivita a zkratky z levého bočního panelu. Povolit Interaktivitu přepnutím přepínacího tlačítka a vložením https://outline.example.com/api/hooks.interactive
jako URL požadavku. Klikněte na tlačítko Uložit změny dokončete.
Otevřete Nastavení>> Instalovat aplikaci z levého postranního panelu a klikněte na Instalovat do WorkSpace tlačítko pro instalaci aplikace pro váš pracovní prostor Slack.
Navštivte Základní informace z levého postranního panelu a zkopírujte ID aplikace a ověřovací token hodnoty pro integraci slack aplikace.
Vytvořit přihlašovací údaje S3
Vytvořte segment S3 pro instalaci Outline na AWS nebo jakékoli službě kompatibilní s S3. Po vytvoření segmentu přidejte následující zásady JSON pro konfiguraci sdílení zdrojů mezi zdroji (CORS). Nahraďte hodnotu AllowedOrigins
s vaší adresou URL obrysu.
[ { "AllowedHeaders":[ "*" ], "AllowedMethods":[ "PUT", "POST" ], "AllowedOrigins":[ "https://docs.mycompany.com" ], "ExposeHeaders" :[] }, { "AllowedHeaders":[], "AllowedMethods":[ "GET" ], "AllowedOrigins":[ "*" ], "ExposeHeaders":[] }]
Vytvořte uživatele IAM s následující zásadou. Nahraďte my-bucket-name
se skutečným názvem vašeho segmentu Outline S3.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditor", "Effect":"Allow", "Action":[ "s3:GetObjectAcl", " s3:DeleteObject", "s3:PutObject", "s3:GetObject", "s3:PutObjectAcl" ], "Resource":"arn:aws:s3:::my-bucket-name/*" } ]}Nyní, když jste vytvořili svého uživatele IAM, vygenerujte přístupový klíč a tajný klíč pro uživatele vašeho segmentu.
Vytvořit tajné klíče
Soubor prostředí vyžaduje tajný klíč a tajný klíč nástroje. Spusťte následující příkaz dvakrát, abyste vygenerovali oba klíče.
$ openssl rand -hex 32Zkopírujte a uložte tyto hodnoty.
Vytvoření a úprava souboru prostředí
Vytvořte adresář pro nastavení ukotvitelného panelu pro Outline.
$ mkdir ~/outlinePřepněte do adresáře.
$ cd ~/outlineVytvořte
docker.env
soubor a otevřete jej pro úpravy. Tento soubor bude obsahovat všechny proměnné prostředí potřebné pro instalaci.$ nano docker.envVložte do něj následující kód. Zadejte tajný klíč a dříve vytvořený tajný klíč. Zkopírujte přihlašovací údaje Slack vytvořené dříve pro ověřování a integraci aplikací. Zadejte své přihlašovací údaje Amazon S3, jak je uvedeno níže.
Pokud chcete pomocí Google Analytics sledovat statistiky své aplikace Outline, zadejte do pole níže své ID Analytics. Outline zatím značky GA4 nepodporuje, takže budete muset zadat své staré ID měření.
Pro
WEB_CONCURRENCY
proměnnou, vydělte svůj systémový ram číslem 512 a zadejte přibližnou hodnotu.FORCE_HTTPS
je nastavena na false, protože používáme Nginx jako proxy server.# –––––––––––––––– POVINNÉ ––––––––––––––––SECRET_KEY=generate_a_new_keyUTILS_SECRET=generate_a_new_keyPOSTGRES_USER=outlinepgPOSTGRES_PASSWORD=yourpostpasswordPOSTGRESTGRESTGREST ://outlinepg:[e-mail chráněn]:5432/outlineDATABASE_URL_TEST=postgres://outlinepg:[e-mail chráněn]:5432/outline-testPGSSLMODE=disableREDIS_URL=redis://localhost:6379URL=https://docs.example.comPORT =3000AWS_ACCESS_KEY_ID =get_a_key_from_awsAWS_SECRET_ACCESS_KEY =get_the_secret_of_above_keyAWS_REGION =nás-east-2AWS_S3_UPLOAD_BUCKET_URL =https://my-bucket-name.s3.us-east-2.amazonaws.comAWS_S3_UPLOAD_BUCKET_NAME=my-bucket-nameAWS_S3_UPLOAD_MAX_SIZE=26214400AWS_S3_FORCE_PATH_STYLE=true# ----- ––––––––– AUTHENTICATION ––––––––––––––SLACK_KEY=SLACK_SECRET= # ––––––––––––––– – VOLITELNÉ ––––––––––––––––GOOGLE_ANALYTICS_ID=UA-XXXXXXX-1SLACK_VERIFICATION_TOKEN=your_tokenSLACK_APP_ID=A0XXXXXXXSLACK_MESSAGE_ACTIONS=trueFORCE_HTTPS=falseENABLE_UPDATE_CONCURRENWEBRENWEBCY2CURREN před> Výše uvedený soubor je založen na ukázkovém souboru z úložiště Github společnosti Outline. Pokud potřebujete nakonfigurovat další nastavení, můžete je zkopírovat do svého souboru.
Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Krok 5 – Vytvoření souboru Docker Compose pro Outline
Vytvořte
docker-compose.yml
soubor a otevřete jej pro úpravy.$ nano docker-compose.ymlVložte do něj následující kód.
verze:"3"služby:obrys:obrázek:obryswiki/outline:nejnovější restart:příkaz vždy:sh -c "sequelize příze:migrace --env=produkce-ssl-zakázáno &&spuštění příze --env=výroba- ssl-disabled" env_file:./docker.env porty:- "3000:3000" Depend_on:- postgres - redis redis:image:redis restart:vždy env_file:./docker.env porty:- "6379:6379" svazky:- ./redis.conf:/redis.conf příkaz:["redis-server", "/redis.conf"] postgres:image:postgres restart:always env_file:./docker.env porty:- "5432:5432" svazky:- data-databaze:/var/lib/postgresql/datavolumes:data-databaze:Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Krok 6 – Instalace Outline
Nainstalujte Outline spuštěním kontejnerů.
$ docker-compose up -dZkontrolujte stav kontejnerů.
$ docker psKrok 7 – Instalace protokolu SSL
Pro instalaci SSL certifikátu pomocí Let's Encrypt si musíme stáhnout nástroj Certbot. K tomu použijeme instalační program balíčku Snapd.
Nainstalujte instalační program Snap.
$ sudo apt install snapdUjistěte se, že vaše verze Snapd je aktuální.
$ instalační jádro sudo snap &&obnovovací jádro sudo snapNainstalujte Certbot.
$ instalace sudo snap --classic certbotPomocí následujícího příkazu zajistěte, aby bylo možné spustit příkaz Certbot vytvořením symbolického odkazu na
/usr/bin
adresář.$ sudo ln -s /snap/bin/certbot /usr/bin/certbotVygenerujte certifikát SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [e-mail chráněný] -d obrys.example.comVýše uvedený příkaz stáhne certifikát do
/etc/letsencrypt/live/outline.example.com
adresář na vašem serveru.Vytvořte skupinu Diffie-Hellman certifikát.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Vytvořte adresář webroot s výzvou pro automatické obnovení Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencryptVytvořte úlohu Cron pro obnovení SSL. Poběží každý den, aby se zkontroloval certifikát a v případě potřeby jej obnovil. Nejprve vytvořte soubor
/etc/cron.daily/certbot-renew
a otevřete jej pro úpravy.$ sudo nano /etc/cron.daily/certbot-renewVložte následující kód.
#!/bin/shcertbot renew --cert-name outline.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Změňte oprávnění k souboru úlohy, aby byl spustitelný.
$ sudo chmod +x /etc/cron.daily/certbot-renewKrok 8 – Instalace Nginx
Ubuntu se dodává se starší verzí Nginx. Chcete-li nainstalovat nejnovější verzi, musíte si stáhnout oficiální úložiště Nginx.
Importujte podpisový klíč Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg>/dev/nullPřidejte úložiště pro stabilní verzi Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.listAktualizujte systémová úložiště.
Aktualizace $ sudo aptNainstalujte Nginx.
$ sudo apt install nginxOvěřte instalaci.
$ nginx -verze vnginx:nginx/1.20.2Povolte službu Nginx.
$ sudo systemctl povolit nginxKrok 9 – Konfigurace Nginx
Až dosud Shlink běžel na místním systému přes port 8080. Nginx budeme používat jako reverzní proxy pro běh na jeho doméně.
Vytvořte konfigurační soubor pro server Shlink v
/etc/nginx/conf.d
adresář.$ sudo nano /etc/nginx/conf.d/outline.confVložte do něj následující kód.
server { název_serveru obrys.example.com; poslouchat 443 ssl http2; poslouchej [::]:443 ssl http2; access_log /var/log/nginx/outline.access.log; error_log /var/log/nginx/outline.error.log; ssl_certificate /etc/letsencrypt/live/outline.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/outline.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/outline.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-POLSHA13HEDCHA25050 -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; umístění / { proxy_pass http://localhost:3000; proxy_set_header Upgrade $http_upgrade; proxy_set_header Připojení "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Schéma $schéma; proxy_set_header X-Forwarded-Proto $schéma; proxy_redirect off; }## HTTPS Redirectserver { listen 80; poslouchej [::]:80; název_serveru obrys.example.com; vrátit 301 https://$host$request_uri;}Až budete hotovi, uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Otevřete soubor
/etc/nginx/nginx.conf
pro úpravy.$ sudo nano /etc/nginx/nginx.confPřidejte následující řádek před řádek
include /etc/nginx/conf.d/*.conf;
.server_names_hash_bucket_size 64;Uložte soubor stisknutím Ctrl + X a zadáním Y po výzvě. Znovu ověřte Nginx.
Ověřte syntaxi konfiguračního souboru Nginx.
$ sudo nginx -tnginx:syntaxe konfiguračního souboru /etc/nginx/nginx.conf je oknginx:konfigurační soubor /etc/nginx/nginx.conf test byl úspěšnýSpusťte server Nginx.
$ sudo systemctl spustí nginxKrok 10 – Přístup k Outline
Spusťte doménu
https://outline.example.com
ve vašem prohlížeči a uvítá vás následující stránka.
Klikněte na Pokračovat s Slack tlačítko pro přihlášení přes Slack a připojení vašeho pracovního prostoru.
Po přihlášení se otevře domovská stránka Outline a můžete na ní začít pracovat.
Aplikace Outline pro Slack vám umožňuje vyhledávat a vkládat odkaz na jakýkoli dokument z vašeho pracovního prostoru. Chcete-li tak učinit, otevřete svůj pracovní prostor slack a zadejte
/outline <searchterm>
ve zprávách a zveřejněte je.
Automaticky vyhledá dokument související s hledaným výrazem a zveřejní jej ve vašich zprávách.
Krok 11 – Aktualizace osnovy
Chcete-li aktualizovat wiki osnovy, spusťte následující příkazy. První příkaz vypne a odstraní kontejnery. Druhý stahuje nejnovější verzi obrázků Docker pro Outline a další nástroje. Stejné příkazy můžete spustit, pokud potřebujete provést nějaké změny v souboru Docker Compose nebo souboru prostředí.
$ docker-compose down --remove-orphans$ docker-compose pullSpusťte následující příkaz pro upgrade databáze.
$ docker-compose run --rm outline yarn db:migrate --env=production-ssl-disabledZačněte nový kontejner s čerstvými obrázky, přičemž vaše data zůstanou nedotčená.
$ docker-compose up -dZávěr
Tímto končí náš návod k instalaci wiki Outline Knowledgebase na server Ubuntu 20.04 pomocí Dockeru. Pokud se chcete o Outline dozvědět více, můžete sledovat jeho oficiální dokumentaci. Pokud máte nějaké dotazy, napište je do komentářů níže.
Ubuntu