Smorgasbord
a range of open sandwiches and delicacies served as hors d'oeuvres or a buffet
Smorgasbord purpose is to ease up the administration of a wireguard-based VPN.
It creates, stores and distributes client configurations for its users and can
derive server configuration using the provided agent.
Users can self-service their public keys after authenticating via OpenID Connect.
Rather than using a database the public keys and metadata are commited to a
git repository, which is used as storage endpoint.
Smorgasbord primary goal is to provide a minimalistic environment to manage
users across multiple wireguard servers applicable to embedded systems as well
as more complex installments.
Backlog topics
The backlog contains some bigger topics, which we might implement in the future.
However feel free to implement them yourself you need them.
Automatic removal
Currently it is required to manage the removal/deactivation of users manually,
e.g. admin removing entries from git repository.
However if the information about the deactivation is available via OIDC, e.g.
refresh token failing. It would be possible to deactivate users automatically.
Rather than provide the configuration and issuing a command (e.g. wg syncconf
)
the agent could configure wireguard interface directly using the go library.
About the name
This project started a late night project and the name was essentially what
came up first after googling "synonym self-service".
It might therefore be subject to change.