grappa

Run your own

Why

grappa is one program that carries its own clients: install it and you get the bouncer, the cicchetto web app it serves, and the shottino terminal client, all on the same REST surface. Your scrollback stays on your disk, your users are your users, and the IRC networks you connect to are your business. irc.sindro.me is simply the instance I run; nothing in the code assumes it is the only one. Other people already run theirs.

Install

Signed repositories, so updates arrive with the rest of your system.

curl -fsSL https://grappa.chat/debian/grappa-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/grappa-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/grappa-archive-keyring.gpg] \
https://grappa.chat/debian stable main" \
  | sudo tee /etc/apt/sources.list.d/grappa.list

sudo apt update && sudo apt install grappa

shottino is in the same repository.

sudo rpm --import https://grappa.chat/rpm/grappa-archive-keyring.asc

sudo tee /etc/yum.repos.d/grappa.repo <<'EOF'
[grappa]
name=grappa
baseurl=https://grappa.chat/rpm/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://grappa.chat/rpm/grappa-archive-keyring.asc
EOF

sudo dnf install grappa
curl -fsSL https://grappa.chat/arch/grappa-archive-keyring.asc \
  | sudo pacman-key --add -
sudo pacman-key --lsign-key A11BAC8E72FBCFCE

sudo tee -a /etc/pacman.conf <<'EOF'

[grappa]
SigLevel = Required DatabaseRequired
Server = https://grappa.chat/arch/$arch
EOF

sudo pacman -Sy grappa

x86_64 only: Arch has no official ARM port.

curl -fsSL https://raw.githubusercontent.com/vjt/grappa-irc/main/infra/docker/get.sh | bash

Multi-arch image (amd64 + arm64) at ghcr.io/vjt/grappa. If you would rather not pipe a script into a shell, copy compose.release.yaml instead. Append -s -- update to update an existing box.

The signing key

All three repositories are signed with one key, which lives on the machine that publishes them and nowhere else โ€” not on GitHub, not in a CI secret. The packages are built in public; only the signature is not.

BC9B A2A8 A677 FCA8 6A36  A0DC A11B AC8E 72FB CFCE
grappa.chat archive signing key <[email protected]>

Published next to the packages as .asc and .gpg. Curious how the packages get there? That's the pipeline โ†’

Architectures

Today the repositories carry x86_64. The container image is already multi-arch (amd64 + arm64); arm64 .deb and .rpm are next. The pacman repository stays x86_64: Arch has no official ARM port, and Arch Linux ARM is a separate project.

From source, or anywhere else

Everything is on GitHub, MIT, with an installer for a bare host and one for Kubernetes. the code โ†’ ยท INSTALL.md โ†’ ยท running it โ†’

Just want to chat?

No install at all: log in with a nick on my instance.

Try it now โ†’