Files
rcond/README.md

1.8 KiB

rcond

A simple daemon to manage network connections through NetworkManager's D-Bus interface.

It provides a REST API to:

  • Create and activate WiFi connections
  • Deactivate WiFi connections
  • Remove stored connection profiles

The daemon is designed to run on Linux systems with NetworkManager.

Build and Run

make build
make run

API

The full API specification can be found in api/rcond.yaml.

Endpoints

Method Path Description
GET /health Health check endpoint that returns status
POST /network/up Create and activate a WiFi access point
POST /network/down Deactivate a WiFi interface
POST /network/remove Remove the stored connection profile
GET /hostname Get the hostname
POST /hostname Set the hostname

Response Codes

  • 200: Success
  • 400: Bad request (invalid JSON payload)
  • 405: Method not allowed
  • 500: Internal server error

Request/Response Format

All endpoints use JSON for request and response payloads.

Bring a network up

curl -v -X POST http://localhost:8080/network/up \
  -H "Content-Type: application/json" \
  -d '{
    "interface": "wlan0",
    "ssid":      "MyNetworkSSID",
    "password":  "SuperSecretPassword"
  }'

Bring a network down

curl -v -X POST http://localhost:8080/network/down \
  -H "Content-Type: application/json" \
  -d '{
    "interface": "wlan0"
  }'

Remove the stored connection

curl -v -X POST http://localhost:8080/network/remove

Get the hostname

curl -v http://localhost:8080/hostname

Set the hostname

curl -v -X POST http://localhost:8080/hostname \
  -H "Content-Type: application/json" \
  -d '{
    "hostname": "MyHostname"
  }'