Kerfuś is a simple Slack bot for the Hack Club Slack, mainly created as a personal bot for @ascpixi. It's currently hosted on Nest.
In order to replicate the environment this bot is hosted on, create a ~/.config/systemd/user/kerfus.service file like this:
[Unit]
Description=ascs personal Slack bot
[Service]
WorkingDirectory=%h/services
ExecStart=%h/services/start-kerfus.sh
Restart=on-failure
[Install]
WantedBy=default.target...then, create a services directory in your home directory. Run git clone https://github.com/ascpixi/kerfus in that folder, and then create a start-kerfus.sh script like this:
#!/bin/bash
cd kerfus
git fetch
git pull
npm install
npm startThen, run these commands:
chmod +x start-kerfus.sh
systemctl --user daemon-reload
systemctl --user enable --now kerfus.serviceKerfuś now should be up and running! Query its status with systemctl --user status kerfus.service:
ascpixi@nest:~/services$ systemctl --user status kerfus.service
● kerfus.service - asc's personal Slack bot
Loaded: loaded (/home/ascpixi/.config/systemd/user/kerfus.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-08-29 19:44:51 UTC; 39s ago
Invocation: bcfeb9d796fb4ab2817636162769926e
Main PID: 841284 (start-kerfus.sh)
Tasks: 24 (limit: 288874)
Memory: 85.8M (peak: 549.9M)
CPU: 11.697s
CGroup: /user.slice/user-3299.slice/user@3299.service/app.slice/kerfus.service
├─841284 /bin/bash /home/ascpixi/services/start-kerfus.sh
├─842440 "npm start"
├─842567 sh -c "npm run build && node ./dist/app.js"
└─853876 node ./dist/app.js
Aug 29 19:44:54 nest start-kerfus.sh[841723]: Run `npm audit` for details.
Aug 29 19:44:54 nest start-kerfus.sh[842440]: > kerfus@1.0.0 start
Aug 29 19:44:54 nest start-kerfus.sh[842440]: > npm run build && node ./dist/app.js
Aug 29 19:44:54 nest start-kerfus.sh[842568]: > kerfus@1.0.0 build
Aug 29 19:44:54 nest start-kerfus.sh[842568]: > node fix-atproto-lexicon.js && tsc
Aug 29 19:45:16 nest start-kerfus.sh[853876]: [dotenv@17.2.1] injecting env (3) from .env -- tip: 🛠️ run anywhere with `dotenv>
Aug 29 19:45:16 nest start-kerfus.sh[853876]: [^owo^] info: bsky-crosspost module registered
Aug 29 19:45:16 nest start-kerfus.sh[853876]: [^owo^] info: app-home module registered
Aug 29 19:45:16 nest start-kerfus.sh[853876]: [^owo^] info: All modules registered!
Aug 29 19:45:17 nest start-kerfus.sh[853876]: [^owo^] info: Kerfuś is up and running
