コンテンツにスキップ

ポータブルビルド

セットアップ

Linux または Windows で、Docker を使わず、通常のプログラムとして HolyArrs を実行します。主な実行方法は、引き続き Docker です。

  • ビルドするマシンに Python 3、Git、Docker。
  • 通常のプロジェクトビルドで中身が入った Go モジュールキャッシュと、app/frontend/package-lock.json からインストールしたフロントエンドの依存パッケージ。
  • ビルド済みの Web アプリがコミットされていること。ビルドはコミット済みのソースだけを使い、コミットしていない編集は含まれません。
  1. チェックアウトから、アーカイブをビルドします:

    Terminal window
    python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/mod

    出力先には、チェックアウトの外にある新しいフォルダーを使います。ターゲットごとにアーカイブが 1 つと、SHA256SUMS ファイルが表示されます。

  2. アーカイブを SHA256SUMS と照合します。

  3. 新しいフォルダーに展開します。プログラムと設定は別々のフォルダーに分けておきます。

  4. 自分の設定パスを指定して起動します:

    Terminal window
    ./holyarrs -config /srv/holyarrs/config -addr :6262

    Windows の PowerShell では:

    Terminal window
    .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262'
  5. http://your-server:6262 を開きます。初回セットアップのウィザードが表示されます。すぐにオーナーアカウントを作成してください。最初にアクセスした人がオーナーになります。

どのユーザーで実行するか

どのユーザーで実行するか へのリンク

HolyArrs は専用のアカウントで実行し、書き込み権限は設定とメディアだけに与えます。

  • コンテナの外で root として、PUID と PGID なしで起動すると、「started as root outside a container」(コンテナの外で root として起動されました)と表示して停止します。
  • PUID と PGID を設定すると、設定フォルダーの所有者をそのユーザーに変更し、そのユーザーに切り替わります。
  • Windows では、そのアカウント用の NTFS 権限で設定フォルダーを保護します。

アーカイブはサービスをインストールしません。自動再起動とメモリのハード上限は、自分のサービスマネージャー(systemd、NSSM、タスク スケジューラ)で設定します。アプリからの再起動とバックアップの復元は、どちらもプログラムを終了し、起動し直されることを前提にしています。

アップデートと、前のバージョンに戻す方法

アップデートと、前のバージョンに戻す方法 へのリンク
  1. アプリを停止する前に、新しいアーカイブを照合します。
  2. HolyArrs を停止し、マスターキーを含めて設定フォルダーを丸ごとコピーします。または、アプリ内でバックアップを作成し、キーを別に保管します。
  3. 新しいプログラムを別のフォルダーに展開します。古いプログラムと、古い設定のコピーは残しておきます。
  4. 自分の設定を指定して、新しいプログラムを起動します。サインインでき、/health に running と表示されれば成功です。

バックアップを参照してください。

症状 原因 対処
「started as root outside a container」 root として起動した 専用のユーザーで実行するか、PUID と PGID を設定します。
復元のあとアプリが終了する 復元はデータを準備して、コード 75 で終了する もう一度起動して適用します。サービスマネージャーで再起動するように設定します。
Linux で HTTPS の呼び出しが失敗する システムの CA 証明書がない インストールします。
ビルドで、出力先がすでにあると言われる 既存の出力フォルダーは拒否される 新しいフォルダーを選びます。
ビルドのオプション
オプション 内容 既定値
--targets ビルドする対象を、カンマ区切りで一部だけ指定 linux-amd64,linux-arm64,linux-armv7,windows-amd64
--low-resource 各ビルダーコンテナに 1 CPU、2 GiB、256 プロセスを割り当て、Go はパッケージを 1 つずつビルドします。アーカイブ作成は引き続きホスト上で、この上限の外で実行されます。 オフ

ビルドは、プロジェクトでバージョンを固定した Go ビルダーイメージの中で、ネットワークをオフにして実行されるので、何もダウンロードしません。モジュールキャッシュは読み取り専用でマウントされます。ターゲットが 1 つでも失敗すると、出力フォルダーは残りません。コミットはバージョン番号に追加され、プログラムに組み込まれます。アプリとそのバックアップは、この値を報告します。

アーカイブに含まれるもの

プログラム、ライセンス、サードパーティの通知、ガイド、ソースのマニフェスト、パッケージの識別情報です。別のソースアーカイブに、プロジェクトのソースと Go の依存パッケージが入っています。バイナリの隣に置いておいてください。

SHA256SUMS は、ファイルが一致することを証明します。署名ではありません。同じコミット、バージョン、入力からは同じアーカイブができるので、ビルドし直して確かめられます。

実行時のメモ
項目 詳細
設定パス 既定値は /config。必ず -config を渡し、ローカルディスク上を指定します。
メモリの目標値 GOMEMLIMIT なしでは 384 MiB。割り当てるメモリの約 80 パーセントに設定します。目標値であり、ハード上限ではありません。
低メモリモード Linux では、約 2.5 GiB 以下で自動的にオンになります。目標値はメモリの 4 分の 1 に下がり、192 ~ 384 MiB の範囲になります。HOLYARRS_LOW_MEMORY=1 または 0 で決められます。
Node 実行には不要です。
ハードリンク ダウンロードとライブラリフォルダーを 1 つのファイルシステムに置きます。

HolyArrs は無料です。時間の節約になったら、GitHub でスターを付ける、スポンサーになる、コーヒーをおごるのいずれかで応援してください。