Commit graph

106 commits

Author SHA1 Message Date
6107a355f9 Improved singbox cleanup process. And added support for killing wireguard profiles inside end_singbox. 2026-10-15 19:02:47 -04:00
5dc1463862 Singbox on disable, checks if wireguard is active, and kills it 2026-10-15 16:20:44 -04:00
732b17fb4a Introduced new ProfileRepo to cache profiles. All profile access is now coordinated through the ProfileController. And the ProfileController's previous bloat mission-creep of connections, is now moved to it's own service repo 2026-10-15 12:10:49 -04:00
81002cd76d The Plumbing now allows for the service to provide it's own function_choice when it returns a result. Separetly, a new type_checker wrapper is now available for use. And finally, the config model now passes around the same instance as a singleton to avoid new file operations to just read 2026-10-14 18:16:13 -04:00
7ba8e1e6d3 Plumbing stable for GUI to call upon via inserted ENUM DICT 2026-10-13 21:19:49 -04:00
69f4e7114f Refactored billing to have core doing more, and GUI doing less. Also heavily relying upon the singleton pattern to transfer data between UI pages and core functions 2026-10-12 20:24:04 -04:00
9e4fd54eb6 Introduced MTU tools. MTU set for session configs automatically, for systemwide the testing is setup but not yet implemented. Also introduced server reply objects and a new v2 wg endpoint that doesn't require location codes. 2026-10-11 20:18:52 -04:00
10e46cd8ea New refactored Use of tickets and payment of tickets loops/state, integrated with existing system 2026-10-11 12:33:21 -04:00
f9698ced68 Support for multiple invoices being managed through a global payment cycle 2026-10-10 15:25:36 -04:00
430696b480 Resume Payments for individual profiles stable. Also fixed a bug with errors in filtering invalid replies to getting new wireguard conifgs 2026-10-07 18:33:16 -04:00
52b3e1ba94 Big Bang Refactor of Payments. Introduced a new paymentdata singleton that stores data across pages and on disk. Also introduced a suite of functions for handling payments 2026-10-07 13:29:19 -04:00
57774ae697 Infrastructure for payments overhaul. With state storage for billing, type checking, enums, and serialization. Also plan sql further refined 2026-10-04 20:07:56 -04:00
90dd9b309f Confirm Location's protocol support on edit 2026-10-03 17:27:34 -04:00
b132265a04 Location model shifts to boolean types. This will force a migration via Constants DB version. 2026-10-03 16:55:22 -04:00
9627b1861d Introduced new model: Plan. This differs from the legacy subscriptions because its based on time in months and supports multiple protocols at once in a list enum format 2026-10-03 14:47:38 -04:00
f2922b02a0 Enabled support for editing systemwide profile protocols including vless/hysteria2 2026-10-03 11:39:57 -04:00
dba8d79db8 vless client-server model match format 2026-10-01 18:44:33 -04:00
80415e2b28 client-side models to match server-side output 2026-10-01 18:24:39 -04:00
6982f46c37 ServerReply model initiated client-side, and used for wireguard config replies. 2026-09-30 18:50:19 -04:00
77c7123d73 Prepartion of univerisal cross-platform plumbing. And introduction of v2 billing/invoices 2026-09-28 17:30:08 -04:00
d35fc0db4b Bug fixes and tweaks for transitions 2026-09-21 12:35:37 -04:00
44558fb514 Large changes to the flow for using tickets. More formalized updating of JSON with explicit tools, instead of generic JSON functions. Orchestration returns Return objects, which are then formatted to dict for the GUI. 2026-08-24 15:57:42 -04:00
8968d89c5c Fallback for AppImage to preloaded YAMLs via pathlib 2026-08-21 12:38:32 -04:00
7fa65f80ba Database error types 2026-08-21 11:48:46 -04:00
90e7ee8da5 Sync Insert for unknown fields now drops the unknown fields, and proceeds. 2026-08-21 11:46:58 -04:00
5923cc8a7f Vless is now working. Config Parsing and setup is stable, and increased the wait time for connection testing. But this is a temporary solution. The real answer is not a static time check, but a dynamic result reading for when to test. Which then has it's own timeout time 2026-08-20 10:18:16 -04:00
c8811c93bb Linter undefined or missing import bugs 2026-08-19 21:40:36 -04:00
6dac98835f Assassin mode Introduced! The assassin_tools allows for creation/use of a session profile with random attributes, ephemeral wireguard config, and coordinates using a ticket for it. This tools module also allows for wiping the assassin's ticket & wireguard config on disable. Additionally, this git commit sees ProfileController using these assassin_tools functions for a working implementation if the profile is marked assassin=True. Also the associated eco-system of ApplicationController starting apps, the existing non-ticket legacy subscription handlers, and even GUI needed to be adjusted to allow for this new assassin flow. Finally, the generic JSON utilities have been improved to make this feature more robust and reliable. 2026-08-18 12:54:54 -04:00
829feb5939 The profile object now has a ticket field. It's now none by default. Also the profile object is passed in, for the use of tickets, both for GUI and core. 2026-08-15 14:09:34 -04:00
31488f790e Introduced Ticket/Billing-Code Respawn, with dual paths on the ticket prep orchestration, it's helper functions, and the main prep controller. This introduced the functions, which were tested with a demo CLI client and local server, and appears to be stable. Server-side endpoints will be pushed as well. Note: This update couples profile slot ids more closely with which ticket slot id is being used for it, but they are not yet officially tied. In the future, they should be. 2026-08-14 19:36:22 -04:00
951802fe5c Improved Singbox Setup Error handling for edge cases 2026-08-12 15:57:51 -04:00
b84bb2eefa Singbox setup modules, which includes installation, download, move to sudo folder, and sudo setup scripts. Added a model, endpoint, and the ability to sync that model. (Related note: Server-side prepared the endpoint, and stocked with real data.) And also the sync service modules were adjusted to handle new data types more smoothly, before they had errors. As part of that sync flow change, the CachedSync metadata model was transitioned to ints instead of strings, with default 0 values. This should in theory migrate all clients without further changes needed. 2026-08-12 13:11:12 -04:00
c3b50460cd IP address checking for singbox enforced in singbox runner 2026-08-10 17:58:31 -04:00
9d0d140467 Singbox Orchestration! Significant progress made on singbox flow, we now have a working: 1) Configure via singbox_configure. 2) Enable/disable directly via singbox module. 3) Enable/disable with full orchestration via singbox_runner. 4) process id utils isolated. 5) Singbox takedown uses JSON & process id, but not yet coordinating a mismatch. Also in this update: Transition traditional wireguard subscription post/get requests to the new HTTPx system. 2026-08-10 15:49:47 -04:00
320037a2b1 EncryptedProxy configuration path setup, but not yet functional. Pydantic models for each protocol are being setup. 2026-08-06 20:58:36 -04:00
983924303d importlib for assets such as yaml 2026-08-06 15:29:26 -04:00
8da4978498 Linter bug fixes. Mostly undeclared, unused, or missing imports. One or two outright typos. There's still issues with undeclared types that need to be fixed after api connection refactor is fully implemented. 2026-08-05 12:03:11 -04:00
b70818f774 Added a forced sync at startup if there's no DB pre-existing, to handle a bug in GUI with no application versions. Isolated application_version database calls to their own module. And fixed a bug in SyncController to catch if application_version updates and split them into the different tables. 2026-08-05 02:45:52 -04:00
46c8721a1a Sync from the main app streamlines into the Connect module, to do async bulk sync. Additionally ApplicationVersion was transitioned from manual SQL to the ORM, for easier compatibility with the newer sync system. The side effect functions of this have been tested to be stable. 2026-08-04 20:17:45 -04:00
ed055f338d Introduced Connect Module, which manages HTTPx Clients, solves network/DNS issues, and coordinates Tor Bootstraps. Introduced async & single endpoint full workflows. This version is stable and tested for DNS & Tor problems. Also modified Configuration to be Pydantic, instead of @dataclass_json, and changed the connection type to enums. Further, there's a new enum function to get the new enum types, but the legacy function exists for backwards compatability. 2026-08-03 16:59:39 -04:00
bf22f764d0 Singbox takedown modules, with a graceful shutdown, then kill, then searching for processes with the phrase. And doing tunnel checks inbetween 2026-07-29 18:58:59 -04:00
5377b7348b Introduced Singbox Proxy Feature Start Utility & Script. But it's not yet integrated to be used 2026-07-29 15:04:33 -04:00
1baaa4042c Separation of performing subprocess commands, parsing them for error strings, and handling those errors as enum types. Systemwide error handling was introduced via a wrapper to all systemwide functions requiring the sudo scripts. 2026-07-23 18:41:52 -04:00
4d6f810100 Setup Script & Actual Firewall DNS Scripts. As well as optional functions to do automated setups 2026-07-22 20:37:20 -04:00
ff493455b3 Introduced Managed DNS settings to Wireguard, which is redundant for nmcli. However, this same framework can be used for other protocols or implementations. 2026-07-22 14:04:50 -04:00
c4ffe9be3c Integration of Firewall feature to Systemwide Wireguard 2026-07-21 09:44:03 -04:00
bd34f456b5 Introduced IP-interface-based killswitch support for systemwide wireguard, on enable only. This version is stable and working for enable only, with a test script in the fileslot. And fixed GUI's object save creation. Additionally rolled back Connection data models to previous non-enum version. 2026-07-20 13:07:04 -04:00
703fe57c12 Introduce Base profile types on load, which gradually will switch over on save/edits. Transition Connections to using Enum instead of raw strings. 2026-07-18 16:44:54 -04:00
00d6fc7738 Pushed Edit Profile GUI logic into core. Cut ProfileController's role in this, and setup an isolated update_profile function to pass saves to the model 2026-07-17 22:33:00 -04:00
5235f168a3 Clarify/comment unused function 2026-07-17 12:40:38 -04:00