On your own laptop, a spare mini-PC, or a cheap VPS. Most flexible, cheapest, most fiddly. Pick this if you like owning the whole stack. total time: depends on your setup.
node --version
You need 22.6 or higher. The bot uses Node's native TypeScript support, which needs this version.
If you're on an older version, grab the latest LTS from nodejs.org, or use nvm if you want to manage multiple versions.
unzip justthetips-bot.zip
cd justthetips
Everything's in there — bot source, your config, your thank-yous.
npm install
This takes 30-60 seconds.
Wallets refuse plain-HTTP links, so the bot needs HTTPS. Three options:
Install cloudflared, then:
cloudflared tunnel --url http://localhost:3000
Cloudflare prints a URL like https://random-words-12345.trycloudflare.com. Copy that into config.env as your API_PUBLIC_URL.
ngrok http 3000
Copy the https URL it gives you.
If you own a domain pointing at your VPS, use Caddy as a reverse proxy. Caddy auto-renews your Let's Encrypt certs. A minimal Caddyfile:
yourbot.example.com {
reverse_proxy localhost:3000
}
API_PUBLIC_URL in config.env to match.
npm start
The bot logs its startup and eventually prints api server listening.
Open http://localhost:3000/check — or visit your public URL's /check path if the tunnel is up.
If you close your terminal, the bot stops. For a bot you actually use, pick one:
npm install -g pm2
pm2 start npm --name justthetips -- start
pm2 save
pm2 startup # follow the output to auto-start on reboot
Create /etc/systemd/system/justthetips.service:
[Unit]
Description=justthetips bot
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/you/justthetips
ExecStart=/usr/bin/npm start
Restart=on-failure
User=you
[Install]
WantedBy=multi-user.target
Then:
sudo systemctl enable --now justthetips
sudo systemctl status justthetips
sudo journalctl -u justthetips -f # watch logs
When a new version drops:
config.env and thankyous.json into itnpm install, then restart however you're running it