No description
Find a file
MiTHRAL 4fb5461321
All checks were successful
Build & Release / build (push) Successful in 2m25s
fix: stamp package.json version from git tag at build time, add updater logging
Auto-updater was always reporting version 1.3.0 regardless of release,
making it impossible to detect whether an update had been applied.
CI now rewrites package.json version from the tag before building.
Updater errors are now logged to console instead of silently swallowed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 14:37:52 -04:00
.gitea/workflows fix: stamp package.json version from git tag at build time, add updater logging 2026-04-21 14:37:52 -04:00
.github/workflows chore: modify .github/workflows/validate-pr-title.yml 2026-03-24 19:04:04 +00:00
.vscode chore: try to get everything building 2025-10-08 17:28:30 +01:00
assets chore: replace icons with Sanctum logo 2026-04-21 13:18:11 -04:00
src fix: stamp package.json version from git tag at build time, add updater logging 2026-04-21 14:37:52 -04:00
.eslintrc.json feat: initial commit 2025-09-30 10:31:37 -05:00
.gitignore feat: initial commit 2025-09-30 10:31:37 -05:00
.gitmodules feat: initial commit 2025-09-30 10:31:37 -05:00
.prettierrc feat: initial commit 2025-09-30 10:31:37 -05:00
.release-please-manifest.json chore(main): release 1.3.0 (#128) 2026-02-18 09:09:14 +00:00
CHANGELOG.md chore(main): release 1.3.0 (#128) 2026-02-18 09:09:14 +00:00
chat.stoat.StoatDesktop.desktop chore: add files to manage flathub details upstream (#104) 2026-02-17 19:04:04 +00:00
chat.stoat.StoatDesktop.metainfo.xml fix(flatpak): change screenshot path into an url in the metainfo file (#195) 2026-04-06 17:35:02 +01:00
default.nix chore: Nix, mise, CI configuration (#129) 2026-02-17 19:29:43 +00:00
forge.config.ts chore: rebrand from Stoat to Sanctum 2026-04-21 01:11:53 -04:00
forge.env.d.ts feat: initial commit 2025-09-30 10:31:37 -05:00
index.html feat: initial commit 2025-09-30 10:31:37 -05:00
LICENSE chore: add LICENSE [skip ci] 2025-10-10 10:58:26 +01:00
mise.toml chore: Nix, mise, CI configuration (#129) 2026-02-17 19:29:43 +00:00
package.json chore: rebrand from Stoat to Sanctum 2026-04-21 01:11:53 -04:00
pnpm-lock.yaml chore: point app at self-hosted mithraic.space instance 2026-04-21 00:27:49 -04:00
pnpm-workspace.yaml chore: Nix, mise, CI configuration (#129) 2026-02-17 19:29:43 +00:00
README.md docs: rewrite README for Sanctum self-hosted setup 2026-04-21 13:08:15 -04:00
release-please-config.json refactor: move publish.yml workflow into release please workflow (#29) 2025-12-29 18:05:26 +00:00
screenshot.png chore: add files to manage flathub details upstream (#104) 2026-02-17 19:04:04 +00:00
strings.ts feat: initial commit 2025-09-30 10:31:37 -05:00
tsconfig.json chore: try to get everything building 2025-10-08 17:28:30 +01:00
vite.main.config.ts feat: initial commit 2025-09-30 10:31:37 -05:00
vite.preload.config.ts feat: initial commit 2025-09-30 10:31:37 -05:00
vite.renderer.config.ts feat: initial commit 2025-09-30 10:31:37 -05:00

Sanctum

A private, self-hosted desktop client for mithraic.space
Built on Revolt — open source, no tracking, no telemetry, no nonsense.
Windows & Linux. Auto-updates from your own server.


What is this?

Sanctum is a custom fork of Stoat for Desktop, hardwired to connect exclusively to mithraic.space — a self-hosted Revolt instance. It replaces the default branding, icons, and update pipeline with a fully self-contained setup hosted on a private Forgejo instance.

No reliance on external services. Updates come from git.mithraic.cloud. Builds run on a self-hosted CI runner. Everything stays in-house.


Installing

Grab the latest build from the Releases page.

Linux

# extract to your local apps folder
mkdir -p ~/.local/share/sanctum
unzip Sanctum-linux-x64-*.zip -d ~/.local/share/sanctum/

# register it as a desktop app
cat > ~/.local/share/applications/sanctum.desktop << EOF
[Desktop Entry]
Name=Sanctum
Exec=$HOME/.local/share/sanctum/sanctum
Icon=$HOME/.local/share/sanctum/resources/assets/desktop/icon.png
Type=Application
Categories=Network;InstantMessaging;
StartupWMClass=sanctum
EOF

Then search for Sanctum in your app launcher and you're in.

Windows

Extract the zip, run sanctum.exe. That's it.


Auto-updates

Sanctum checks for new releases on every launch. When a newer version is available on git.mithraic.cloud, you'll get a desktop notification — click it to download. No background processes, no silent installs.


Building from source

You'll need Git, Node.js, and pnpm (corepack enable).

git clone https://git.mithraic.cloud/ad3laid3/sanctum
cd sanctum
pnpm i --frozen-lockfile
pnpm start

Releasing a new build

Push a version tag and CI does the rest — compiles Linux and Windows builds, creates a release, and uploads artifacts automatically.

git tag v1.x.x
git push origin v1.x.x

Building locally

# Linux (deb + zip)
PLATFORM=linux pnpm make

# Windows (zip, no Wine required)
pnpm make --platform win32 --arch x64

Output lands in out/make/.


Tech