GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Outline Knowledgebase Wiki auf Ubuntu mit Docker

Outline ist eine kollaborative Open-Source-Wissensdatenbank-Software. Sie können es verwenden, um die Dokumentation und Fanseiten zu hosten oder es sogar zum Teilen von Notizen zu verwenden. Es enthält einen Markdown-Editor und lässt sich in mehrere Dienste wie Slack, Figma, Airtable, Google Docs, Trello, Zapier, Codepen, Spotify, Youtube usw. integrieren. Es verfügt über Sicherheitsfunktionen wie Benutzergruppen mit separaten Lese- und Schreibberechtigungen und ermöglicht die öffentliche Freigabe und hat RTL-Unterstützung mit Übersetzungen in 13 Sprachen. Es wird mit React und Node.js erstellt. Es gibt zwei Möglichkeiten, Outline zu verwenden. Eine davon ist ihre Cloud-gehostete Version, oder Sie können sie auf Ihrem Server hosten.

In diesem Tutorial erfahren Sie, wie Sie Outline Wiki mithilfe von Docker auf einem Ubuntu-basierten Server installieren.

Voraussetzungen

  • Ein Server mit Ubuntu 20.04 und mindestens 1 GB RAM.

  • Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.

  • Ein Domänenname, der auf den Server zeigt. Wir verwenden https://outline.example.com für unser Tutorial.

  • Einige wichtige Apps für den Einstieg.

    $ sudo apt install nano curl wget unzip gnupg

Schritt 1 – Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.

Überprüfen Sie, ob die Firewall ausgeführt wird.

$ sudo ufw-Status

Sie sollten die folgende Ausgabe erhalten.

Status:inaktiv

SSH-Port zulassen, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.

$ sudo ufw OpenSSH zulassen

Lassen Sie auch HTTP- und HTTPS-Ports zu.

$ sudo ufw erlauben 80$ sudo ufw erlauben 443

Aktivieren Sie die Firewall.

$ sudo ufw enableCommand kann bestehende SSH-Verbindungen unterbrechen. Vorgang fortsetzen (y|n)? yFirewall ist aktiv und wird beim Systemstart aktiviert

Überprüfen Sie den Status der Firewall erneut.

$ sudo ufw-Status

Sie sollten eine ähnliche Ausgabe sehen.

Status:activeTo Aktion From-- ------ ----OpenSSH ALLOW Anywhere80 ALLOW Anywhere443 ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80 (v6) ALLOW Anywhere (v6)443 (v6) ALLOW Anywhere (v6)

Schritt 2 – Docker installieren

Wir müssen Docker mit seinem offiziellen Repository installieren. Offiziellen GPG-Schlüssel von Docker hinzufügen.

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

Fügen Sie das Docker-Repository zum System hinzu.

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

Aktualisieren Sie die APT-Repository-Liste und installieren Sie Docker.

$ sudo apt update$ sudo apt install docker-ce

Überprüfen Sie, ob die Docker-Engine korrekt installiert ist.

$ docker --versionDocker-Version 20.10.14, Build a224086

Führen Sie die folgenden Befehle aus, damit Sie sudo nicht verwenden müssen, um Docker-Befehle auszuführen.

$ sudo usermod -aG Docker ${USER}$ su - ${USER}

Schritt 3 – Docker Compose installieren

Führen Sie den folgenden Befehl aus, um Docker compose zu installieren. Docker Compose wurde kürzlich auf v2.0 aktualisiert, wodurch viele bahnbrechende Änderungen eingeführt wurden. Wir verwenden die neueste 1.x-Version, die auf der Github-Release-Seite verfügbar ist.

$ 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

Wenden Sie die ausführbare Berechtigung auf die Docker-Compose-Binärdatei an.

$ sudo chmod +x /usr/local/bin/docker-compose

Überprüfen Sie, ob Docker Compose korrekt installiert ist.

$ docker-compose --versiondocker-compose Version 1.29.2, Build 5becea4c

Installieren Sie die Befehlsvervollständigung für 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$ Quelle ~/.bashrc

Damit ist der Abschnitt zur Installation von Docker und Docker Compose des Tutorials abgeschlossen.

Schritt 4 – Umgebungsdatei für Docker erstellen

Slack-Authentifizierung konfigurieren

Outline erfordert, dass Sie einen Authentifizierungsanbieter konfigurieren. Für unser Tutorial werden wir die Slack-basierte Anmeldung konfigurieren.

Melden Sie sich mit Ihrem Slack-Konto an und besuchen Sie die API-Apps-Seite von Slack.

