first commit
This commit is contained in:
commit
8bef2e68bb
5 files changed
+441
No files matched your search
@@ -0,0 +1,133 @@
|
||||
# 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
|
||||
|
||||
```sh
|
||||
cp .env.example .env
|
||||
docker compose up -d --build
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
Repo:
|
||||
|
||||
```text
|
||||
http://HOST:8478/
|
||||
```
|
||||
|
||||
## Upload z buildu
|
||||
|
||||
Mozesz zawsze wysylac ten sam plik:
|
||||
|
||||
```sh
|
||||
scp latest.pkg user@repo-host:/opt/opnsense-pkg-repo/repo/latest.pkg
|
||||
```
|
||||
|
||||
Daemon czyta z paczki:
|
||||
|
||||
```text
|
||||
+COMPACT_MANIFEST
|
||||
```
|
||||
|
||||
i pola:
|
||||
|
||||
```text
|
||||
name
|
||||
version
|
||||
```
|
||||
|
||||
Przyklad:
|
||||
|
||||
```text
|
||||
latest.pkg
|
||||
```
|
||||
|
||||
z manifestem:
|
||||
|
||||
```json
|
||||
{"name":"myapp","version":"1.4.7"}
|
||||
```
|
||||
|
||||
zostanie automatycznie przemianowany na:
|
||||
|
||||
```text
|
||||
myapp-1.4.7.pkg
|
||||
```
|
||||
|
||||
Nie musisz znac wersji po stronie CI.
|
||||
|
||||
## Retencja
|
||||
|
||||
Domyslnie daemon zachowuje 10 najnowszych plikow dla kazdej nazwy pakietu:
|
||||
|
||||
```env
|
||||
RETENTION=10
|
||||
```
|
||||
|
||||
Np.:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```env
|
||||
RETENTION=0
|
||||
```
|
||||
|
||||
## Pozostale ENV
|
||||
|
||||
```env
|
||||
PORT=8080
|
||||
POLL_INTERVAL=2
|
||||
STABLE_SECONDS=2
|
||||
LATEST_NAMES=latest.pkg
|
||||
```
|
||||
|
||||
Mozesz miec kilka nazw uploadowych:
|
||||
|
||||
```env
|
||||
LATEST_NAMES=latest.pkg,myapp-latest.pkg
|
||||
```
|
||||
|
||||
## OPNsense
|
||||
|
||||
`/usr/local/etc/pkg/repos/myrepo.conf`:
|
||||
|
||||
```ucl
|
||||
MyRepo: {
|
||||
url: "http://HOST:8478",
|
||||
enabled: yes,
|
||||
signature_type: "none"
|
||||
}
|
||||
```
|
||||
|
||||
Potem:
|
||||
|
||||
```sh
|
||||
pkg update -f
|
||||
pkg search myapp
|
||||
pkg install -r MyRepo myapp
|
||||
```
|
||||
|
||||
## Logi
|
||||
|
||||
```sh
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
Przy nowym buildzie zobaczysz np.:
|
||||
|
||||
```text
|
||||
[ingest] latest.pkg -> myapp-1.4.7.pkg
|
||||
[retention] usunieto myapp-1.3.2.pkg (myapp, limit=10)
|
||||
[repo] przebudowano katalog: 10 pakiet(ow)
|
||||
```
|
||||
Reference in new issue
Block a user