curl -fsSL https://git.ramonbesselink.nl/bes-r/server-up/raw/branch/main/install.sh | sh install.sh controleert het systeem, biedt aan Docker te installeren als dat ontbreekt, kloont de repo (of pakt het tar-archief uit als git ontbreekt), maakt .env aan, bouwt en start, wacht op /healthz en toont waar je terecht kunt met de waarschuwing meteen een account aan te maken. - Opties: --dir, --port, --bind, --branch, --token, --update, --uninstall, --yes, --dry-run. - --update haalt nieuwe code op en herstart; .env, stacks en gegevens blijven. - --uninstall stopt de container maar laat gegevens staan, en vertelt hoe je die alsnog opruimt. - Gebruikt alleen sudo waar nodig: kun je zelf in de doelmap schrijven en docker aanroepen, dan blijft alles onder je eigen account. Tijdens het testen gevonden en verholpen: - `docker compose --project-directory` zoekt zonder -f het compose-bestand in de huidige map; bij `curl | sh` is dat je thuismap. Nu altijd -f erbij. - De wachtlus gaf anderhalve minuut geen teken van leven; nu een punt per poging en 90 in plaats van 120 seconden. - Bij --dry-run braken ontbrekende Docker-onderdelen de voorvertoning af; nu waarschuwingen zodat je de hele gang van zaken ziet. - De versie-uitlezing uit /healthz tolereert nu ook json met spaties. Documentatie: docs/installeren.md met alle opties, bijwerken, verwijderen en een probleemoplostabel; README verwijst ernaar. Tests: syntaxis onder sh/dash/bash, geen bashismen, --help noemt alle opties, ongeldige invoer stopt, een proefdraai maakt niets aan, en de installatieregel in README en docs is identiek. 958 tests groen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
4.3 KiB
Installeren
In één regel
curl -fsSL https://git.ramonbesselink.nl/bes-r/server-up/raw/branch/main/install.sh | sh
Dat installeert Server Up in /opt/server-up, bereikbaar op
http://localhost:5000.
Liever eerst zien wat je uitvoert? Verstandig — je haalt een script binnen dat root-rechten gebruikt:
curl -fsSL https://git.ramonbesselink.nl/bes-r/server-up/raw/branch/main/install.sh -o install.sh
less install.sh
sh install.sh
Wil je alleen weten wát het zou doen, zonder dat er iets verandert:
sh install.sh --dry-run
Wat het script doet
- Controleert of je op Linux zit en of
curlentaraanwezig zijn - Kijkt of Docker draait — zo niet, biedt het aan die te installeren via het officiële script van docker.com (het vraagt eerst)
- Kloont de repo naar
/opt/server-up(of pakt het tar-archief uit als git ontbreekt) - Maakt
.envaan op basis van.env.example, met jouw poort en bind-adres - Bouwt het image en start de container
- Wacht tot
/healthzantwoordt en toont waar je terecht kunt
Het gebruikt alleen sudo waar dat nodig is. Kun je zelf al in de doelmap
schrijven én docker aanroepen, dan blijft alles onder je eigen account.
Opties
--dir PAD Installatiemap (standaard: /opt/server-up)
--port POORT Poort voor de webinterface (standaard: 5000)
--bind ADRES Waarop de poort luistert (standaard: 127.0.0.1)
--branch NAAM Branch om te installeren (standaard: main)
--token TOKEN Toegangstoken, als je repo niet openbaar is
--update Bijwerken naar de nieuwste versie
--uninstall Stoppen en verwijderen (gegevens blijven staan)
--yes Niets vragen
--dry-run Alleen tonen wat er zou gebeuren
Voorbeelden
# Standaard, alleen bereikbaar vanaf de server zelf
sh install.sh
# Bereikbaar op je netwerk, andere poort
sh install.sh --bind 0.0.0.0 --port 8080
# Ergens anders neerzetten
sh install.sh --dir /srv/server-up
# De beta-branch, zonder vragen
sh install.sh --branch dev --yes
# Uit een repo die niet openbaar is
sh install.sh --token jouw-forgejo-token
Meteen na het installeren
Maak een beheerdersaccount aan. Server Up beheert de Docker-daemon, en wie containers kan starten kan willekeurige mappen van de host mounten. Zolang er nog geen account is, kan iedereen die de pagina bereikt het claimen.
De poort staat standaard op 127.0.0.1, dus alleen bereikbaar vanaf de server
zelf. Wil je er van buitenaf bij, zet dan eerst een reverse proxy met TLS ervoor
en pas daarna BIND aan:
sed -i 's/^BIND=.*/BIND=0.0.0.0/' /opt/server-up/.env
docker compose -f /opt/server-up/docker-compose.yml up -d
Zie beveiliging.md voor de reverse proxy, rollen en SSO.
Bijwerken
sh /opt/server-up/install.sh --update
Haalt de nieuwste versie op, bouwt opnieuw en herstart. Je .env blijft staan,
net als je stacks en gegevens.
Draait Server Up vanaf een registry-image, dan kun je ook bijwerken vanuit de interface zelf — zie updates.md.
Verwijderen
sh /opt/server-up/install.sh --uninstall
Stopt en verwijdert de container. Je gegevens blijven staan: het
docker-volume su-data (instellingen, accounts, auditlog) en je stackmappen
onder /opt/serverup. Het script vertelt daarna hoe je die alsnog opruimt.
Handmatig, zonder script
git clone https://git.ramonbesselink.nl/bes-r/server-up.git /opt/server-up
cd /opt/server-up
cp .env.example .env
$EDITOR .env
docker compose up -d --build
Als er iets misgaat
| Melding | Wat er aan de hand is |
|---|---|
Geen root en geen sudo |
Draai als root, of kies met --dir een map waar je zelf in mag schrijven |
Docker is geïnstalleerd maar de daemon reageert niet |
systemctl start docker |
De docker-compose-plugin ontbreekt |
Installeer docker-compose-plugin via je pakketbeheerder |
Ophalen mislukt. Is de repo openbaar? |
Gebruik --token met een Forgejo-token dat de repo mag lezen |
| Reageert niet binnen anderhalve minuut | docker compose -f /opt/server-up/docker-compose.yml logs --tail=50 |
Laadt de interface zonder opmaak, dan is het downloaden van de front-end- bestanden tijdens de build misgegaan. Server Up meldt dat bij het opstarten in zijn eigen log; opnieuw bouwen lost het meestal op.