Klicken Sie auf App erstellen Schaltfläche, um fortzufahren. Klicken Sie auf Von Grund auf Link zum Erstellen der App.

Wählen Sie einen Namen für Ihre App und den Arbeitsbereich aus, in dem Ihre App angezeigt werden soll. Wenn Sie Ihre App nicht mit dem vorhandenen Arbeitsbereich verknüpfen möchten, können Sie einen anderen erstellen und zu diesem Schritt zurückkehren.

Klicken Sie auf App erstellen Taste, wenn Sie fertig sind. Scrollen Sie als Nächstes zum Ende der Seite und geben Sie Ihrer App eine Beschreibung, ein Symbol und eine Hintergrundfarbe.

Klicken Sie auf Änderungen speichern Taste, sobald Sie fertig sind. Wählen Sie OAuth und Berechtigungen aus Option in der linken Seitenleiste.

Fügen Sie die Umleitungs-URL https://outline.example.com/auth/slack.callback hinzu in das dafür vorgesehene Feld und klicken Sie auf Hinzufügen Schaltfläche.

Klicken Sie auf URLs speichern Schaltfläche, um fortzufahren. Scrollen Sie nach unten zu den Benutzer-Token-Bereichen Abschnitt der Seite und wählen Sie die folgenden Bereiche aus dem Dropdown-Menü aus.

  • identity.avatar
  • identity.basic
  • identity.email
  • identity.team

Gehen Sie zurück zu den Grundlegenden Informationen Seite aus der linken Seitenleiste. Kopieren Sie die Werte Client-ID und Client Secret aus ihren Feldern unter App-Anmeldedaten .

Slack-Integration konfigurieren

Besuchen Sie die Slash-Befehle Option in der linken Seitenleiste.

Klicken Sie auf Neuer Befehl Schaltfläche auf der resultierenden Seite. Geben Sie /outline ein als Befehl. Geben Sie https://outline.example.com/api/hooks.slack ein als Anfrage-URL . Geben Sie eine Beschreibung für Ihren Befehl und ein Wort als Hinweis ein. Klicken Sie auf Speichern Schaltfläche unten, wenn Sie fertig sind.

Öffnen Sie das Menü Funktionen>> Interaktivität und Verknüpfungen aus der linken Seitenleiste. Aktivieren Sie Interaktivität indem Sie die Umschaltfläche umschalten und https://outline.example.com/api/hooks.interactive einfügen als Anforderungs-URL. Klicken Sie auf Änderungen speichern Schaltfläche zum Beenden.

Öffnen Sie die Einstellungen>> App installieren Seite aus der linken Seitenleiste und klicken Sie auf In WorkSpace installieren Schaltfläche, um die App für deinen Slack-Workspace zu installieren.

Besuchen Sie die Basisinformationen Seite aus der linken Seitenleiste und kopieren Sie App ID und Verifizierungstoken Werte für die Slack-App-Integration.

S3-Anmeldeinformationen erstellen

Erstellen Sie einen S3-Bucket für Ihre Outline-Installation auf AWS oder einem beliebigen S3-kompatiblen Service. Fügen Sie nach dem Erstellen des Buckets die folgende JSON-Richtlinie zum Konfigurieren von Cross-Origin Resource Sharing (CORS) hinzu. Ersetzen Sie den Wert von AllowedOrigins mit Ihrer Gliederungs-URL.

[ { "AllowedHeaders":[ "*" ], "AllowedMethods":[ "PUT", "POST" ], "AllowedOrigins":[ "https://docs.mycompany.com" ], "ExposeHeaders" :[] }, { "AllowedHeaders":[], "AllowedMethods":[ "GET" ], "AllowedOrigins":[ "*" ], "ExposeHeaders":[] }]

Erstellen Sie einen IAM-Benutzer mit der folgenden Richtlinie. Ersetzen Sie my-bucket-name durch den tatsächlichen Namen Ihres Outline S3-Buckets.

{ "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/*" } ]} 

Nachdem Sie Ihren IAM-Benutzer erstellt haben, generieren Sie einen Zugriffsschlüssel und ein Geheimnis für Ihren Bucket-Benutzer.

Geheime Schlüssel erstellen

Die Umgebungsdatei erfordert einen geheimen Schlüssel und ein Utility-Secret. Führen Sie den folgenden Befehl zweimal aus, um beide Schlüssel zu generieren.

$ openssl rand -hex 32

Kopieren und speichern Sie diese Werte.

Erstelle und bearbeite die Umgebungsdatei

Erstellen Sie ein Verzeichnis für die Docker-Einstellungen für Outline.

