Skip to content

tarballqc/dcss-server-install

Repository files navigation

dcss-server-install

Latest release License Discord

One-command installer for an unofficial Dungeon Crawl Stone Soup WebTiles + SSH server. Multi-version DCSS, sound, scoring, password-reset emails, optional Discord bot, and HTTPS via Let's Encrypt — provisioned by a single bootstrap script and a guided wizard.

DCSS Server Installer wizard

Quick start

On a fresh Linux box (Debian / Ubuntu / Amazon Linux 2023 / RHEL / Fedora) with sudo, ports 80 / 443 / 222 open, and DNS pointing to the server:

curl -fsSL https://raw.githubusercontent.com/tarballqc/dcss-server-install/main/bootstrap.sh | bash

The bootstrap detects your distro, installs git + Docker, clones the latest release into ~/dcss, and launches the wizard. After it finishes, run ./run.sh game (~20-minute build), then browse to https://your-host/.

To inspect the bootstrap before running it: https://raw.githubusercontent.com/tarballqc/dcss-server-install/main/bootstrap.sh. Manual install steps are in docs/prereqs.md.

Features

  • DCSS 0.34 + trunk with Tutorial, Sprint, Seeded, and Descent modes for each. Older versions (0.30–0.33) opt-in.
  • Browser play (WebTiles) at https://your-host/ and SSH play (dgamelaunch) on port 222, sharing accounts and saves.
  • DWEM sound module, with three soundpacks loaded directly from nemelex.cards — credit and traffic to upstream maintainers.
  • Leaderboard, per-player profile pages, and server stats at /scores/.
  • Styled morgue / ttyrec / rcfile browsers at /morgue/, /ttyrec/, /rcfiles/.
  • Forgot Password emails with a provider picker (AWS SES, Mailgun, SendGrid, Postmark, or custom SMTP) and an optional setup-time test send.
  • Optional Discord bot posting wins, deaths, and milestones to a channel.
  • HTTPS via Let's Encrypt (host nginx + certbot) wired up by the wizard.
  • Auto-detected upstream releases with twice-daily rebuilds via cron.
  • Per-server templatingSERVER_ABBR, hostname, region, admin handle in .env flow through every user-facing surface.

Requirements

OS Linux with apt, dnf, or yum
RAM 4 GB minimum, 8 GB+ recommended
Disk 20 GB
Docker Engine 24+ with Compose v2 (auto-installed if missing)
Ports 80, 443, 222 publicly accessible
DNS A record pointing at the server before TLS provisioning

Optional: SMTP credentials for password reset, a Discord bot token.

Documentation

Prerequisites OS, RAM, ports, DNS, Docker plugins
Customizing Banner, theme, MOTD, default RC, game modes
SSH play dgamelaunch, default password, key auth
Password reset SMTP setup, STARTTLS, email template
Multi-server Templating pattern for running multiple servers
Discord bot Bot token, intents, channel config
Upgrading Auto-rebuild cron, manual upgrades, frozen versions
Troubleshooting Common gotchas

Deploy modes

./run.sh <mode> wraps bash scripts/deploy.sh <mode>:

Mode Use when Time
game Full rebuild — code, binaries (default) ~20 min
banner Anything in config/ changed (banner, theme, RC, dgamelaunch) ~5 sec
scoring scoring/generate_scores.py changed ~10 sec
web nginx config changed ~2 sec
config webtiles.py or games.d/ changed ~5 sec

Scope

This repo helps you run an unofficial DCSS server — community, private, friends-only, or dev/test. It is not a path to becoming an official DCSS server; those are reviewed and approved by the DCSS dev team in ##crawl-dev on Libera IRC. What this can do is give a prospective official-server admin something concrete to learn on.

Support

Bugs, feature requests GitHub Issues
Usage questions, sharing setups GitHub Discussions
Real-time chat Discord@tarballqc
Security disclosures tarballqc@roguelikes.gg

Contributing

Pull requests welcome. The bar:

  • Open an issue first for non-trivial changes.
  • Test on a fresh Linux VM end-to-end (./install.sh + ./run.sh game).
  • Keep server-specific identity behind __SERVER_*__ placeholders so multi-server admins keep working.
  • Update CHANGELOG.md under [Unreleased]. SemVer applies to releases.
  • Credit upstream when adding external dependencies.

Pin to a specific release for stability:

git clone --branch v1.0.7 https://github.com/tarballqc/dcss-server-install ~/dcss

License

MIT. DCSS itself is GPL-3 and is fetched from upstream at build time, not redistributed in this repo.

Credits

Built and maintained by tarballqc — admin of crawl.roguelikes.gg (CRG) and crawl-br.roguelikes.gg (CBRG).

About

All-in-one installer for a Dungeon Crawl Stone Soup WebTiles + SSH server. Multi-version, sound, scoring, password reset, Discord bot, HTTPS — one wizard, one command.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors