A web gateway to compute clusters, but really just a glorified SSH client.
(This software is probably not very useful to you. It is heavily branded and has lots of hard-coded assumptions.)
Depends on trash-cli, mashru3 and borg backup on the target.
You’ll need some form of automated user management, which clumsy provides, a working installation of conductor, an OAuth2-capable sign-on (only KeyCloak is supported right now) and a recent OpenSSH (>= 7.0) [1]. You can use our setup as a reference.
A good method to deploy bawwab is using guix:
guix package -p /usr/local/profiles/bawwab -f contrib/bawwab.scm
Then use the systemd service file provided in contrib/bawwab.service
to run it.
[1] | asyncssh’s .terminate() does not have an effect on prior versions, see channel.py |
bawwab is a Python backend based on sanic and tortoise-orm.
To get started with the development you need all the prerequisites listed above. Additionally you must configure your local Guix to use the channel guix-zpid. Then you can set up a development environment using
guix shell -L contrib/guix -D bawwab nss-certs openssl
virtualenv --system-site-packages -p python3 sandbox
source sandbox/bin/activate
python setup.py develop
configure it using the example in contrib/config.py
and run bawwab directly
from that directory
# Only needed, if the realm is not configured system-wide
export KRB5_CONFIG=contrib/krb5.conf
export BAWWAB_SETTINGS=/path/to/config.py
sanic --debug bawwab.app:app
The backend will pick up changes automatically when in debug mode.
To ease development it is also possible to override the logged in user,
removing the need for an OAuth server. You can enable it by adding the
following lines to your config.py
:
DEBUG = True
DEBUG_USER_OVERRIDE = {"sub":"173d4e4b-a862-4570-a3a9-87f4785ef4eb",
"email_verified":True,
"name":"Testuser",
"preferred_username":"testuser",
"given_name":"Testuser",
"family_name":"Test",
"email":"testuser@invalid"}