# Installeren ## In één regel ```bash 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: ```bash 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: ```bash sh install.sh --dry-run ``` --- ## Wat het script doet 1. Controleert of je op Linux zit en of `curl` en `tar` aanwezig zijn 2. Kijkt of Docker draait — zo niet, biedt het aan die te installeren via het officiële script van docker.com (het vraagt eerst) 3. Kloont de repo naar `/opt/server-up` (of pakt het tar-archief uit als git ontbreekt) 4. Maakt `.env` aan op basis van `.env.example`, met jouw poort en bind-adres 5. Bouwt het image en start de container 6. Wacht tot `/healthz` antwoordt 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 ```bash # 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: ```bash 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](beveiliging.md) voor de reverse proxy, rollen en SSO. --- ## Bijwerken ```bash 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](updates.md). --- ## Verwijderen ```bash 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 ```bash 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.