GNU/Linux >> Linux の 問題 >  >> Ubuntu

Dockerを使用してUbuntuにOutlineKnowledgebaseWikiをインストールする方法

アウトラインは、オープンソースの協調的なナレッジベースソフトウェアです。ドキュメントやファンページをホストしたり、メモの共有に使用したりするために使用できます。マークダウンエディターが含まれており、Slack、Figma、Airtable、Google Docs、Trello、Zapier、Codepen、Spotify、Youtubeなどの複数のサービスと統合されています。個別の読み取りおよび書き込み権限を持つユーザーグループなどのセキュリティ機能があり、パブリック共有が可能です13言語の翻訳でRTLをサポートしています。 ReactとNode.jsを使用して構築されています。アウトラインの使用方法は2つあります。 1つはクラウドでホストされているバージョンですが、サーバーでホストすることもできます。

このチュートリアルでは、Dockerを使用してUbuntuベースのサーバーにOutlineWikiをインストールする方法を説明します。

前提条件
  • 1GB以上のRAMを搭載したUbuntu20.04を実行しているサーバー。

  • sudo権限を持つroot以外のユーザー。

  • サーバーを指すドメイン名。 https://outline.example.comを使用します チュートリアル用です。

  • 始めるために必要なアプリはほとんどありません。

     $ sudo apt install nano curl wget unzip gnupg 
ステップ1-ファイアウォールを構成する

最初のステップは、ファイアウォールを構成することです。 Ubuntuにはデフォルトでufw(Uncomplicated Firewall)が付属しています。

ファイアウォールが実行されているかどうかを確認します。

 $ sudo ufw status 

次の出力が得られるはずです。

ステータス:非アクティブ

SSHポートを許可して、ファイアウォールが有効にしたときに現在の接続を切断しないようにします。

 $ sudo ufw allow OpenSSH 

HTTPポートとHTTPSポートも許可します。

 $ sudo ufw allow 80 $ sudo ufw allow 443 

ファイアウォールを有効にします。

 $ sudo ufw enableCommandは、既存のssh接続を中断する可能性があります。操作を続行しますか(y | n)? yFirewallはアクティブであり、システムの起動時に有効になります

ファイアウォールのステータスをもう一度確認してください。

 $ sudo ufw status 

同様の出力が表示されるはずです。

ステータス:activeTo Action From-- ------ ---- OpenSSH ALLOW Anywhere80 ALLOW Anywhere443 ALLOW AnywhereOpenSSH(v6)ALLOW Anywhere(v6)80(v6)ALLOW Anywhere(v6)443(v6)ALLOW Anywhere (v6)
ステップ2-Dockerをインストールする

公式リポジトリを使用してDockerをインストールする必要があります。 Dockerの公式GPGキーを追加します。

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

Dockerリポジトリをシステムに追加します。

 $ 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 

APTリポジトリリストを更新し、Dockerをインストールします。

 $ sudo apt update $ sudo apt install docker-ce 

Dockerエンジンが正しくインストールされているかどうかを確認します。

 $ docker --versionDockerバージョン20.10.14、ビルドa224086 

Dockerコマンドを実行するためにsudoを使用する必要がないように、次のコマンドを実行します。

 $ sudo usermod -aG docker $ {USER} $ su-$ {USER} 
ステップ3-DockerComposeをインストールする

次のコマンドを実行して、Dockercomposeをインストールします。 Docker Composeは最近v2.0に更新され、多くの重大な変更が導入されました。 Githubリリースページから入手できる最新の1.xバージョンを使用します。

 $ 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 

Docker作成バイナリに実行可能ファイルのアクセス許可を適用します。

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

DockerComposeが正しくインストールされているかどうかを確認します。

 $ docker-compose --versiondocker-composeバージョン1.29.2、ビルド5becea4c 

Dockercomposeのコマンド補完をインストールします。

 $ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-compose $ソース〜/ .bashrc 

これで、チュートリアルのDockerとDocker構成のインストールセクションが完了しました。

ステップ4-Docker用の環境ファイルを作成する Slack認証を構成する

アウトラインでは、認証プロバイダーを構成する必要があります。このチュートリアルでは、Slackベースのログインを構成します。

Slackアカウントでサインインし、SlackのAPIアプリページにアクセスします。

アプリの作成をクリックします ボタンをクリックして続行します。 最初からをクリックします アプリを作成するためのリンク。

アプリの名前を選択し、アプリを表示するワークスペースを選択します。アプリを既存のワークスペースに関連付けたくない場合は、別のワークスペースを作成して、この手順に戻ることができます。

アプリの作成をクリックします 終了したらボタン。次に、ページの一番下までスクロールして、アプリに説明、アイコン、背景色を入力します。

変更を保存をクリックします 終了したらボタン。 OAuthと権限を選択します 左側のサイドバーからのオプション。

リダイレクトURLを追加しますhttps://outline.example.com/auth/slack.callback 表示されたボックスで、追加をクリックします ボタン。

URLの保存をクリックします ボタンをクリックして続行します。 ユーザートークンスコープまで下にスクロールします ページのセクションで、ドロップダウンメニューから次のスコープを選択します。

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

基本情報に戻ります 左側のサイドバーからのページ。値をコピーしますクライアントID およびクライアントシークレット アプリの認証情報の下のボックスから 。

Slack統合を構成する

スラッシュコマンドにアクセスします 左側のサイドバーからのオプション。

新しいコマンドをクリックします 結果のページのボタン。 /outlineと入力します コマンドとして。 https://outline.example.com/api/hooks.slackと入力します リクエストURLとして 。コマンドの説明とヒントとして単語を入力します。 保存をクリックします 終了したら下部にあるボタン。

メニューを開きます機能>>インタラクティブ機能とショートカット 左側のサイドバーから。 双方向性を有効にする トグルボタンを切り替えて、https://outline.example.com/api/hooks.interactiveを貼り付けます リクエストURLとして。 変更を保存をクリックします ボタンを押して終了します。

設定>>アプリのインストールを開きます 左側のサイドバーからページを表示し、WorkSpaceにインストールをクリックします。 ボタンをクリックして、Slackワークスペース用のアプリをインストールします。

基本情報にアクセスしてください 左側のサイドバーからページを作成し、アプリIDをコピーします および検証トークン Slackアプリ統合の値。

S3クレデンシャルを作成する

AWSまたはS3互換サービスにOutlineをインストールするためのS3バケットを作成します。バケットを作成した後、クロスオリジンリソースシェアリング(CORS)を構成するための次のポリシーJSONを追加します。 AllowedOriginsの値を置き換えます アウトラインURLを使用します。

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

次のポリシーを使用してIAMユーザーを作成します。 my-bucket-nameを置き換えます アウトライン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 / * "}]} 

IAMユーザーを作成したので、バケットユーザーのアクセスキーとシークレットを生成します。

秘密鍵を作成する

環境ファイルには、秘密鍵とユーティリティシークレットが必要です。次のコマンドを2回実行して、両方のキーを生成します。

 $ openssl rand -hex 32 

これらの値をコピーして保存します。

環境ファイルの作成と編集

アウトラインのDocker設定用のディレクトリを作成します。

 $ mkdir〜/outline 

ディレクトリに切り替えます。

 $ cd〜/outline 

docker.envを作成します ファイルを開き、編集用に開きます。このファイルには、インストールに必要なすべての環境変数が保存されます。

 $ nano docker.env 

次のコードを貼り付けます。以前に作成した秘密鍵とutils秘密を入力します。認証とアプリ統合のために以前に作成したSlackクレデンシャルをコピーします。以下に指定されているようにAmazonS3クレデンシャルを入力します。

Google Analyticsを使用してOutlineアプリケーションの統計を追跡する場合は、下のフィールドにAnalyticsIDを入力します。現在、OutlineはGA4タグをサポートしていないため、古いトラッキングIDを入力する必要があります。

