This is a GUI client application for the webmesh project. It is written in Go using the fyne toolkit. It can be used to connect to a webmesh for client-only use. In the future it may be extended to include support for server functionality.
- An accessible webmesh node. You can use the
docker-compose
in this repository to run one locally. - Go 1.20 or later
To build the application, run go build
in the root of this repository or you can use go run main.go
to build and run it in one step.
Since the application needs to manage network interfaces and routes, a privileged daemon is required if the app is not run as root.
The daemon can be started by running a webmesh-node
with the --app-daemon
flag.
You can also use the docker-compose
in this repository to run a node with the daemon enabled.
webmesh-node --app-daemon --app-daemon-bind tcp://127.0.0.1:8080
By default, on unix-like systems, the daemon will listen on a unix socket at /var/run/webmesh/webmesh.sock
.
The permissions of the socket will be set to 770 with an ownership of root:root
or root:webmesh
if the group exists.
This will be the preferred method of communication for deployment targets.
To start an app pre-set to a specific socket address you can pass the --socket-addr
flag to the app.
go run main.go --socket-addr tcp://127.0.0.1:8080