Powrót do strony głównej

Syncloud: self-hosting bez Dockera i konfiguracji

Syncloud — open source platforma do self-hosting na Go, wykorzystująca pakiety snap zamiast Dockera. Zapewnia automatyczną konfigurację HTTPS, SSO przez Authelia i OpenLDAP, atomowe aktualizacje i izolację aplikacji. Działa na Raspberry Pi, mini-PC i x86.

Syncloud: kiedy self-hosting przestaje być zadaniem DevOps
Advertisement 728x90

Syncloud: jak platforma open source na Go rozwiązuje problem self-hostingu bez Docker i ręcznych konfiguracji

Syncloud to nie kolejna obudowa UI dla Docker. To pełnowartościowa platforma operacyjna do self-hostingu, zbudowana od podstaw w Go i skoncentrowana na niezawodności, izolacji oraz eksploatacji zero-konfiguracyjnej. Usuwa główną bolączkę domowych serwerów: potrzebę codziennego poprawiania konfiguracji Nginx, odnawiania certyfikatów Let’s Encrypt i rozwiązywania konfliktów portów po aktualizacjach. Zamiast tego — jednolity interfejs, SSO "z pudełka", automatyczna routing i ponad 40 aplikacji gotowych do instalacji jednym kliknięciem.

Architektura bez kompromisów: dlaczego snap zamiast Docker

Syncloud rezygnuje z Docker jako głównego środowiska kontenerowego — nie z ideologii, ale ze względów technicznych. Pakiety snap zapewniają ścisłą izolację systemu plików, kontrolę uprawnień za pomocą profili bezpieczeństwa oraz atomowe aktualizacje bez przestojów. W przeciwieństwie do obrazów Docker, pakiet snap w Syncloud zawiera:

  • Predefiniowane interfejsy (network, home, removable-media) — bez ręcznego --cap-add czy --privileged
  • Automatyczną rejestrację usług w systemd przy aktualizacji
  • Wbudowany mechanizm rollback: jeśli nowa wersja aplikacji nie uruchomi się, system cofa się do poprzedniej w ciągu 2 sekund

Bazowy moduł platformy jest napisany w Go i składa się z trzech kluczowych komponentów:

Google AdInline article slot
  • Platform Daemon — rdzeń zarządzający cyklem życia aplikacji, konfiguracją DNS i certyfikatami
  • Web UI (Vue.js) — panel administracyjny z marketem, ustawieniami sieci i monitorowaniem stanu
  • Warstwa integracji Snapd — pośrednia warstwa przekształcająca żądania instalacji w odpowiednie komendy snap z właściwymi parametrami środowiska

Nginx tu nie jest zwykłym reverse proxy — jest całkowicie zarządzany: konfiguracja generowana jest dynamicznie przy każdej instalacji/usunięciu aplikacji, z uwzględnieniem trybu TLS (Let’s Encrypt lub niestandardowy cert), SNI-routerowania i nagłówków bezpieczeństwa (HSTS, CSP, X-Frame-Options). Żadnych ręcznych modyfikacji /etc/nginx/sites-enabled/ — wszystko odbywa się przez API.

Jak działa autentyfikacja: Authelia + OpenLDAP w produkcji

System jednolitej autentyfikacji to nie opcja, a fundament. Syncloud integruje Authelia jako pośredni proxy przed wszystkimi aplikacjami. Przy pierwszym logowaniu użytkownik przechodzi przez centralizowaną formularz logowania, a Authelia sprawdza dane w bazy OpenLDAP. Po pomyślnej autentyfikacji wydawany jest token JWT, który transparentnie przekazywany jest w nagłówku X-Forwarded-User każdej aplikacji.

Ważne: serwer LDAP służy nie tylko do autentyfikacji. Zarządza również:

Google AdInline article slot
  • Grupami użytkowników (np. admin, media, dev) — z ograniczeniem dostępu do aplikacji
  • Atrybutami mail, displayName, sshPublicKey — do integracji z serwerem pocztowym i Git
  • Politykami hasła (min-długość, historia, czas ważności) — za pomocą overlay slapd ppolicy

Dzięki temu można np. ustawić, aby tylko członkowie grupy media mieli dostęp do Jellyfin, a dev — do Gogs i MeshCentral. Użytkownik wprowadza hasło tylko raz — i otrzymuje dostęp do wszystkich zezwolonych serwisów bez powtórnego logowania.

Praktyczna instalacja: od karty SD do działającego Nextcloud

