DEV Community

Boris Rybalkin
Boris Rybalkin

Posted on

I got tired of breaking my self-hosting setup so I built a platform with an app store

A few years ago I had a pretty standard self-hosting setup. Nextcloud for files, a git server, mail, chat. Everything running in docker containers on a mini PC at home. It worked... until it didn't.

Every few weeks something would break after an update. A service wouldn't start, some config file got overwritten, nginx threw a 502 because something changed its port. I'd spend my Saturday morning debugging instead of actually using the stuff I was hosting. And everything was configured manually - no docker-compose, no ansible, just hand-edited configs everywhere.

At some point I thought: why am I doing devops for my own home? I just want to install an app and have it work. Like a phone. So I started building that.

What is Syncloud

Syncloud is an open source self-hosting platform. You install it on any Linux box - a mini PC, an old laptop, a Raspberry Pi - and it gives you an app store. You click install on Nextcloud, Gogs, Rocket.Chat, or whatever you need, and it just works. HTTPS certificates, authentication, reverse proxy - all handled automatically under the hood.

The whole thing has been open source since 2015 on GitHub. GPL-3.0.

The stack

The platform itself is written in Go. Under the hood it runs:

  • Nginx as a reverse proxy for all apps
  • Authelia for single sign-on (SSO) across all installed apps
  • OpenLDAP for user management
  • Apps are packaged as snaps, so they're isolated and can be updated independently

When you install an app, the platform automatically:

  • Configures the nginx reverse proxy for that app
  • Sets up HTTPS via Let's Encrypt (or your own cert)
  • Connects it to the auth system so you get SSO
  • Handles DNS if you use a syncloud.it subdomain or your own domain (free for a month, then £5/month to cover hosting costs)

No yaml files. No hand-editing nginx configs. No "let me just SSH in and fix this real quick."

Available apps

There are 40+ apps you can install right now. Some highlights:

Files & Productivity: Nextcloud, Syncthing, Collabora Online, File Browser, WordPress, Paperless-ngx

Media: Jellyfin, Plex, PhotoPrism, PeerTube, Calibre-Web, Transmission, YouTube Downloader, Owncast

Communication: Rocket.Chat, Matrix, Mattermost, Mastodon, Diaspora, Jitsi Meet

Home & Security: Home Assistant, Pi-hole, Frigate NVR, Bitwarden, OpenVPN, CrowdSec, Homebridge, OwnTracks

Dev & Utilities: Gogs, Standard Notes, Mail server, Grocy, Invoice Ninja, Kimai, MeshCentral, Gramps

AI: Stable Diffusion, Open WebUI

The list keeps growing. Each app gets the same treatment - one click install, automatic HTTPS, SSO, and updates.

What it looks like in practice

  1. Flash the image to an SD card or install on an existing Debian box
  2. Open the web UI, create your account
  3. Go to the app store, click install on what you want
  4. That's it. Apps show up with their own URLs, already behind HTTPS and SSO

No terminal needed for day-to-day use. Updates happen through the same UI.

Hardware

Syncloud runs on:

  • Raspberry Pi (3, 4, 5)
  • Any x86 mini PC or laptop (amd64)
  • ARM boards (arm64, armhf)
  • Basically anything that runs Linux

I personally run it on a cheap N100 mini PC. Uses like 10 watts, completely silent, and handles all my services without breaking a sweat.

What makes it different from YunoHost, CasaOS, Umbrel, etc.

Fair question. There are a few self-hosting platforms out there now. Here's how I'd honestly position Syncloud:

  • vs YunoHost: Similar idea, different approach. Syncloud uses snaps for app packaging and has Authelia + LDAP built in for tighter auth integration.
  • vs CasaOS/Umbrel: These are basically Docker management UIs. Syncloud doesn't use Docker at all - apps are snaps, which gives better isolation and simpler updates.
  • vs doing it yourself: You get your weekends back.

Syncloud is opinionated. It makes choices for you (nginx, authelia, ldap, snaps) so that everything works together without config. If you want full control over every detail, you probably want Docker + Traefik. If you want stuff to just work, Syncloud might be your thing.

11 years in

I started this project in 2015. It's been a slow burn - no VC funding, no company behind it, just me building something I wanted to use. The codebase has Go backend, Vue.js frontend, integration tests running on actual hardware in CI, the whole thing.

If you're curious:

Happy to answer any questions. And if you try it and something breaks, open an issue on GitHub or post on the forum - that's how it gets better.

Top comments (0)