Installation
All Ishtaria components are Debian packages for Debian and Ubuntu on x86-64. Windows and macOS are not supported.
Packages
Package |
Contents |
|---|---|
|
world server, systemd unit, |
|
game client ( |
|
planet generator command-line tool |
|
base ruleset |
|
federation schemas in |
|
story datadisk: the Epic of Gilgamesh on the Early Dynastic Earth |
|
story datadisk: The End Land |
|
tutorial datadisk demonstrating every implemented feature |
|
this documentation in HTML |
Adding the repository
Packages are published in the VitexSoftware APT repository:
echo "deb http://repo.vitexsoftware.com $(lsb_release -sc) main" \
| sudo tee /etc/apt/sources.list.d/vitexsoftware.list
sudo wget -O /etc/apt/trusted.gpg.d/vitexsoftware.gpg \
http://repo.vitexsoftware.com/keyring.gpg
sudo apt update
Playing
sudo apt install ishtaria-client
Running a world
sudo apt install ishtaria-server ishtaria-content ishtaria-worldgen postgresql
sudoedit /etc/ishtaria/server.toml # set server_name (permanent)
sudo ishtaria-server-init # generate a planet and import it (once)
sudo systemctl enable --now ishtaria-server
journalctl -u ishtaria-server -f
The package creates the PostgreSQL role and database ishtaria when
PostgreSQL is running during installation (peer authentication over the local
socket). It never touches an existing role or database. ishtaria-server-init
[seed] [face_size] runs ishtaria-worldgen and imports the result; the
server refuses to replace an already imported world.
Running a world with a story datadisk
Datadisks are installed to /usr/share/ishtaria/datadisks/<id>/ and chosen when the
world is generated; a disk’s version and content hash are pinned to the world, so changing
or upgrading a disk means generating a new world. The example below creates the Gilgamesh
world (an empty database is required; the server never replaces an imported world):
sudo apt install ishtaria-server ishtaria-content ishtaria-worldgen \
ishtaria-datadisk-gilgamesh postgresql
sudoedit /etc/ishtaria/server.toml # set server_name (permanent)
ishtaria-server --list-datadisks
sudo ishtaria-server-init "" 256 gilgamesh
sudo systemctl enable --now ishtaria-server
curl -s http://127.0.0.1:7400/world # "datadisks" must list gilgamesh
The packaged service starts on installation; stop it and fix server_name before the first
start, because the name is permanent once a world row exists. A world with a datadisk that
brings its own planet (Gilgamesh) is rendered from the disk’s rasters instead of procedural noise.
Put the server behind a TLS reverse proxy before exposing accounts publicly; see
Hardening a public world. To recreate a world, drop and recreate the database from template0
(createdb -T template0 -O ishtaria ishtaria) and run ishtaria-server-init again; this
deletes all accounts and changes and needs a backup (Backup, restore and upgrade) and the operator’s consent.
Administration
sudo apt install ishtaria-admin
sudo -u ishtaria ishtaria-admin
ishtaria-admin is a text-mode tool that works directly on the server’s
database: save, load, rename, delete and export world maps; rename, ban and
delete players; manage portals to linked worlds; and schedule a server
shutdown. A scheduled shutdown shows players a non-dismissable system notice
with a countdown (messages in GET /world) and then stops the service
cleanly (exit status 0, so systemd does not restart it). Portals are records
only until federation is implemented. These functions are deliberately not part
of ishtaria-client.
The first-time setup wizard (F7, also offered when no world exists yet) stops
the ishtaria-server systemd unit, drops the public schema (all accounts and
world data), generates and imports a new planet, then starts the service again.
On an existing world the operator must type RESET. This replaces the manual
dropdb / createdb / ishtaria-server-init sequence.
The ishtaria-server package installs /etc/sudoers.d/ishtaria-server so
the ishtaria user can start, stop and restart the systemd unit without a
password (used by Start service / Stop service and the setup wizard in the
admin tool).