self-hosted pretendo pile of scripts (dockerless) (splatoon only so far feel free to extendo)
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-21 03:56:54 +02:00
checkout The 2026-07-19 06:03:01 +02:00
patch fixes for bash's posix mode and account's fake cdn 2026-07-20 19:27:17 +02:00
sitepatch add sitepatch system 2026-07-21 03:55:09 +02:00
.gitignore add sitepatch system 2026-07-21 03:55:09 +02:00
001_getrepos The 2026-07-19 06:03:01 +02:00
002_generate_env fixes for bash's posix mode and account's fake cdn 2026-07-20 19:27:17 +02:00
003_apply_patches add sitepatch system 2026-07-21 03:55:09 +02:00
004_build_all The 2026-07-19 06:03:01 +02:00
005_create_dbs fixes for bash's posix mode and account's fake cdn 2026-07-20 19:27:17 +02:00
006_generate_configs add sitepatch system 2026-07-21 03:55:09 +02:00
007_start_tmux oops forgot 2026-07-19 06:11:42 +02:00
008_stop_tmux oops forgot 2026-07-19 06:11:42 +02:00
009_seed_boss The 2026-07-19 06:03:01 +02:00
010_register fixes for bash's posix mode and account's fake cdn 2026-07-20 19:27:17 +02:00
config.sample fix bad account.dat and bad BOSS urls and bad chat config 2026-07-20 03:24:10 +02:00
README.md mention sitepatches in main repo 2026-07-21 03:56:54 +02:00

Pretentious

Selfhosted Pretendo setup scripts

Heavily based on pretendo-docker, including some lifted scripts. I guess this repo has to be AGPL3 too then? This version is dockerless and also slightly more up to date.

Undertested.

Requirements

Not included in the box are:

  • a Linux server
  • git
  • go (new-ish version, 1.25 or something?)
  • PostgreSQL (fresh setup works fine)
  • mongodb (fresh setup works fine)
  • nodejs
  • npm
  • tmux
  • nginx
  • a (sub)?domain to run it all, and a wildcard for all of its subdomains, directed at the server (for example, *.pre.szy.lol,pre.szy.lol192.168.254.99).
    People smarter than me are invited to compute the actual list of subdomains required.

Additionally, ufw is not required, but you should use a firewall and this will generate scripts for that specific one. If you use something else, you can easily see the ports that need to be open in the generated ufw file.

I set it up to use no SSL, but browsers might be upset at the result. Use Chromium 87 instead.

Setup

Copy the contents of the repo into a folder. You might be able to get away with using a clone directly, but Git might not be happy with repository nesting. If you have custom patches you want to apply, add them to sitepatch (see its README, some patch examples in repo issues).

Copy config.sample to config. In it, set up your postgres and mongo creds. A default install probably needs none, instead only accepting requests from localhost, which is fine for us. Then set your main domain and its IP. If you already have things running on your machine that would conflict with the suggested ports, you can change them here too.

Run, in order, scripts 001 to 006. Things will happen. You are advised to at least skim all scripts ran beforehand. They are split so you can rerun them if things break or need updating.

Script 006 will generate for you a config file to toss into nginx (in the http pile, your setup probably includes a folder for them, like sites-enabled under Debian), as well as an ufw file for your firewall. It will also generate a website for your main domain, the nginx config will already point to it. It contains instructions how to set up your client (which you should also follow) and a form for changing passwords.

Run 007 to start the servers. They will run in tmux winows, you can use tmux at to peek at them (and you probably will for debugging). If you get tired of them, 008 will stop them.

With the server running, run 009_seed_boss to set up some files Splatoon needs. To create user accounts, run 010_register. It will ask you questions about the PNID (normal people would call it a "login"), Mii name ("visible name/nick"), and password ("password"). You can also provide them as script arguments. If it outputs tokens, the creation succeeded. If it didn't, there will hopefully be a reasonably readable error. Accounts can only be made with the script for vague security reasons. For less vague security reasons, you should tell gamers to change them on the website.

Troubleshooting

See following resources:

Maintenance

I think updating by copying all files in the empty repo over will be fine? Call it "professional installation required". And you're a professional.