generated at
オンプレ版のセットアップ方法

オンプレ版のセットアップ方法について説明します

この文書の対象者
docker, docker-compose, linuxの運用経験がある人向けに書かれています
基本的にdockerコマンドではなくdocker-composeコマンドだけで管理できますが、dockerの知識は必要です

契約書への同意
ダウンロードを行う前に、オンプレ版 使用許諾契約書への同意が必要です。

必要な環境
Scrapbox オンプレ版は docker image をDocker Hubで限定したユーザーにのみ配布しています
以下の環境が必要になります
Docker をインストールしたマシン
macOS は Docker for mac 推奨
Docker Hub のアカウント
Docker Hubアカウントを作成し、ユーザー名をお伝え下さい。 image を pull できるよう設定します
Scrapbox を起動する環境で docker login により認証してください

通常版 (latest) と proxy 版
通常版 (latest)
通常はこちらをご利用ください。
Github認証とMicrosoft認証のライブラリに、Nota側で手を加えた物です
上記2つの認証方法において、通常版では認証が動作しない場合(外部ネットワークへのアクセスに proxy を経由する必要がある場合)はこちらご利用ください
以下の説明の docker image は notainc/scrapbox notainc/scrapbox:proxy に置き換えてお読みください
技術的な理由により google 認証はできません


インストール
インストールするフォルダを作成する
$ mkdir scrapbox
dockerは、コンテナ名としてフォルダの名前を利用します
scrapbox 以外の名前にした場合、コンテナ名も変わります
他の解説ドキュメントでも食い違ってしまうので注意してください
作成したフォルダ内に移動
$ cd scrapbox
docker-compose.yml をダウンロードして保存する
$ docker run --rm notainc/scrapbox cat docker-compose.yml > docker-compose.yml
docker-compose.yml の書き換え
必須
APP_URL に、クライアントから見たScrapboxサーバーのURLを指定してください
SECRET_TOKEN に推測されない任意の文字列を設定してください
セッションキーの暗号化に使われます



認証の設定

GitHubでOAuth Applicationを登録する
赤枠の部分は、ご自身が設定したいアプリURL( APP_URL と同じ)に書き換えてください。
上図では、URLが http://localhost:8888 になっていますが
まずはlocalhostで動作するか確認する
動作確認後、実際に運用する wiki.mycompany.com などのホスト名に変更すると、セットアップがうまくいかない場合に問題を切り分けしやすいです
callback URL(二つ目の赤枠)
アプリURL + /auth/github/callback にしてください
OAuthのClient IDとsecretを取得する
環境変数 GITHUB_CLIENT_ID , GITHUB_CLIENT_SECRET にセットしてください
docker-compose.yml に書く欄があります
GHE_HOST に、GHEのホスト名(http:// などを含む)を指定してください


Googleアカウント認証の場合
Google Cloud プロジェクトを作成済みでない場合は、 scrapbox-for-会社名 などの名称でプロジェクトを作成してください
OAuth client IDを取得する
以下の手順で進みます
APIs & Service -> Credentials -> Create credentials -> OAtuh client ID
初回はOAuth concent screenを設定する必要がある
以下のように入力します
Web Application を選択する

Authorized redirect URIs
Authorized JavaScript originsと同じホスト名にしてください
末尾に /auth/google/callback を付ける
得られた値を GOOGLE_CLIENT_ID , GOOGLE_CLIENT_SECRET にセットしてください
また、 ALLOW_EMAIL_ADDRS を指定することで、ログインできるG Suiteドメインを限定できます


Microsoft Azure ActiveDirectoryの場合

簡単にお試しする認証の場合

proxy版 の場合は以下の設定を services: > app: > environment: 直下に追加してください
HTTP_PROXY
例: HTTP_PROXY: 'http://10.0.1.36:9999'
通常版は HTTP_PROXY 設定は不要です


データの保存先の設定

Mongo DB の保存先 sevices: > mongo: > volumes:
デフォルトでは ${PWD}/mongo/data/db に設定されているので必要に応じて変更してください
注意
後半の :/data/db はコンテナ内部のパスなので変更しないでください
このフォルダを削除するとデータがすべて消失します
docker-composeをsudoで実行すると ${PWD} は変わります。適切なパスを指定してください

ファイルのアップロード
後から有効化も可能です
ややこしいのでここはskipして、まずはサーバーを起動する所までやってみましょう


動かす

起動する
docker-compose.yml をダウンロードしたディレクトリで
$ docker-compose up
http://localhost:8888/ にアクセスしてください
デーモンとして起動
$ docker-compose up -d

終了する
Ctrl+C で終了します
デーモンとして起動していた場合は
$ docker-compose down


Scrapbox の使い方
/help-jpをご覧ください

アップデート
docker-compose pull
最新のimageをdocker hubから取得して、
docker-compose down
コンテナを終了させて、次回 up で新しい image から起動
docker-compose up -d
再起動します。
更新内容はリリースノートを参照してください

バックアップをとる


なぜdocker hubを使うのか?
docker imageの配布元としてもっとも広く使われているためです