GNU social JP Fossil
提供:GNU social JP Wiki
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リポジトリーの用意。
