feat: publish dbussmsforward refactor

This commit is contained in:
2026-05-08 23:54:03 +08:00
commit 9f1ee9ffe6
77 changed files with 15585 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
{
"daemon": {
"mode": "forward",
"validate_on_startup": true,
"use_systemd": true,
"log_level": "INFO",
"host": "0.0.0.0",
"port": 8080
},
"forwarding": {
"device_name": "router-01",
"sms_code_key": "验证码±verification±code±认证±代码±随机码",
"ignore_storage_type": "sm",
"enable_sms_code_extraction": true,
"enabled_channels": ["autman_push"]
},
"notifications": {
"console": {
"enabled": false
},
"autman_push": {
"enabled": true,
"api_url": "https://autman.example/api/push",
"access_token": "REPLACE_ME",
"method": "POST"
}
},
"sms_source": {
"kind": "modemmanager",
"path": "",
"delete_after_read": false,
"poll_interval_seconds": 5,
"system_bus_address": "unix:path=/run/dbus/system_bus_socket",
"modemmanager_service": "org.freedesktop.ModemManager1",
"modem_object_path": "auto",
"storage_blacklist": ["sm"],
"state_ready_values": [3]
}
}
+21
View File
@@ -0,0 +1,21 @@
[Unit]
Description=DbusSmsForward Python SMS forwarding daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/dbussmsforward
Environment=PYTHONUNBUFFERED=1
Environment=PYTHONPATH=/opt/dbussmsforward/src
Environment=DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
ExecStart=/usr/bin/env python3 -m dbussmsforward.cli run --config /etc/dbussmsforward/appsettings.json --iterations 0
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env sh
set -eu
APP_NAME="dbussmsforward"
ROOT_DIR="${ROOT_DIR:-/}"
APP_DIR="${ROOT_DIR%/}/opt/dbussmsforward"
CONFIG_DIR="${ROOT_DIR%/}/etc/dbussmsforward"
SYSTEMD_UNIT="${ROOT_DIR%/}/etc/systemd/system/${APP_NAME}.service"
CONFIG_FILE="$CONFIG_DIR/appsettings.json"
ENV_REPORT="$CONFIG_DIR/install-env-check.json"
SKIP_SERVICE_ENABLE="${SKIP_SERVICE_ENABLE:-0}"
mkdir -p "$APP_DIR" "$CONFIG_DIR" "$(dirname "$SYSTEMD_UNIT")"
cp -R src wwwroot pyproject.toml README.md "$APP_DIR/"
if [ ! -f "$CONFIG_FILE" ]; then
cp deploy/common/appsettings.deploy.json "$CONFIG_FILE"
fi
cp deploy/debian/dbussmsforward.service "$SYSTEMD_UNIT"
if ! PYTHONPATH="$APP_DIR/src" python3 -m dbussmsforward.cli env-check --config "$CONFIG_FILE" --format json > "$ENV_REPORT"; then
echo "Environment check failed. Report saved to $ENV_REPORT" >&2
cat "$ENV_REPORT" >&2
exit 1
fi
if [ "$SKIP_SERVICE_ENABLE" != "1" ]; then
systemctl daemon-reload
systemctl enable "$APP_NAME"
fi
echo "Installed to $APP_DIR"
echo "Config: $CONFIG_FILE"
echo "Env check report: $ENV_REPORT"
echo "Start with: systemctl start $APP_NAME"
echo "Logs with: journalctl -u $APP_NAME -f"
+34
View File
@@ -0,0 +1,34 @@
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=95
STOP=10
NAME="dbussmsforward"
APP_DIR="/opt/dbussmsforward"
CONFIG_FILE="/etc/dbussmsforward/appsettings.json"
PYTHON_BIN="/usr/bin/python3"
MODULE="dbussmsforward.cli"
start_service() {
procd_open_instance
procd_set_param command "$PYTHON_BIN" -m "$MODULE" run --config "$CONFIG_FILE" --iterations 0
procd_set_param env PYTHONUNBUFFERED=1
procd_set_param env DBUS_SYSTEM_BUS_ADDRESS=unix:path=/var/run/dbus/system_bus_socket
procd_set_param env PYTHONPATH="$APP_DIR/src"
procd_set_param env HOME=/root
procd_set_param working_dir "$APP_DIR"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn 3600 5 5
procd_set_param file "$CONFIG_FILE"
procd_close_instance
}
service_triggers() {
procd_add_reload_trigger "$NAME"
}
reload_service() {
stop
start
}
+35
View File
@@ -0,0 +1,35 @@
#!/bin/sh
set -eu
APP_NAME="dbussmsforward"
ROOT_DIR="${ROOT_DIR:-/}"
APP_DIR="${ROOT_DIR%/}/opt/dbussmsforward"
CONFIG_DIR="${ROOT_DIR%/}/etc/dbussmsforward"
INIT_SCRIPT="${ROOT_DIR%/}/etc/init.d/${APP_NAME}"
CONFIG_FILE="$CONFIG_DIR/appsettings.json"
ENV_REPORT="$CONFIG_DIR/install-env-check.json"
SKIP_SERVICE_ENABLE="${SKIP_SERVICE_ENABLE:-0}"
mkdir -p "$APP_DIR" "$CONFIG_DIR" "$(dirname "$INIT_SCRIPT")"
cp -R src wwwroot pyproject.toml README.md "$APP_DIR/"
if [ ! -f "$CONFIG_FILE" ]; then
cp deploy/common/appsettings.deploy.json "$CONFIG_FILE"
fi
cp deploy/openwrt/dbussmsforward.init "$INIT_SCRIPT"
chmod +x "$INIT_SCRIPT"
if ! PYTHONPATH="$APP_DIR/src" python3 -m dbussmsforward.cli env-check --config "$CONFIG_FILE" --format json > "$ENV_REPORT"; then
echo "Environment check failed. Report saved to $ENV_REPORT" >&2
cat "$ENV_REPORT" >&2
exit 1
fi
if [ "$SKIP_SERVICE_ENABLE" != "1" ]; then
"$INIT_SCRIPT" enable
fi
echo "Installed to $APP_DIR"
echo "Config: $CONFIG_FILE"
echo "Env check report: $ENV_REPORT"
echo "Start with: $INIT_SCRIPT start"
echo "Logs with: logread -e ${APP_NAME}"