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
149 lines
4.3 KiB
Markdown
149 lines
4.3 KiB
Markdown
# 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.
|