Compare commits

...

2 commits

Author SHA1 Message Date
Ramon
be1aad94ae v0.7.30 - releaseversie
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m21s
Deploy server-up (prod) / deploy (push) Successful in 42s
Release / release (push) Successful in 3s
Eerste stabiele release sinds v0.4.60: VERSION kaal, changelog-kop zonder
-beta zodat release.yml de juiste sectie vindt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
2026-07-27 20:38:36 +02:00
Ramon
0bc944de5f v0.7.30-beta - proefdraai werkt zonder curl
De teststap draait in python:3.12-slim, waar curl ontbreekt. Het
installatiescript brak daar af op de vereistencontrole, waardoor
test_dry_run_wijzigt_niets en test_dry_run_toont_de_hele_gang_van_zaken
faalden op de runner (runs 74 en 75).

Ontbrekende curl/tar is nu een waarschuwing bij --dry-run in plaats van
een harde fout, net als bij Docker: een proefdraai hoort juist te tonen
wat er zou gebeuren op een machine waar nog niets staat.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
2026-07-27 20:37:34 +02:00
4 changed files with 48 additions and 3 deletions

View file

@ -1,4 +1,4 @@
# v0.7.30-beta — Installeren met één regel
# v0.7.30 — Installeren met één regel
```bash
curl -fsSL https://git.ramonbesselink.nl/bes-r/server-up/raw/branch/main/install.sh | sh
@ -34,6 +34,17 @@ de wachtlus gaf anderhalve minuut lang geen enkel teken van leven (nu puntjes),
en `docker compose --project-directory` zoekt zonder `-f` het compose-bestand
alsnog in de huidige map — wat bij `curl | sh` je thuismap is.
Een derde kwam pas op de bouwserver boven: ontbrak `curl`, dan stopte ook een
proefdraai meteen. Juist dan wil je zien wat er gaat gebeuren, dus dat is nu een
waarschuwing in plaats van een harde fout — net als bij een ontbrekende Docker.
Dit is de eerste stabiele release sinds v0.4.60. Alles uit de v0.5-, v0.6- en
v0.7-beta's zit erin: inloggen met rollen, backups, netwerken met een eigen
IP-adres, 96 apps met categorieën, apps onderling koppelen, instellingen
achteraf wijzigen, en zelf bijwerken. Draaide je nog v0.4.60, lees dan eerst
`docs/beveiliging.md`: daar stond de interface nog open zonder login, en na het
bijwerken moet je meteen een beheerdersaccount aanmaken.
---
# v0.7.20-beta — Instellingen wijzigen, koppelen achteraf, en een defect uit v0.7.00

View file

@ -1 +1 @@
0.7.30-beta
0.7.30

View file

@ -140,7 +140,7 @@ controleer_systeem() {
bepaal_rechten
[ "$(uname -s)" = "Linux" ] || waarschuw "Dit script is voor Linux; op $(uname -s) is het onbeproefd."
for hulp in curl tar; do
heeft "$hulp" || fout "'$hulp' ontbreekt. Installeer het en probeer opnieuw."
heeft "$hulp" || fout_tenzij_droog "'$hulp' ontbreekt. Installeer het en probeer opnieuw."
done
goed "$(uname -s) $(uname -m)"
}

View file

@ -91,6 +91,40 @@ def test_dry_run_toont_de_hele_gang_van_zaken(tmp_path):
assert kop in r.stdout, f"stap ontbreekt: {kop}"
def _pad_zonder(tmp_path, *weglaten):
"""Een PATH met alles erin behalve de genoemde commando's."""
nep = tmp_path / "bin"
nep.mkdir()
import os
for map_ in os.environ.get("PATH", "").split(os.pathsep):
p = Path(map_)
if not p.is_dir():
continue
for f in p.iterdir():
if f.name in weglaten or (nep / f.name).exists():
continue
try:
(nep / f.name).symlink_to(f)
except OSError:
pass
return str(nep)
def test_proefdraai_werkt_zonder_curl_en_tar(tmp_path):
"""De CI-runner draait in python:3.12-slim, waar curl ontbreekt. Een
proefdraai hoort dan nog steeds de hele voorvertoning te tonen: dat is juist
het moment waarop je wil zien wat er zou gebeuren."""
r = subprocess.run(["sh", str(SCRIPT), "--dry-run", "--dir",
str(tmp_path / "su"), "--yes"],
capture_output=True, text=True, timeout=60,
env={"PATH": _pad_zonder(tmp_path, "curl", "tar"),
"HOME": str(tmp_path)})
assert r.returncode == 0, r.stderr
assert "[droog]" in r.stdout
assert "Bouwen en starten" in r.stdout
assert not (tmp_path / "su").exists()
def test_verwijst_naar_het_juiste_git_domein():
tekst = SCRIPT.read_text(encoding="utf-8")
assert 'GIT_HOST="git.ramonbesselink.nl"' in tekst