Commit Graph

34 Commits

Author SHA1 Message Date
Herbert Wolverson
7117e0d5f1 Loading/saving layouts to/from the server is functioning. 2024-06-26 12:16:46 -05:00
Herbert Wolverson
5c89e90731 JS based esbuild going. 2024-06-26 12:16:46 -05:00
Herbert Wolverson
07dd42d981 Small improvements to site breadcrumbs 2023-08-07 17:45:28 +00:00
Herbert Wolverson
b305ff95fc Lots of small render fixes 2023-06-14 18:36:42 +00:00
Herbert Wolverson
f7571f2cb3 Merge branch 'develop' into long_term_stats 2023-05-23 17:46:35 +00:00
Herbert Wolverson
f41e9d7261 WASM-based websocket system, including compression and binary encoding. 2023-05-20 15:36:04 +00:00
bile0026
775d9ffe0e
feat: 🎉 base docs structure 2023-05-19 10:43:52 -05:00
Herbert Wolverson
cadd3aa800 Add the new tool to the git ignore list. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
a84f590393 Very first baby-steps into the land of modern web development.
Use `esbuild` to build TypeScript, and bundle components together
in a minified form for the `lts_node` website.

This is very much a work in progress, committing as a checkpoint.
2023-04-21 18:52:53 +00:00
Herbert Wolverson
e75dbca434 To make it easier while I work on a bizarre split setup, store the influx url and the host IP separately. 2023-04-20 20:02:34 +00:00
Herbert Wolverson
ec53edd73d Merge Cargo.toml with develop 2023-04-20 13:32:59 +00:00
Robert Chacón
77f21b4118
Update .gitignore 2023-04-19 19:14:47 -06:00
Robert Chacón
71e7610c75
Update .gitignore 2023-04-19 19:09:56 -06:00
Herbert Wolverson
cc88ed1c62 Add the new tool to the git ignore list. 2023-04-18 13:05:55 +00:00
Herbert Wolverson
6337bdb3d0 WIP - sumissions transition to a processing queue. Beginnings of some early Influx code. 2023-04-17 13:10:54 +00:00
Herbert Wolverson
403dddd1b9 PKI for the license server. Replies to public key exchange requests with a server-cluster side public key. 69 bytes, not too heavy. 2023-04-14 17:52:42 +00:00
Herbert Wolverson
26efcdb208 Proof of concept with a tiny webserver 2023-03-20 19:17:21 +00:00
Herbert Wolverson
3e9ff0c0f5 (Very alpha!) Add dpkg builder and initial configurator
* Adds a new Rust program, `lqos_setup`.
    * If no /etc/lqos.conf is found, prompts for interfaces and
      creates a dual-interface XDP bridge setup.
    * If no /opt/libreqos/src/ispConfig.py is found, prompts
      for bandwidth and creates one (using the interfaces also)
    * Same for ShapedDevices.csv and network.json
    * If no webusers are found, prompts to make one.
* Adds build_dbpkg.sh
    * Creates a new directory named `dist`
    * Builds the Rust components in a portable mode.
    * Creates a list of dependencies and DEBIAN directory
      with control and postinst files.
    * Handles PIP dependencies in postinst
    * Calls the new `lqos_setup` program for final
      configuration.
    * Sets up the daemons in systemd and enables them.

In very brief testing, I had a working XDP bridge with
1 fake user and a total bandwidth limit configured and
working after running:

dpkg -i 1.4-1.dpkg
apt -f install

Could still use some tweaking.
2023-02-21 20:26:34 +00:00
Herbert Wolverson
27c079f9cf Add lqusers.toml to .gitignore after it was renamed. 2023-02-14 20:41:38 +00:00
Herbert Wolverson
1da10d7a23 Add bin/lqusers to the gitignore file. 2023-02-14 20:37:02 +00:00
Herbert Wolverson
393a489bca Allow logged-in users to update ispConfig.py via web UI
1) lqos_config understands writing to a new ispConfig.py file, copying the
   previous one and amending to avoid changing any not-covered data.
2) The web UI can adjust the config, upload a new one and it is saved.

