GNU social JP Fossil

提供:GNU social JP Wiki
2024年12月29日 (日) 09:19時点におけるGnusocialjp (トーク | 投稿記録)による版 (Install)

About

GNUプロジェクトのソースコードのホスティングには、フリーソフトを使用したサービスしか使用できない。

それもあって、リポジトリーを自己ホストするために調査した。

  • phorge
  • trac
  • kallithea
  • fossil

上記4ソフトのインストール・動作を2024-12に検証 (https://gnusocial.jp/notice/8089277) して、その結果fossilに決めた。fossslが唯一以下を満たした。

  • CGIで動作
  • リポジトリーと管理UIの統合

Tracもインストールはできたが、これはBTS機能のみで、リポジトリー自体のホスティングはgitwebやcgitなど別サービスが必要だった。2個に分かれるのが面倒くさい。

FossilはSQLiteの著者が管理するプロジェクト。Gitが使いにくいと思っており、そこをうまく解消している。さすがのプロジェクト。

Install

Condition

wiki.gnusocial.jpなどをホストしているCORESERVERに追加する形でインストールする。

  • ドメイン=fossil.gnusocial.jp
  • ホスティングサービス=CORESERVER
  • 方式=CGI

Binary

情報源=Fossil: A Coherent Software Configuration Management System

インストールに先立って、fossilのバイナリーを取得する。

ソースコードからコンパイルするか、コンパイル済みバイナリーを配置するだけ。設置先の共用サーバーにログインして、以下のコマンドを実行する。

VER=2.25
mkdir -p ~/.local/stow/fossil-$VER ~/.local/bin
cd ~/.local/stow/fossil-$VER
curl -O https://fossil-scm.org/home/uv/fossil-linux-x64-$VER.tar.gz
tar -xf fossil-$VER.*
ln -fns ../stow/fossil-$VER/fossil ../../bin/

.bashrcなどに以下を記入して、PATHを設定しておく。

export PATH="$PATH:~/.local/bin"

CGI

バイナリーを取得したので、CGIで動作させるために設定する。

ディレクトリー構成は以下とする。

  • public_html
    • fossil: fossilリポジトリーの格納場所。
    • fossil.gnusocial.jp: 公開ディレクトリー。
      • .htaccess
      • fossil: FossilのCGI。
      • index.html

以下のコマンドでディレクトリーを作ってCGIファイルなどを配置する。

mkdir -p ~/public_html/fossil ~/public_html/fossil.gnusocial.jp
cd ~/public_html/fossil.gnusocial.jp

cat <<-'EOT' >.htaccess
<FilesMatch fossil$>
	SetHandler cgi-script
</FilesMatch>
EOT

cat <<-EOT >fossil
#!$HOME/.local/bin/fossil
directory: $HOME/public_html/fossil
notfound: /fossil
repolist
EOT

cat <<-'EOT' >index.html
<!DOCTYPE html>
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="UTF-8" />
    <meta name="author" content="SENOO, Ken" />
    <title>GNU social JP Fossil</title>
  </head>
  <body>
    <h1>GNU social JP Fossil</h1>
    <main>
<section>
<h1>About</h1>
<p>This site hosts GNU social fossil repositories.<p>
</section>
<section>
<h1>Link</h1>
<ul>
<li><a href="fossil">fossil</a>: repository list.</li>
<li><a href="fossil/gnusocial">fossil/gnusocial</a>: GNU social main repository</li>
</ul>
</section>
    </main>
  </body>
</html>

index.htmlは仮。必要になったタイミングで、内容やスタイルを改良する。

これで一旦稼働する。あとはFossilリポジトリーの用意。