SchulyServer
Your own Schuly: the API, the web app and the plugin host, behind one domain.
You need a Linux server with Docker, a domain pointing at it, ports 80 and 443 open, and an SMTP server.
curl -fsSL https://github.com/schulydev/SchulyServer/archive/refs/heads/main.tar.gz | tar -xz --strip-components=1 SchulyServer-main/deploy
cd deploy
cp .env.example .envFill in .env as the self-hosting guide explains. Some of those keys can't be changed later without their rotation steps, so read it first. Then:
docker compose -f compose.staging.yml up -dCaddy gets the certificate, and the server sets up its database and downloads its plugins. No domain? Run it on your local network instead.
Caddy is the only part reachable from the internet. Behind it are the server, PostgreSQL, SeaweedFS for documents, SchulwareAPI for Schulnetz and SchulyMicrosoft for Microsoft 365.
School systems come from plugins, not from the server. List one in config/plugins.yml, restart, and it shows up in the app.
- Operations: backups, upgrades and data retention
- Configuration: every setting
- Plugin management: choose which school systems you offer
- Development setup: run it from source, with the API reference at
/scalar - Architecture: how the code is layered
PolyForm Noncommercial 1.0.0. Read it, change it and run it for any noncommercial purpose. Selling it or hosting it as a paid service isn't licensed. Source-available, not open source.