- packaging/openwrt/: opkg Makefile, procd init script, uci config - scripts/cross-compile.sh: build for musl targets with size checks - .github/workflows/openwrt.yml: CI cross-compile + 5 MB size gate - docs/openwrt.md: installation and configuration guide - Targets: x86_64-musl, armv7-musleabihf, aarch64-musl - Uses cargo-zigbuild for Docker-free cross-compilation
46 lines
1.2 KiB
Bash
Executable File
46 lines
1.2 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# procd init script for quicproquo server.
|
|
# Reads configuration from /etc/config/quicproquo (uci).
|
|
|
|
START=95
|
|
STOP=10
|
|
USE_PROCD=1
|
|
|
|
PROG=/usr/bin/qpq-server
|
|
DATA_DIR=/var/lib/quicproquo
|
|
|
|
start_service() {
|
|
local listen data_dir log_level tls_cert tls_key production
|
|
|
|
config_load quicproquo
|
|
config_get listen server listen '0.0.0.0:7000'
|
|
config_get data_dir server data_dir "$DATA_DIR"
|
|
config_get log_level server log_level 'info'
|
|
config_get tls_cert server tls_cert "${data_dir}/server-cert.der"
|
|
config_get tls_key server tls_key "${data_dir}/server-key.der"
|
|
config_get_bool production server production 1
|
|
|
|
[ -d "$data_dir" ] || mkdir -p "$data_dir"
|
|
|
|
procd_open_instance
|
|
procd_set_param command "$PROG"
|
|
|
|
procd_set_param env \
|
|
RUST_LOG="$log_level" \
|
|
QPQ_LISTEN="$listen" \
|
|
QPQ_DATA_DIR="$data_dir" \
|
|
QPQ_TLS_CERT="$tls_cert" \
|
|
QPQ_TLS_KEY="$tls_key" \
|
|
QPQ_PRODUCTION="$production"
|
|
|
|
procd_set_param respawn 3600 5 5
|
|
procd_set_param stderr 1
|
|
procd_set_param stdout 1
|
|
procd_set_param user qpq
|
|
procd_close_instance
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "quicproquo"
|
|
}
|