$ mkdir ~/outline

Wechseln Sie in das Verzeichnis.

$ cd ~/outline

Erstellen Sie docker.env Datei und öffnen Sie sie zum Bearbeiten. Diese Datei speichert alle für die Installation erforderlichen Umgebungsvariablen.

$ nano docker.env

Fügen Sie den folgenden Code darin ein. Geben Sie den zuvor erstellten geheimen Schlüssel und das geheime utils-Geheimnis ein. Kopieren Sie die zuvor erstellten Slack-Anmeldeinformationen für die Authentifizierung und App-Integration. Geben Sie Ihre Amazon S3-Anmeldeinformationen wie unten angegeben ein.

Wenn Sie Google Analytics verwenden möchten, um die Statistiken Ihrer Outline-Anwendung zu verfolgen, geben Sie Ihre Analytics-ID in das Feld unten ein. Momentan unterstützt Outline keine GA4-Tags, daher müssen Sie Ihre alte Tracking-ID eingeben.

Für WEB_CONCURRENCY dividieren Sie Ihren Systemspeicher durch 512 und geben Sie den ungefähren Wert ein. Der FORCE_HTTPS Die Variable ist auf „false“ gesetzt, da wir Nginx als Proxyserver verwenden.

# –––––––––––––––– ERFORDERLICH ––––––––––––––––SECRET_KEY=generate_a_new_keyUTILS_SECRET=generate_a_new_keyPOSTGRES_USER=outlinepgPOSTGRES_PASSWORD=yourpasswordPOSTGRES_DB=outlineDATABASE_URL=postgres ://outlinepg:[email protected]:5432/outlineDATABASE_URL_TEST=postgres://outlinepg:[email protected]: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 =us-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# ----- ––––––––– AUTHENTIFIZIERUNG ––––––––––––––SLACK_KEY=SLACK_SECRET=# ––––––––––––––– – OPTIONAL ––––––––––––––––GOOGLE_ANALYTICS_ID=UA-XXXXXXX-1SLACK_VERIFICATION_TOKEN=your_tokenSLACK_APP_ID=A0XXXXXXXSLACK_MESSAGE_ACTIONS=trueFORCE_HTTPS=falseENABLE_UPDATES=trueWEB_CONCURRENCY=2 

Die obige Datei basiert auf der Beispieldatei aus dem Github-Repository von Outline. Wenn Sie zusätzliche Einstellungen konfigurieren müssen, können Sie diese in Ihre Datei kopieren.

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Schritt 5 – Docker-Compose-Datei für Outline erstellen

Erstellen Sie die docker-compose.yml Datei und öffnen Sie sie zum Bearbeiten.

$ nano docker-compose.yml

Fügen Sie den folgenden Code ein.

version:"3"services:outline:image:outlinewiki/outline:latest restart:always Befehl:sh -c "yarn sequelize:migrate --env=production-ssl-disabled &&Garnstart --env=production- ssl-disabled" env_file:./docker.env ports:- "3000:3000" dependent_on:- postgres - redis redis:image:redis restart:always env_file:./docker.env ports:- "6379:6379" Volumes:- ./redis.conf:/redis.conf-Befehl:["redis-server", "/redis.conf"] postgres:image:postgres restart:always env_file:./docker.env ports:- "5432:5432" Datenträger:- Datenbankdaten:/var/lib/postgresql/datavolumes:Datenbankdaten:

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Schritt 6 – Outline installieren

Installieren Sie Outline, indem Sie die Container starten.

$ docker-compose up -d

Überprüfen Sie den Status der Container.

$ Docker-PS

Schritt 7 – SSL installieren

Um ein SSL-Zertifikat mit Let’s Encrypt zu installieren, müssen wir das Certbot-Tool herunterladen. Wir werden dafür das Snapd-Paketinstallationsprogramm verwenden.

Installieren Sie das Snap-Installationsprogramm.

$ sudo apt install snapd

Stellen Sie sicher, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core &&sudo snap refresh core

Certbot installieren.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zu /usr/bin erstellen Verzeichnis.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Generieren Sie ein SSL-Zertifikat.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d outline.example.com

Der obige Befehl lädt ein Zertifikat in /etc/letsencrypt/live/outline.example.com herunter Verzeichnis auf Ihrem Server.

Erstellen Sie eine Diffie-Hellman-Gruppe Zertifikat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Erstellen Sie ein herausforderndes Webroot-Verzeichnis für die automatische Verlängerung von Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Erstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei /etc/cron.daily/certbot-renew und zum Bearbeiten öffnen.