Proces wdrożenia został sprowadzony do minimum. Poniżej rzeczywista sekwencja czynności na Raspberry Pi 5 (64-bit):

  • Pobieramy oficjalny obraz syncloud-os_24.04_arm64.img.xz z syncloud.org
  • Zapisujemy go za pomocą dd lub Balena Etcher na microSD
  • Podłączamy komputer do sieci i włączamy zasilanie
  • Po 90 sekundach otwieramy http://syncloud.local w przeglądarce
  • Tworzymy konto — rozpoczyna to generację certyfikatu Let’s Encrypt przez ACME v2
  • W dziale „App Store” znajdujemy Nextcloud → klikamy „Install”
  • Po około 80 sekundach pojawia się link https://nextcloud.syncloud.local, już z weryfikowanym certyfikatem i aktywnym SSO

Przy tym:

Google AdInline article slot
  • Nginx automatycznie przypisał port 8080 dla serwisu Nextcloud (wewnętrzny)
  • Skonfigurował blok location z proxy i nagłówkami X-Real-IP, X-Forwarded-Proto
  • Dodał użytkownika z LDAP do bazy Nextcloud przez API podobne do SCIM
  • Ustawiono zadanie cron do regularnej aktualizacji certyfikatu

Żadnych docker-compose up -d, żadnych certbot --nginx, żadnych sudo systemctl restart nginx. Wszystko przez interfejs HTTP.

Co jest ważne

  • Syncloud to platforma podobna do systemu operacyjnego, a nie obudowa UI: zastępuje systemowy init, menedżer pakietów i stack sieciowy
  • Izolacja snap zapewnia bezpieczeństwo i przewidywalność aktualizacji — bez ryzyka „zepsucia całego systemu” przy aktualizacji pojedynczej aplikacji
  • Authelia + OpenLDAP realizują enterprise-grade SSO z obsługą grup, polityk hasła i dostępu atrybutowego
  • Obsługa ARM64, amd64 i armhf oznacza kompatybilność z Raspberry Pi, minikomputerami na Intel/AMD i nawet starszymi serwerami ARM (np. Scaleway C2)
  • Całkowicie open source (GPL-3.0), bez zależności od chmur: DNS, certyfikaty i autentyfikacja działają lokalnie

Porównanie z alternatywami: gdzie Syncloud zajmuje swoją niszę

| Kryterium | Syncloud | YunoHost | CasaOS |

|----------|----------|----------|--------|

| Runtime | snapd | chroot + skrypty shell | Docker |

| SSO | wbudowany Authelia + LDAP | SSO przez YunoHost SSO | brak (tylko basic auth) |

| HTTPS | Let’s Encrypt / niestandardowy cert, automatyczna konfiguracja w Nginx | Let’s Encrypt, ręczne włączanie | Let’s Encrypt, wymaga ręcznej konfiguracji reverse proxy |

| Aktualizacje | atomowe, z rollback | przez apt + skrypty, bez gwarancji | przez Docker Hub, bez kontroli wersji |

| Kontrola | wysoki poziom abstrakcji, „platforma z opinią” | elastyczna, ale wymaga znajomości Debian | niski poziom — tylko UI nad Docker |

Dla programistów średniego i wyższego poziomu Syncloud jest szczególnie cenna, ponieważ nie ukrywa trudności, lecz je strukturyzuje: cały kod jest dostępny, wszystkie interfejsy są udokumentowane, a CI obejmuje testy na rzeczywistym sprzęcie (Raspberry Pi 4/5, x86 mini-PC). To nie „czarny skrzynka”, a przejrzysty system, który można audytować, forkować i modyfikować — z zachowaniem kompatybilności z marketem aplikacji.

Skalowalność i ograniczenia

Syncloud nie jest pozycjonowany jako rozwiązanie dla tysięcy użytkowników. Jego sweet spot to od 1 do ~50 aktywnych kont i do 15 jednocześnie działających aplikacji. Testy pokazują, że na minikomputerze z procesorem Intel N100 i 8 GB RAM stabilnie działają:

  • Nextcloud (z Collabora Online i full-text search)
  • Jellyfin (transkodowanie 1080p w czasie rzeczywistym)
  • Home Assistant (z ponad 200 urządzeniami)
  • Gogs (z integracją CI)
  • Bitwarden + Authelia + OpenLDAP

Zużycie energii — 9–12 W pod obciążeniem, bez wentylatora. Do cięższych scenariuszy (np. Plex z sprzętowym transkodowaniem czy Matrix z 500+ użytkownikami) potrzebny jest zewnętrzny serwer lub klasteryzacja — której Syncloud na razie nie wspiera. Ale dla większości domowych i małych biurowych use-case’ów to optymalny balans między prostotą a kontrolą.

— Editorial Team

Advertisement 728x90

Czytaj dalej