67 lines
2.9 KiB
Markdown
67 lines
2.9 KiB
Markdown
# RustProxy OPNsense packaging repository
|
|
|
|
This repository contains only the OPNsense plugin and build/release automation. The RustProxy application source is **not vendored here**. The Debian scheduler downloads it dynamically from:
|
|
|
|
`https://git.linuxiarz.pl/gru/RustProxy`
|
|
|
|
## What is included
|
|
|
|
- `opnsense-plugin/www/rustproxy/` - OPNsense plugin source.
|
|
- `builder/debian/` - hourly scheduler and optional cross-build helper.
|
|
- `builder/freebsd/` - native FreeBSD release builder and repository signing helper.
|
|
- `ci/build-release.sh` - Debian-to-FreeBSD orchestration and publishing.
|
|
- `deploy/opnsense/` - custom package repository install/update helpers.
|
|
- `docs/` - setup and architecture notes.
|
|
|
|
## Source/update flow
|
|
|
|
```text
|
|
Packaging repository RustProxy upstream
|
|
(plugin + scripts) https://git.linuxiarz.pl/gru/RustProxy
|
|
| |
|
|
+------------------+-------------------+
|
|
v
|
|
Debian cron, hourly
|
|
|
|
|
detects either commit change
|
|
|
|
|
v
|
|
FreeBSD 15.1 amd64 builder
|
|
|
|
|
cargo test + cargo build
|
|
|
|
|
OPNsense make package
|
|
|
|
|
v
|
|
signed pkg repository
|
|
|
|
|
v
|
|
OPNsense
|
|
```
|
|
|
|
By default `APP_REPO_REF=HEAD`, so every cron run follows the current default branch of the RustProxy repository. You can instead pin a branch/tag/ref in `/etc/rustproxy-opnsense-builder.env`.
|
|
|
|
A release rebuild is triggered when either the packaging repository commit or the RustProxy upstream commit changes. The package version is read at build time from the dynamically downloaded `Cargo.toml`.
|
|
|
|
## Recommended release build
|
|
|
|
Use the Debian VM only as scheduler/orchestrator and a FreeBSD 15.1 amd64 VM as compiler/packager. The included Docker/cross path (`BUILD_MODE=cross-binary`) is for development validation only and does not publish production `.pkg` files.
|
|
|
|
## Quick validation
|
|
|
|
```sh
|
|
./scripts/check.sh
|
|
```
|
|
|
|
## Quick setup
|
|
|
|
Read `docs/FIRST_RUN.md`, copy `builder.env.example` to `/etc/rustproxy-opnsense-builder.env` on Debian and fill in your packaging-repository, SSH and publication settings. `APP_REPO_URL` is already set to your RustProxy repository.
|
|
|
|
## OPNsense UI scope
|
|
|
|
The plugin currently exposes only Enabled / Disabled. RustProxy is supervised by FreeBSD `daemon(8)`, runs as user `rustproxy`, and uses `/var/db/rustproxy` as its private data directory.
|
|
|
|
## License
|
|
|
|
RustProxy's `Cargo.toml` currently does not declare a license and the supplied source snapshot did not contain LICENSE/COPYING, so the plugin manifest remains `UNKNOWN`. Set the correct license before public redistribution.
|