> *experience the game the way it should have always been*
Self-hosted Purpur Minecraft server powering [racked.ru](https://racked.ru). Microsoft-free, privacy-first, fully open source. Deployed via Docker on Debian (`nullstone`, 192.168.0.100), public at `mc.racked.ru:25565`.
This repo is the **server** half. Configs, plugin manifest, deploy scripts. No plugin jars committed — acquired at boot from FOSS sources (see [PLUGINS.md](docs/PLUGINS.md)).
> *all software should be free and open-source* — see [MISSION.md](MISSION.md), [THANKS.md](THANKS.md)
## Stack
| Layer | Choice | Why |
|-------|--------|-----|
| Server jar | Purpur (latest stable build) | Paper fork w/ extra config knobs |
| Container | `itzg/minecraft-server:latest` | Auto-DL of jar + plugins via env |
- [ ]**[P3]** (deferred — later project) Add Matrix bridge alongside DiscordSRV — use existing Tuwunel homeserver (txt.s8n.ru) as FOSS comm channel
Medium priority — license/dependency cleanup:
- [x] CoreProtect-CE — **Keep** (acknowledged license exception; reliability > purity per operator). Revisit if/when Prism reaches feature parity on sign/container/entity rollback at scale.
- [ ]**[P2]** Verify license: TAB
Low priority — consolidation to native:
- [ ]**[P2]** Verify ComfyWhitelist license — keep if FOSS (provides name-based hot-reload whitelist w/o Mojang API; native `/whitelist` is UUID-based and unsafe on offline-mode). Swap to FOSS name-based alt if license unclear.
- [ ]**[P3]** Drop HelpCommand → native `/help` + `commands.yml`
- [ ]**[P3]** Drop PhantomSMP → native paper config + vanilla datapack
- [ ]**[P3]** Audit MarriageMaster usage — drop or fork under FOSS license
Phase 4 — long-term refactor:
- [ ]**[P3]** EssentialsX split into modular FOSS plugins (HuskHomes for teleport, etc)
- [ ]**[P3]** Evaluate dropping ProtocolLib in favor of PacketEvents-only stack
- [ ]**[P3]** PlaceholderAPI → MiniPlaceholders (Adventure-native) when ecosystem catches up
- [ ]**[P3]** Self-hosted skin server (replace Mojang/MineSkin dependency)
### Documentation
- [x] Per-plugin doc files under `docs/plugins/<name>.md` — all 18 active plugins documented (license, source, version, notes)
- [ ]**[P1]** `AGREEMENTS.md` — high-level overview of any custom dev-rights deals (no NDAs broken)
- [ ]**[P1]** Cross-link launcher repo in README + MISSION when public
- [ ]**[P2]** Cross-link client repo in README + MISSION when public
- [ ]**[P2]** `docs/SKIN_HOSTING.md` — once skin server self-hosted
- [ ]**[P3]** mkdocs site auto-built from `docs/` for racked.ru
### Community / process
- [ ]**[P1]** Publish to GitHub under racked-rust org (or chosen org name)
- [ ]**[P3]** Discussion category for plugin proposals
### Backlog (deferred, low priority)
- [ ]**[P3-deferred]** Self-host LuckPerms web editor + bytebin on `perms.racked.ru` — eliminates Cloudflare dep that bit us during a CF outage (web editor failed; in-game `/lp` commands still worked). Both components are MIT FOSS (`github.com/LuckPerms/web`, `github.com/lucko/bytebin`). Workaround for now: use `/lp` commands only, skip GUI entirely. Revisit when other Phase 4 work is done — small QoL win, big setup cost.
### Done
- [x] Backup old server → `_archive/minecraft-old-2026-04-27.tar.gz`
Configs + scripts in this repo: MIT. Plugin jars are not redistributed here — they're acquired at deploy time from upstream sources, each under its own license. See [THANKS.md](THANKS.md) for per-plugin license attribution.