WEB_CONCURRENCYの場合 変数、システムRAMを512で除算し、概算値を入力します。 FORCE_HTTPS Nginxをプロキシサーバーとして使用しているため、変数はfalseに設定されています。

#––––––––––––––––必須–––––––––––––––– SECRET_KEY =generate_a_new_keyUTILS_SECRET =generate_a_new_keyPOSTGRES_USER =outlinepgPOSTGRES_PASSWORD =yourpasswordPOSTGRES_DB =outlineDATABASE_URL =post // =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_BU –––––––––認証–––––––––––––– SLACK_KEY = SLACK_SECRET =#––––––––––––––– –オプション–––––––––––––––– GOOGLE_ANALYTICS_ID =UA-XXXXXXX-1SLACK_VERIFICATION_TOKEN =your_tokenSLACK_APP_ID =A0XXXXXXXSLACK_MESSAGE_ACTIONS =trueFORCE_HTTPS =falseENABLE_UPDATES =trueWEB_CONCURRENCY =2 pre> 

上記のファイルは、OutlineのGithubリポジトリのサンプルファイルに基づいています。追加の設定を構成する必要がある場合は、それらをファイルにコピーできます。

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

ステップ5-アウトライン用のDocker作成ファイルを作成する

docker-compose.ymlを作成します ファイルを開いて編集します。

 $ nano docker-compose.yml 

次のコードを貼り付けます。

 version: "3" services:outline:image:outlinewiki / overlay:latest restart:always command:sh -c "yarn sequelize:migrate --env =Production-ssl-disabled &¥ start --env =Production- ssl-disabled "env_file:./docker.envポート:-" 3000:3000 "depends_on:-postgres --redis redis:image:redis restart:常にenv_file:./docker.envポート:-" 6379:6379 "ボリューム: --./redis.conf:/redis.confコマンド:["redis-server"、 "/redis.conf"] postgres:image:postgres restart:常にenv_file:./docker.envポート:-"5432:5432"ボリューム:-database-data:/ var / lib / postgresql / datavolumes:database-data:

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

ステップ6-インストールの概要

コンテナを起動してアウトラインをインストールします。

 $ docker-compose up -d 

コンテナのステータスを確認してください。

 $ docker ps 
ステップ7-SSLをインストールする

Let's Encryptを使用してSSL証明書をインストールするには、Certbotツールをダウンロードする必要があります。そのためにSnapdパッケージインストーラーを使用します。

Snapインストーラーをインストールします。

 $ sudo apt install snapd 

Snapdのバージョンが最新であることを確認してください。

 $ sudo snap install core &&sudo snap refresh core 

Certbotをインストールします。

 $ sudo snap install --classic certbot 

次のコマンドを使用して、/usr/binへのシンボリックリンクを作成してCertbotコマンドを実行できるようにします。 ディレクトリ。

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

SSL証明書を生成します。

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

上記のコマンドは、証明書を/etc/letsencrypt/live/outline.example.comにダウンロードします。 サーバー上のディレクトリ。

Diffie-Hellmanグループを生成します 証明書。

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

Let'sEncryptの自動更新用のチャレンジWebルートディレクトリを作成します。

 $ sudo mkdir -p / var / lib /letsencrypt 

Cronジョブを作成してSSLを更新します。毎日実行され、証明書を確認し、必要に応じて更新します。そのためには、まず、ファイル/etc/cron.daily/certbot-renewを作成します。 開いて編集します。

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

次のコードを貼り付けます。

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

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

タスクファイルの権限を変更して実行可能にします。

 $ sudo chmod + x /etc/cron.daily/certbot-renew 
ステップ8-Nginxをインストールします

Ubuntuには古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

Nginxの署名キーをインポートします。

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

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

システムリポジトリを更新します。

 $ sudo apt update 

Nginxをインストールします。

 $ sudo apt install nginx 

インストールを確認します。

 $ nginx -vnginxバージョン:nginx / 1.20.2 

Nginxサービスを有効にします。

 $ sudo systemctl enable nginx 
ステップ9-Nginxを構成する

これまで、Shlinkはポート8080を介してローカルシステムで実行されていました。Nginxを使用して、そのドメインで実行するリバースプロキシとして機能します。

/etc/nginx/conf.dにShlinkサーバーの構成ファイルを作成します ディレクトリ。

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

次のコードを貼り付けます。

サーバー{server_nameoutline.example.com; 443sslhttp2をリッスンします。リッスン[::]: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-SHA384:ECDHE-ECDSA-CHACHA20-POLY -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;場所/{proxy_passhttp:// localhost:3000; proxy_set_headerアップグレード$http_upgrade; proxy_set_header接続"アップグレード"; proxy_set_header Host $ host; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header Host $ host; proxy_set_headerホスト$http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_headerX-スキーム$scheme; proxy_set_header X-Forwarded-Proto $ schema; proxy_redirect off; }} ## HTTPS Redirectserver {listen 80;聞く[::]:80; server_nameoutline.example.com;戻り値301https:// $ host $ request_uri;} 

終了したら、 Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

ファイル/etc/nginx/nginx.confを開きます 編集用。

 $ sudo nano /etc/nginx/nginx.conf 

include /etc/nginx/conf.d/*.conf;の行の前に次の行を追加します 。

 server_names_hash_bucket_size 64; 

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。 Nginxを再度検証します。

Nginx構成ファイルの構文を確認します。

 $ sudo nginx -tnginx:構成ファイル/etc/nginx/nginx.conf構文はoknginx:構成ファイル/etc/nginx/nginx.confテストは成功しました

Nginxサーバーを起動します。

 $ sudo systemctl start nginx 
ステップ10-アクセスの概要

ドメインhttps://outline.example.comを起動します ブラウザで、次のページが表示されます。

Slackを続行をクリックします ボタンをクリックしてSlackでログインし、ワークスペースに接続します。

ログインすると、アウトラインホームページが開き、作業を開始できます。

Slackのアウトラインアプリを使用すると、ワークスペース内から任意のドキュメントへのリンクを検索して貼り付けることができます。これを行うには、Slackワークスペースを開き、/outline <searchterm>と入力します。 メッセージに入れて投稿してください。

検索語に関連するドキュメントが自動的に検索され、メッセージに投稿されます。

ステップ11-アウトラインの更新

アウトラインWikiを更新するには、次のコマンドを実行します。最初のコマンドは、コンテナーをシャットダウンして削除します。 2つ目は、Outlineやその他のツール用の最新バージョンのDockerイメージを取得します。 Docker構成ファイルまたは環境ファイルに変更を加える必要がある場合は、同じコマンドを実行できます。

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

次のコマンドを実行して、データベースをアップグレードします。

 $ docker-compose run --rmoutlineyarn db:migrate --env =Production-ssl-disabled 

データをそのまま維持しながら、新しいコンテナで新しいコンテナを起動します。

 $ docker-compose up -d 
結論

これで、Dockerを使用してUbuntu20.04サーバーにOutlineKnowledgebaseWikiをインストールするためのチュートリアルは終了です。アウトラインについて詳しく知りたい場合は、公式ドキュメントに従ってください。ご不明な点がございましたら、下のコメント欄に投稿してください。


Ubuntu
  1. Ubuntu18.04にDockerをインストールする方法

  2. Ubuntu16.04にDockerをインストールする方法

  3. Ubuntu 18.04 / Ubuntu 18.10 /Ubuntu19.04にDockerをインストールする方法

  1. Ubuntu18.04にKubernetesをインストールする方法

  2. Ubuntu18.04にDockerComposeをインストールする方法

  3. UbuntuにRancherをインストールする方法

  1. Ubuntu20.04にDockerComposeをインストールする方法

  2. Ubuntu22.04にDockerをインストールする方法

  3. Ubuntu20.04にDockerをインストールする方法