Skip to content

Instantly share code, notes, and snippets.

@elderica
Last active August 6, 2025 13:02
Show Gist options
  • Save elderica/8ee086b4f9be52cc9ba218be46ffdbe0 to your computer and use it in GitHub Desktop.
Save elderica/8ee086b4f9be52cc9ba218be46ffdbe0 to your computer and use it in GitHub Desktop.
# システムにインストールされているパッケージをすべて更新して再起動する。
apt update && apt upgrade
reboot
# 再びrootとしてログインし、GNU ScreenとFreecivサーバをインストールする。
apt install screen freeciv-server
# Freecivサーバを動かすユーザfreecivを作り、パスワードを設定する。
useradd -m -s /bin/bash freeciv
passwd freeciv
# ここからはfreecivユーザとして作業する。
su -l freeciv
# GNU Screenの設定をする。
tee ~freeciv/.screenrc <<EOF
startup_message off
escape ^Zz
shell bash
defscrollback 50000
EOF
# GNU Screenを立ち上げる。
screen
# umiteru2004さんのルールセットをダウンロードする。
curl -LO https://github.com/umiteru2004/freeciv/archive/refs/heads/develop.tar.gz | tar zx
mkdir -p ~/.freeciv/3.1 # Freecivのバージョンに合わせる
cp -r freeciv-develop/rulesets/civ23umi* ~/.freeciv/3.1/
rm -r freeciv-develop
# Freecivサーバの初期化スクリプトを作成する。
# cf. https://github.com/umiteru2004/freeciv/blob/develop/rulesets/sns-isls.serv
tee ~freeciv/init.serv <<EOF
cmdlevel admin first
metamessage Keep talking!
rulesetdir civ23umi
set startpos VARIABLE
set generator ISLAND
set landmass 30
set tilesperplayer 50
set timeout 60
set endturn 240
EOF
# セーブファイルの保存場所を用意する。
mkdir -p ~freeciv/saves
# Freecivサーバを起動する。XServerで取得したサブドメインを-iオプションで指定する。
# 下記のほかに、ユーザ認証やスコアログの保存に関するオプションがあります。
# -r init 初期化スクリプトを読み込ませる。
# -q 300 誰もいなくなって300秒後にゲームを終了する。
# -s saves ./savesフォルダにセーブデータを保存する。
# -m メタサーバにこのサーバを登録する。
# -i your-subdomain.xvps.jp サーバの名前
freeciv-server -r init -q 300 -s saves -m -i your-subdomain.xvps.jp
# Ctrl+zとdを押せばデタッチできます。ScreenごとFreecivサーバが終了したかのように見えますが、
# バックグラウンドで稼働し続けており、SSH接続を切ったりログアウトしても大丈夫です。
# メンテナンスするときはアタッチすることで、再びFreecivサーバの画面に戻れます。
su -l freeciv
screen -r
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment