オンプレ版のセットアップ方法
この文書の対象者
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を登録する
赤枠の部分は、ご自身が設定したいアプリ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
デーモンとして起動
$ 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の配布元としてもっとも広く使われているためです