All Projects → mk-fg → NetworkManager-WiFi-WebUI

mk-fg / NetworkManager-WiFi-WebUI

Licence: WTFPL license
Web interface (python2/twisted) for NetworkManager daemon to manage WiFi connections

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
coffeescript
4710 projects
CSS
56736 projects
Makefile
30231 projects

Projects that are alternatives of or similar to NetworkManager-WiFi-WebUI

gonetworkmanager
Go D-Bus bindings for NetworkManager
Stars: ✭ 54 (+28.57%)
Mutual labels:  dbus, networkmanager
dbus-java
Improved version of java DBus library provided by freedesktop.org (https://dbus.freedesktop.org/doc/dbus-java/)
Stars: ✭ 124 (+195.24%)
Mutual labels:  dbus
txi2p
I2P bindings for Twisted.
Stars: ✭ 12 (-71.43%)
Mutual labels:  twisted
public
BitDust project source codes : official Public Git repository (mirror on GitHub) : https://bitdust.io
Stars: ✭ 19 (-54.76%)
Mutual labels:  twisted
webview-c
A tiny cross-platform webview C library to build modern cross-platform GUIs
Stars: ✭ 44 (+4.76%)
Mutual labels:  webui
s9k
dashboard/web app for managing kubernetes clusters, with similar functionality as k9s
Stars: ✭ 15 (-64.29%)
Mutual labels:  webui
ServerStatus-web
Web UI for ServerStatus
Stars: ✭ 96 (+128.57%)
Mutual labels:  webui
gtk-sni-tray
A StatusNotifierHost widget written using the gtk+3 bindings for haskell provided by gi-gtk.
Stars: ✭ 24 (-42.86%)
Mutual labels:  dbus
angular-alerta-webui
Alerta Web UI 6.0 (DEPRECATED) - See latest version Web UI 7.0
Stars: ✭ 69 (+64.29%)
Mutual labels:  webui
Network-Simulation-Using-Cisco-Packet-Tracer
🖧 Designed this network configuration for the network of three companies, given some constraints. Its an interesting problem demonstrating the concepts of Classless IP Subnetting and using RIPv2 Protocol.
Stars: ✭ 47 (+11.9%)
Mutual labels:  network-configuration
PiBootstrapper
Windows app to configure Raspbian SD card image before first boot
Stars: ✭ 40 (-4.76%)
Mutual labels:  wifi-configuration
xpub
POSIX Shell script to get user's display environment variables of any TTY from anywhere.
Stars: ✭ 36 (-14.29%)
Mutual labels:  dbus
InitWare
The InitWare Suite of Middleware allows you to manage services and system resources as logical entities called units. Its main component is a service management ("init") system.
Stars: ✭ 164 (+290.48%)
Mutual labels:  dbus
Molder
BDD steps libraries for test automation databases, web services, and WebUI
Stars: ✭ 16 (-61.9%)
Mutual labels:  webui
lua-systemd
Systemd bindings for Lua
Stars: ✭ 33 (-21.43%)
Mutual labels:  dbus
WebView
Efficient UE browser uses CEF open source kernel; When the frame rate is 60 per second and the resolution is 4K, a single GPU is rendered, and the UE and browser will not lose frames. 8K frame rate does not decrease under multi GPU binding.
Stars: ✭ 157 (+273.81%)
Mutual labels:  webui
pade
Python Agent DEvelopment framework
Stars: ✭ 81 (+92.86%)
Mutual labels:  twisted
coctohug
Coctohug - Manage dozens of chia forks mining from a web browser! Nice localization with support of dozens of languages. Runs on Linux, Windows, MacOS, and more...
Stars: ✭ 36 (-14.29%)
Mutual labels:  webui
awesome-power widget
A Power widget for the Awesome Window Manager
Stars: ✭ 25 (-40.48%)
Mutual labels:  dbus
callsign
Small DNS service to support local development. Provides the functionality of cloud-based DNS services on your local machine, allowing automated deployment simulations on the desktop.
Stars: ✭ 42 (+0%)
Mutual labels:  twisted

NetworkManager-WiFi-WebUI

Simple web (http/browser) interface for NetworkManager daemon to manage WiFi connections.

Designed to work with JS enabled or not, dynamically updating through websockets (though currently xhr-streaming transport is forced, see notes below), http streaming, long-poll, jsonp or whatever other mechanism SockJS supports, if possible.

Requirements for this UI are to be fairly lite/minimal, responsive, be able to enable WiFi, pick AP, connect/disconnect and get basic status/scan updates, so nothing fancy, can almost be considered to be a proof of concept.


Screenshot

nm-wifi-webui interface looks

Uses bundled (old v3.1.1) bootstrap icons/css/js, bootstrap-switch, jquery/modernizr (both can probably be dropped by now), sockjs. Doesn't make any external api requests, no images or other static.

Installation

Process example (starting as root):

# useradd nm-wifi-webui
# mkdir -m0700 ~nm-wifi-webui
# chown -R nm-wifi-webui: ~nm-wifi-webui

# mkdir -p /etc/polkit-1/rules.d/
# cat >/etc/polkit-1/rules.d/50-nm-wifi-webui.rules <<EOF
polkit.addRule(function(action, subject) { if ( subject.user == "nm-wifi-webui"
  && action.id.indexOf("org.freedesktop.NetworkManager.") == 0 ) return polkit.Result.YES })
EOF

# mkdir -p /etc/polkit-1/localauthority/50-local.d/
# cat >/etc/polkit-1/localauthority/50-local.d/nm-wifi-webui.pkla <<EOF
[nm-wifi-webui]
Identity=unix-user:nm-wifi-webui
Action=org.freedesktop.NetworkManager.*
ResultAny=yes
EOF

# su - nm-wifi-webui

% pip2 install --user twisted txsockjs jinja2 txdbus bencode

% git clone --depth=1 https://github.com/mk-fg/NetworkManager-WiFi-WebUI
% cd NetworkManager-WiFi-WebUI
% ./nm-wifi-webui.py --debug

Note: "polkit-1/localauthority" is only for old polkit <= 0.105 (run pkaction --version), like ones that debians might still use.

See ./nm-wifi-webui.py --help output for more configuration options.

Make sure that you also have NetworkManager itself installed and running.

Requirements

Notes

  • Obviously, being a WebUI, this thing is only accessible through some kind of network interface (loopback counts), and at the same time is responsible for setting one up, so keep that in mind wrt potential uses.

    Common use-case is to show up in kiosk-mode browser on something like Raspberry Pi (until there's net connection), or be accessible over (not managed by NM) ethernet link.

  • Code is a bit rusty and bitrotten, fixes are most welcome.

    In particular, sockjs + websockets over insecure connection don't seem to work in modern FF for me (while forcing other transport like xhr-streaming works fine), which might be trivial to fix though.

    See also: sockjs/sockjs-client#94

    Also, not using the thing (or NM) myself on a regular basis, so likely not a very well-maintained project.

  • Doesn't need any extra webserver, as it runs on twisted.

  • All communication with NM is done through DBus interface, so any permission errors there should be resolved either via /etc/dbus-1/system.d/*.conf files or /etc/polkit-1/rules.d/*.rules files.

    Daemon checks all permissions on start, and will exit immediately if any of them aren't unambiguous "yes".

  • Daemon registers its own "Secret Agent" and stores auth info in secrets.bencode file alongside main script by default.

    See also --secrets-file option.

  • When debugging DBus or websocket stuff, running script with --noise option can be useful, as it'd dump all traffic on these, as script is sending/receiving it.

  • Note that gtk3 NM frontend(s) (e.g. default GNOME applet) can be used as a webui too with GDK_BACKEND=broadway, see: https://developer.gnome.org/gtk3/stable/gtk-broadway.html

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].