1.7 KiB
1.7 KiB
OPNsense / FreeBSD pkg repo daemon
Lekki daemon na Alpine. Obserwuje /repo, odczytuje manifest z paczek FreeBSD .pkg,
automatycznie wersjonuje latest.pkg, pilnuje retencji i wystawia repo przez HTTP.
Start
cp .env.example .env
docker compose up -d --build
docker compose logs -f
Repo:
http://HOST:8478/
Upload z buildu
Mozesz zawsze wysylac ten sam plik:
scp latest.pkg user@repo-host:/opt/opnsense-pkg-repo/repo/latest.pkg
Daemon czyta z paczki:
+COMPACT_MANIFEST
i pola:
name
version
Przyklad:
latest.pkg
z manifestem:
{"name":"myapp","version":"1.4.7"}
zostanie automatycznie przemianowany na:
myapp-1.4.7.pkg
Nie musisz znac wersji po stronie CI.
Retencja
Domyslnie daemon zachowuje 10 najnowszych plikow dla kazdej nazwy pakietu:
RETENTION=10
Np.:
myapp-1.4.10.pkg
...
myapp-1.4.1.pkg
Starsze sa automatycznie usuwane. Kolejnosc retencji jest wedlug czasu pojawienia sie pliku w repo, a nie leksykograficznego sortowania numeru wersji.
Bez retencji:
RETENTION=0
Pozostale ENV
PORT=8080
POLL_INTERVAL=2
STABLE_SECONDS=2
LATEST_NAMES=latest.pkg
Mozesz miec kilka nazw uploadowych:
LATEST_NAMES=latest.pkg,myapp-latest.pkg
OPNsense
/usr/local/etc/pkg/repos/myrepo.conf:
MyRepo: {
url: "http://HOST:8478",
enabled: yes,
signature_type: "none"
}
Potem:
pkg update -f
pkg search myapp
pkg install -r MyRepo myapp
Logi
docker compose logs -f
Przy nowym buildzie zobaczysz np.:
[ingest] latest.pkg -> myapp-1.4.7.pkg
[retention] usunieto myapp-1.3.2.pkg (myapp, limit=10)
[repo] przebudowano katalog: 10 pakiet(ow)