Michiko Ohishi's (大石 理子) website, Under rennovation 改装工事中🛠️

  

Technical logs - invisible yet indispensable -

Gitea server setup (2025-10-20)


いわば「国産」の空気シャワー・シミュレーションツールCOSMOS-X(https://www.icrr.u-tokyo.ac.jp/cosmos/) の開発プラットフォームとして、 Gitea (GitLab の軽量版とも言える、webUIを備えたコード管理ツール)のサーバー構築を行ったので、ごく簡単なメモを残しておく。
  • サーバーは「さくらのVPS」を利用。所外利用者が多いため、ICRR内でのサーバー構築は選択せず。
  • OS は提示された複数の候補から選択可能であったが、Red Hat系のAlma Linux 9 を選択。
  • OS上のnginxを直接使用するのではなく、Podman (Docker互換) コンテナを使用。 また、rootではなく一般ユーザー権限でコンテナを起動する方式を採用した。rootless Podman によるGitea の運用についてはGitea公式ドキュメント(https://docs.gitea.com/next/installation/install-with-docker-rootless)を参照。
  • rootless 環境ではポート443を直接使用できない。デフォルトではポート3000が使用されるため、外部からhttps でアクセスする際の構成は以下の通り。
    • OS側でもnginxインストール、サービス起動。
    • OS側のfirewall でポート443(HTTPS), および2222(SSH用)を開放する。
    • 「さくらのVPS」では、OS側のfirewall開放に加え、契約者のみ操作可能なコントロールパネル上のパケットフィルター設定でポート443と2222を開放する必要がある。また、SSL証明書を取得する際にポート80でのアクセスが必要なため、一時的にポート80 も開放しておく。
    • サーバーのドメイン名に対して、Let's encrypt で SSL証明書を取得し、適切な場所に配備する。certbot がほぼ自動で処理してくれる。
    • SSL証明書の取得後は、ポート80 に対してfirewallを閉じるのを忘れずに。
    • コンテナ起動時、コンテナ内のポート3000 とOSのポート 3000を対応させる(SSH について同様に ポート2222を対応させる)
    • ポート3000自体は外部に対して開放せず、外部からポート443へのhttps://[servername]/gitea のようなアクセスがあった際に、ポート3000 上のサービス(https://[servername]:3000) へnginxのリバースプロキシ設定で転送する。これを nginx の設定ファイル (conf) に記述。
    • certbot の自動証明書更新設定、およびPodmanコンテナのデーモン化(OS再起動時に自動起動)を忘れずに。

More in this category