first commit

This commit is contained in:
Mateusz Gruszczyński committed 2026-09-29 13:37:57 +02:00
commit 093e6a7c14
39 files changed
+1112

No files matched your search

+66
View File
@@ -0,0 +1,66 @@
# 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.