$ sudo nano /etc/cron.daily/certbot-renew

Fügen Sie den folgenden Code ein.

#!/bin/shcertbot renew --cert-name outline.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Ändern Sie die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Schritt 8 – Nginx installieren

Ubuntu wird mit einer älteren Version von Nginx ausgeliefert. Sie müssen das offizielle Nginx-Repository herunterladen, um die neueste Version zu installieren.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg>/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ 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.list

Aktualisieren Sie die System-Repositories.

$ sudo apt update

Nginx installieren.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -vnginx-Version:nginx/1.20.2

Aktivieren Sie den Nginx-Dienst.

$ sudo systemctl enable nginx

Schritt 9 – Nginx konfigurieren

Bisher wurde Shlink auf dem lokalen System über Port 8080 ausgeführt. Wir werden Nginx verwenden, um als Reverse-Proxy für die Ausführung auf seiner Domäne zu fungieren.

Erstellen Sie eine Konfigurationsdatei für den Shlink-Server in /etc/nginx/conf.d Verzeichnis.

$ sudo nano /etc/nginx/conf.d/outline.conf

Fügen Sie den folgenden Code ein.

server { server_name outline.example.com; hören 443 ssl http2; hören [::]: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 freigegeben:MozSSL:10m; ssl_session_tickets aus; 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-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapling an; ssl_stapling_verify an; ssl_dhparam /etc/ssl/certs/dhparam.pem; Standort / { Proxy_Pass http://localhost:3000; Proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbindung "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-Schema $schema; proxy_set_header X-Forwarded-Proto $schema; Proxy-Weiterleitung aus; }}## HTTPS Redirectserver {listen 80; hör zu [::]:80; Servername outline.example.com; gib 301 https://$host$request_uri;}
zurück

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Öffnen Sie die Datei /etc/nginx/nginx.conf zum Bearbeiten.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu .

server_names_hash_bucket_size 64;

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden. Validieren Sie Nginx erneut.

Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.

$ sudo nginx -tnginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich

Starten Sie den Nginx-Server.

$ sudo systemctl start nginx

Schritt 10 – Gliederung aufrufen

Starten Sie die Domain https://outline.example.com in Ihrem Browser, und Sie werden mit der folgenden Seite begrüßt.

Klicken Sie auf Mit Slack fortfahren Schaltfläche, um sich bei Slack anzumelden und Ihren Workspace zu verbinden.

Sobald Sie angemeldet sind, öffnet sich die Outline-Startseite und Sie können damit beginnen, daran zu arbeiten.

Mit der Outline-App für Slack kannst du den Link zu einem beliebigen Dokument in deinem Workspace suchen und einfügen. Öffnen Sie dazu Ihren Slack-Workspace und geben Sie /outline <searchterm> ein in die Nachrichten eintragen und posten.

Das mit dem Suchbegriff verknüpfte Dokument wird automatisch gefunden und in Ihren Nachrichten veröffentlicht.

Schritt 11 – Gliederung aktualisieren

Führen Sie die folgenden Befehle aus, um das Outline-Wiki zu aktualisieren. Der erste Befehl fährt herunter und entfernt die Container. Der zweite zieht die neueste Version von Docker-Images für Outline und andere Tools. Sie können dieselben Befehle ausführen, wenn Sie Änderungen in der Docker-Compose-Datei oder der Umgebungsdatei vornehmen müssen.

$ docker-compose down --remove-orphans$ docker-compose pull 

Führen Sie den folgenden Befehl aus, um die Datenbank zu aktualisieren.

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

Starten Sie den neuen Container mit frischen Bildern, während Ihre Daten intakt bleiben.

$ docker-compose up -d

Schlussfolgerung

Damit ist unser Tutorial zur Installation von Outline Knowledgebase Wiki auf einem Ubuntu 20.04-Server mit Docker abgeschlossen. Wenn Sie mehr über Outline erfahren möchten, können Sie der offiziellen Dokumentation folgen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 18.04

  2. So installieren Sie Kubernetes unter Ubuntu 18.04

  3. So installieren Sie Docker Compose unter Ubuntu 18.04

  4. So installieren Sie Docker unter Ubuntu 16.04

  5. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

So installieren Sie Bitwarden unter Ubuntu 20.04

So installieren Sie Browsh unter Ubuntu 20.04

So installieren Sie Docker unter Ubuntu 20.04, 18.04, 21.04

So installieren Sie Docker unter Ubuntu 14.04

So installieren Sie Wiki.js unter Ubuntu 20.04 LTS

So installieren Sie Gitea auf Ubuntu mit Docker