Alcali is a web based tool for monitoring and administrating Saltstack Salt.
Get notified in real time when a job is created, updated or has returned.
Store your jobs results by leveraging the master_job_store
setting with database master returner.
Check your minions conformity to their highstate or any state.
Keep track of custom state at a glance.
Use custom auth module to login into both Alcali and the Salt-api using JWT.
LDAP and Google OAuth2 authentication.
If you just want to have a look, just clone the repository and use docker-compose:
git clone https://github.com/latenighttales/alcali.git
cd alcali
docker compose up --scale minion=2
Once you see minions waiting to be approved by the master, you're good to go:
...
minion_1 | [ERROR ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate
minion_1 | [INFO ] Waiting 10 seconds before retry.
...
Just connect on http://127.0.0.1:8000, login with:
username: admin
password: password
and follow the walkthrough.
The easiest way to install it is to use the salt formula.
Make sure to check the installation docs first!
More here.
Image: Jean-Philippe WMFr, derivative work : User:Benoit Rochon CC BY-SA 4.0
If you'd like to contribute, check the contribute documentation on how to install a dev environment and submit PR!
And if you like this project, consider donating:
via GitHub Sponsors, or
int: bugfix and deps update
feat: i18n (#353)
int: updated deps (#317)
fix: py36 compatible (#306)
fix: non-standard-minion-response (#281)
int: offline version (#225)
use salt 3000
updated deps (#185)
fix: UI errors (#187)
fix: users are able to reset their pw (#184)
fix: responsive layout (#178)
fix: password update (#164)
update deps 20200207 (#155)
fix: Less restrictive minion_id regex and error mgmt (#140)
feat: Google OAuth2 (#130)
updated deps (#111)
feat: Group jobs by jid (#106)
int: error mgmt (#105)
fix: favicon and boolrepr (#102)
fix: removed useless icon files, fixed boolean repr (#100)
fix: state render,Layout removed admin
feat: predefined jobs (#98)
fix: Boolean repr (#97)
feat: LDAP auth backend (#84)
fix: async run, updated deps (#82)
feat: fold/unfold all
feat: display current version in gui and cli dynamically (#76)
fix: timezone, success bool for custom modules (#75)
async link: resolve #69 (#74)
feat: schedule disable/enable (#72)
fix: schedules, keys, updated vuetify (#71)
int: updated docs, added contribute section, screenshots (#62)
use slim docker image
Added rest auth
Added pillar override
Updated deps