Signed-off-by: Herbert Wolverson <herberticus@gmail.com>
2023-01-10 16:12:09 +00:00
Herbert Wolverson
165dae030b Adds an authentication system.
* The new Rust utility "webusers" manages /opt/libreqos/webusers.toml.
* You can add/update/remove/list users from that tool.
* The "allow anonymous" option in webusers.toml permits access for
  unauthenticated users, but won't let them change anything. This is
  for payne demonstrations.
* All web APIs and pages should now be secured, requiring a login.
* The login requires cookies.

Signed-off-by: Herbert Wolverson <herberticus@gmail.com>
2023-01-10 14:12:51 +00:00
Herbert Wolverson
42c77f3432 Add example systemctl .service files
Add example .service files for lqosd and lqos_node_manager.

Signed-off-by: Herbert Wolverson <herberticus@gmail.com>
2023-01-10 14:12:50 +00:00
Herbert Wolverson
b01b9520a5 First iteration of a Python module for direct bus interaction
* Adds the `lqos_python` module to the Rust build system.
* `lqos_python` exposes an API for calling bus commands
  directly, instead of via a helper. Currently, "is alive"
  for testing the daemon, and IP mappings are exported.
* Update the build script to build the .so file and put
  it where Python can find it.
* Exclude the binary from Git.
* Update `LibreQoS.py` to use bus commands for clearing,
  deleting IP mappings. Adding is not yet covered, due
  to the way commands are batched - and that not yet being
  supported by the library.
* Add a check to `LibreQoS.py` that the `lqosd` daemon
  is running and accepting connections. Abort if it isn't,
  since nothing else will work anyway.

Signed-off-by: Herbert Wolverson <herberticus@gmail.com>
2023-01-10 14:12:50 +00:00
Herbert Wolverson
bd5ace9fbf Couple more .gitignore entries to avoid including
Linux TC status and lastRun.txt in the tree.

Signed-off-by: Herbert Wolverson <herberticus@gmail.com>
2023-01-10 14:12:50 +00:00
Herbert Wolverson
deded47cac Add build script and associated path changes
* Adds build_rust.sh:
   * Creates `src/bin` and `src/bin/static` if needed.
   * Compiles all of the executables in the `rust` tree.
   * Copies the executables into `src/bin`
   * Copies the static web data for `lqos_node_manager`
     into `bin/static`.
* Updates .gitignore to ignore the bin/ folder
* Updates LibreQoS.py to call bin/xdp_iphash_to_cpu_cmdline
  instead of ./xdp_iphash_to_cpu_cmdline (cleaner).
* Updates graphInfluxDB.py to call the temporary Rust shim
  that provides output like the previous one, hopefully
  (poorly tested) allowing the existing graph system to work
  with the new structure.

See #181

Signed-off-by: Herbert Wolverson <herberticus@gmail.com>
2023-01-10 14:12:50 +00:00
Herbert Wolverson
b0ff63d278 Update .gitignore, fix syntax in LibreQoS.py
* Add src/rust/target to the .gitignore file,
  to avoid including Rust build artifacts in the
  Git tree.
* Fix the syntax when calling the IP mapping helper
  and deleting IP mappings.

Signed-off-by: Herbert Wolverson <herberticus@gmail.com>
2023-01-10 14:12:50 +00:00
Dave Täht
113a3f7c96 More gitignore fixes 2022-12-10 21:37:52 -08:00
Dave Täht
a1d779f2d4 Clean up .gitignore 2022-12-10 20:43:29 -08:00
rchac
0821df4f76 remove cpumap-pping from gitignore 2022-10-22 14:48:29 -06:00
rchac
c86395bb66 Switch from xdp-cpumap-tc to cpumap-pping 2022-10-21 22:49:50 -06:00
Robert Chacón
337b898bdc
Update .gitignore 2022-09-27 12:18:54 -06:00
Robert Chacón
f161bd3819
add ignores/dirty so the branch stays clean/_more_ pullable in prod 2022-09-13 07:59:04 -06:00
Warren
c36460007b add ignores/dirty so the branch stays clean/_more_ pullable in prod 2022-09-13 16:52:08 +12:00