Commit graph

37 commits

Author SHA1 Message Date
Andrevich
e07082d002 Rebrand to Re:HomeProxy and installer improvements
Rename project and packages to Re:HomeProxy (luci-app-re-homeproxy), update package metadata and build scripts, and adjust UI labels and menus accordingly. Improve core install flow: add RAM detection, overlay-compression heuristics, automatic selection between full and compact (UPX) builds, stricter storage/RAM checks, and a variant argument for prepare_install; fetch sing-box-extended releases more robustly. Fix runtime behavior: init.d restores a default config when missing, add packaged homeproxy.default, prefer user-preferred core in ucode, and suppress top-level TLS for Shadowsocks in generated client configs. UI tweaks include better install/remove UX, gating "Same as main node" for custom routing, and updated diagnostics/status strings. Update translations (po files) and rpcd/menu/acl renames to match the rebrand.
2026-06-14 21:32:23 +04:00
Andrevich
dea996732a Add Persian i18n, CI packaging and UI tweaks
Add full Farsi (fa_IR) translation and CI/build support: - Add po/fa_IR/homeproxy.po (Persian translations). - Extend .github/build-ipk.sh to build a luci-i18n-homeproxy-fa package for both apk and ipk formats. - Update .github/workflows/build-ipk.yml to watch po/**, expose FA artifact names to the environment, and upload fa APK/IPK artifacts.

UI/runtime changes: - Update htdocs/luci-static/resources/view/homeproxy/node.js to rename TLS fingerprint field tls_fingerprint -> tls_utls in parsed link objects. - Add active node polling and display (getActiveNode) in htdocs/luci-static/resources/view/homeproxy/status.js and show the Active Node dummy field when core_type === 'singbox'.

Other: - Update RPC/uCode (root/usr/share/rpcd/ucode/luci.homeproxy) and translation templates/other locale files to support the new UI/RPC changes and translation strings.
2026-06-10 23:26:24 +04:00
Andrevich
0266c5e1c9 Add outbound interface binding, Direct/Proxy IP checks, YouTube test, Clash API for all routing modes, and zh-cn i18n package
New Features
Outbound Interface Binding

Added Binded interface field to every outbound node — allows pinning a proxy node to a specific network interface. using SO_BINDTODEVICE
The bind_interface value is preserved across subscription updates and not overwritten when nodes are refreshed
Status Page — IP Check

Added Direct IP button: shows the current exit IP and latency of the direct outbound
Added Proxy IP button: shows the exit IP, latency, and active node name of the currently selected proxy in the URLTest/Fallback group
Status Page — YouTube Check

Added YouTube connectivity check alongside the existing Google, Yandex, Baidu, Speedtest checks
Clash API

sing-box Clash API now enabled on 127.0.0.1:9090 for all routing modes
Build
Added luci-i18n-homeproxy-zh-cn package to the build pipeline — Chinese Simplified translation is now distributed as a standalone installable package, for both main and legacy (OpenWRT 23.05) releases
Translations
Added Russian and Chinese Simplified translations for all new UI strings
Fixed missing Russian translation for unchecked
2026-05-25 12:20:08 +04:00
Andrevich
aac9cff875 Add Mieru, Naïve, SSH, WireGuard parsing, UI fixes, missing node crash fixes, Release naming change
Changelog
Link Import (Import share links)
Added support for importing Mieru, SSH, WireGuard, and NaïveProxy share links — these were parsed by the subscription backend but silently ignored by the UI importer
Added VLESS xhttp transport support, including Hiddify extensions: TLS fragment, allowInsecure, custom headers, and download settings (xhttp/reality/TLS)
Added Trojan xhttp transport support with the same Hiddify fragment and allowInsecure extensions
Fixed Hysteria2 insecure detection — the old check treated insecure=0 as insecure (any non-empty string is truthy in JS)
Fixed TUIC missing with_quic feature guard, added tls_insecure, zero_rtt_handshake, and heartbeat fields
Mieru Node UI
Added Mieru as a selectable node type (requires with_quic build, same as Hysteria/TUIC)
Added Mieru-specific fields: Protocol (TCP / UDP / TCP and UDP), Port range, Multiplexing level, and Handshake mode
The generic Port field is now hidden for Mieru nodes since Mieru uses a port range instead of a single port
Added Russian and Chinese translations for all new Mieru UI strings
Stability Fix
Fixed a hiddify-core crash (nil pointer dereference in OutboundMonitoring.Start) that occurred when a node was deleted but still referenced in a URLTest group — the config generator now silently skips non-existent nodes instead of emitting a broken outbound
Client Routing
Added inbound matching to routing rules — rules can now be scoped to specific inbound tags (dns-in, mixed-in, tproxy-in, tun-in, or any server-defined inbound)
Build & Versioning
Package versions now use YYYY.MM.DD-rN format (e.g. 2025.05.19-r83) — date-based CalVer with APK-native revision suffix, replacing the opaque unix epoch + git hash format
Release tag and package version are now consistent with each other (previously they were two different values)
Makefile and build-ipk.yml updated to comply with OpenWRT CONTRIBUTING.md
2026-05-19 16:44:33 +04:00
Andrevich
db8670fdf5 Workflow fix 2026-05-16 12:49:17 +04:00
Andrevich
0c27743883 Add legacy IPK build and async subscription update
Introduce a legacy build mode for OpenWRT 23.05 and make subscription updates asynchronous with status polling. Changes: add LEGACY arg to .github/build-ipk.sh (produce -legacy IPKs and patch update_subscriptions.uc to avoid ucode-mod-digest by injecting an md5 shim), adjust control Depends and artifact names; update .github/workflows/build-ipk.yml to build/publish legacy IPKs and tweak asset matching; implement non-blocking subscription_update + new subscription_update_status RPC in root/usr/share/rpcd/ucode/luci.homeproxy; update frontend (htdocs/...) to poll update status with timeout and use translated timeout message (po/ru/...). This enables compatibility with systems missing ucode-mod-digest and avoids blocking UI during long subscription updates.
2026-05-16 12:44:06 +04:00
Andrevich
0a5fd113a2 Update release upload pattern
Replace the previous .github/luci-*_*.* upload pattern with an explicit glob .github/*.{apk,ipk,pub} for both push/workflow_dispatch and release uploads (file_glob remains true). Remove the steps that published the signing public key (.github/homeproxy-hiddify.pub) into separate release
2026-05-15 16:27:18 +04:00
Andrevich
05c9ef5900 Add Russian i18n package and APK release updates
Add full Russian translation (po/ru/homeproxy.po) and extend packaging pipeline to build a separate luci-i18n-homeproxy-ru package (APK/IPK) in .github/build-ipk.sh. Update GitHub Actions workflow to expose and upload i18n artifacts and signing key (env vars + artifact uploads), broaden release file globbing, and adjust artifact names. Update README with APK install instructions and OpenWRT/ImmortalWrt version notes and key installation guidance.
2026-05-15 15:42:35 +04:00
Andrevich
15e75f4c18 Remove publishing of signing public key
Delete the workflow step that uploaded the APK signing public key (.github/homeproxy-hiddify.pub) to GitHub Releases in .github/workflows/build-ipk.yml. The svenstaro/upload-release-action step conditioned on push/workflow_dispatch and APK_SIGN_KEY has been removed; the main 'Publishing to GitHub Releases' step remains.
2026-05-14 19:27:55 +04:00
Andrevich
4329461a7a Switch to apk mkpkg and build apk-tools in CI
Replace the manual control/data tarball creation with apk mkpkg in .github/build-ipk.sh — pass package metadata, scripts, dependencies and optional signing key, then move the resulting .apk to the output dir. Update CI (.github/workflows/build-ipk.yml) to checkout alpinelinux/apk-tools at a specific commit, install meson/ninja and other build deps, and build/install apk-tools so apk mkpkg is available in the runner. This simplifies packaging and removes the custom tar-based APK assembly.
2026-05-14 19:24:35 +04:00
Andrevich
04ea032a7b Build APK v2 manually; simplify workflow deps
Replace the previous apk mkpkg flow with manual APK v2 assembly: compute package size, generate .PKGINFO, copy install scripts (.post-install/.post-upgrade/.pre-deinstall), create control and data tar.gz streams, and concatenate them into an unsigned APK compatible with OpenWRT's apk format.

Also simplify the CI workflow by removing the checkout/build/install of alpinelinux/apk-tools and the meson/ninja steps, and reduce installed apt packages to the essentials required for packaging (build-essential, curl, fakeroot, lua5.1). This avoids building apk-tools in CI and produces a compatible APK v2 output directly.
2026-05-14 18:45:28 +04:00
Andrevich
494aada900 Add APK signing and trim dependencies
Enable optional APK signing and publish the signing public key; remove unnecessary kmod dependency and shorten package description. Changes: .github/workflows/build-ipk.yml reads APK_SIGNING_KEY secret, exposes APK_SIGN_KEY env, writes a public key (.github/homeproxy-hiddify.pub), and uploads it to artifacts/releases when signing is used. .github/build-ipk.sh now conditionally passes --sign-key to apk build and shortens the package description. Makefile and control metadata drop the kmod-nft-tproxy dependency and remove the ARM64/AMD64 mention from the description.
2026-05-14 18:12:28 +04:00
Andrevich
ca99f2f521
Modify build-ipk workflow for HomeProxy
Updated workflow name and removed 'dev' branch from triggers.
2026-05-13 18:55:50 +04:00
Andrevich
5d488ede7b Update build-ipk.yml 2026-05-13 18:28:41 +04:00
Andrevich
be6493cc32 Update build-ipk.yml 2026-05-13 18:23:12 +04:00
Andrevich
6d58063953 Generate release tag and publish draft prerelease
Add a step that generates a timestamped RELEASE_TAG (UTC) and exports it to GITHUB_ENV. Add a new upload step (svenstaro/upload-release-action@v2) to publish the built .github/luci-app-homeproxy-hiddify_*.* artifact as a draft prerelease when triggered by push or workflow_dispatch, using the generated tag as the release name. Existing publish-for-release behavior for release events is preserved.
2026-05-13 18:16:39 +04:00
Andrevich
1c89a617d4 Rename package to luci-app-homeproxy-hiddify
Rebrand the package to luci-app-homeproxy-hiddify across build scripts, Makefile, and CI. Update package metadata (description, origin, maintainer, source) in .github/build-ipk.sh and control file generation. Adjust GitHub Actions artifact pattern to .github/luci-app-homeproxy-hiddify_* in .github/workflows/build-ipk.yml. Update Makefile package name and conffiles definition. Update README: change install command, add opkg architecture note, and include Log and Inbounds example configurations for hiddify-core.
2026-05-13 17:50:51 +04:00
Andrevich
605dc64644
Upgrade GitHub Actions to version 6 and 7 2026-05-13 00:30:18 +04:00
Andrevich
bc5b9094f9
Add workflow_dispatch trigger to build-ipk.yml 2026-05-13 00:19:48 +04:00
Andrevich
4f3511fdaf Switch sing-box to hiddify-core
Migrate the project from sing-box to hiddify-core across packaging, init scripts, UI and runtime helpers. Removed sing-box package dependency from build/IPK/Makefile and updated GitHub Actions usages (checkout/upload-artifact pinned to v4). UI and status/log viewers now reference hiddify-c/hiddify-core and log filenames were renamed. init.d was rewritten to use /usr/bin/hiddify-core, load client config from /etc/homeproxy/hiddify-c.json, simplify routing/tproxy setup, adjust dnsmasq handling, and run hiddify-c via procd; log cleaner and ACL/ucode RPC checks were updated accordingly. Overall this change migrates runtime/service names, config paths and version parsing to hiddify-core.
2026-05-12 23:47:25 +04:00
Tianling Shen
e2e2f7ba84
CI: skip compress ipk/apk package
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2026-03-12 11:47:48 +08:00
Tianling Shen
2dd979b557
CI: update dependencies
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2026-03-12 11:17:07 +08:00
Tianling Shen
f2a1ad5e0d
CI: bump apk-tools to 3.0.2
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-12-14 19:36:13 +08:00
Tianling Shen
57f2632c55
CI: bump apk-tools to 2025-10-07
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-10-17 16:18:29 +08:00
Tianling Shen
0b675578cc
chore(CI): minor update
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-10-04 16:39:07 +08:00
Tianling Shen
7fad994528
feat(CI): add apk build
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-09-24 22:25:16 +08:00
Tianling Shen
5116ece155
feat: add script to rescan translation
no need to use actions.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-06-21 20:43:07 +08:00
Tianling Shen
83d0c7c43a
ci(build-ipk): ignore issue template update
[skip ci]

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-10-16 15:45:09 +08:00
Tianling Shen
1415f3b37a
ci(build-ipk): specify asset name
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-09-03 21:38:33 +08:00
Tianling Shen
5f604ce6df
chore(ci): update dependencies 2024-04-02 14:55:50 +08:00
Tianling Shen
33835d0310
chore(ci): update dependencies
[skip ci]

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-02-20 21:58:42 +08:00
Tianling Shen
e05a4d3625
chore(workflow): build for language files 2023-04-16 06:08:17 +08:00
Tianling Shen
7ecabcaf36
CI: auto rescan translation
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-11 17:22:05 +08:00
Tianling Shen
02e283d2a8
CI: update branch for pr trigger
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-11 16:53:08 +08:00
Tianling Shen
0abfe7a53c
CI: build ipk for dev branch
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-11 16:49:53 +08:00
Tianling Shen
2f9332982c
CI: fix trigger branch
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-02-10 10:31:11 +08:00
Tianling Shen
61d7d981c1
CI: build ipk automatically
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-02-10 10:16:59 +08:00