Self-hosted apps built with Scala

9 open-source, self-hostable apps written primarily in Scala.

Last reviewed Oct 11, 2026 · 560 words

Scala apps run on the Java virtual machine, and that one fact shapes everything about hosting them: you need a Java runtime (or a container that bundles one), memory use is set as much by heap flags as by the app, and startup takes seconds rather than milliseconds. The bucket is small and uneven. GitBucket is the one most people should care about, Lichess is the famous one that few people should attempt, and the rest are niche.

What the JVM means for the person running it

A JVM app idles higher than a Go or Rust binary because the runtime reserves heap up front and grows into it. The directory's estimate for most Scala apps here is 512 MB, which is a fair floor once the JVM is warm, and you can cap it with -Xmx if the box is small. The upside is that the runtime is mature and the garbage collector is well understood.

Upgrades are usually a single artifact swap: download the new release, stop the old process, start the new one. Patching is another matter. Scala source builds go through sbt, which downloads a lot of dependencies and compiles slowly, so editing the code yourself is a weekend job unless you already work in Scala.

Which Scala apps are worth running

AppWhat it doesDifficulty (directory)RAM estimate
GitBucketGitHub-style Git hostingEasy512 MB
LichessFull chess serverHard4,096 MB
TrueRSSFeed reader with pluginsMedium512 MB
Suredbits WalletBitcoin DLC walletEasy512 MB

GitBucket (about 9,400 stars, Apache-2.0, maintained since 2013) is the clearest case for Scala on a homelab. It ships as a single WAR file you start with Java, it has issues, pull requests, a wiki and a plugin system, and it speaks a GitHub-compatible API. The catalogue offers Docker, binary and bare-metal installs, and it rates the setup Easy. If you already run Java services, it slots in with nothing new to learn.

Lichess (about 18,800 stars, AGPL-3.0) is the best-known Scala codebase anyone self-hosts, and the catalogue is blunt about it: Hard difficulty, a 4 GB RAM estimate, and a multi-service architecture. People run it to develop on Lichess or host a private chess club, and the deployment is a project in its own right.

Suredbits Wallet and Krystal Bull are one-click Bitcoin apps for discreet log contract bets; TrueRSS, Smederee, Piga and Family Accounting Tool are small projects with low star counts.

Should you pick GitBucket over Gitea?

Pick GitBucket only if a JVM is already part of your setup or you want its plugin system specifically. For a fresh homelab, Gitea or Forgejo are single Go binaries that idle lighter and have far larger communities. The GitBucket vs Gitea comparison lays out that trade side by side, and the rest of the options are in the Git hosting category.

What I'd do

Run GitBucket if you want Scala in your stack at all, with -Xmx512m as a starting cap and a raise only if the logs show memory pressure. Leave Lichess alone unless chess is the point of the server. For other JVM apps with friendlier packaging, the Kotlin page has more choice.