オンプレ版のセットアップ方法
この文書の対象者
docker, docker-compose, linuxの運用経験がある人向けに書かれています
契約書への同意
必要な環境
以下の環境が必要になります
Docker をインストールしたマシン
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を登録する
https://gyazo.com/8d81a4c1831019804d2d9e411eee3036
赤枠の部分は、ご自身が設定したいアプリ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を選択する
https://gyazo.com/95667f7e911572b2a4343d902e946bb9
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
デーモンとして起動
$ docker-compose up -d
終了する
Ctrl+Cで終了します
デーモンとして起動していた場合は
$ docker-compose down
Scrapbox の使い方
アップデート
docker-compose pull
最新のimageをdocker hubから取得して、
docker-compose down
コンテナを終了させて、次回 up で新しい image から起動
docker-compose up -d
再起動します。
バックアップをとる
docker imageの配布元としてもっとも広く使われているためです