Skip to content

Latest commit

 

History

8,295 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shaken Fist: Opinionated to the point of being impolite

Python application Package version

Documentation: https://shakenfist.com/ Source Code: https://github.com/shakenfist/shakenfist

Deployment

Shaken Fist is deployed with the shakenfist.shakenfist Ansible collection (which lives in shakenfist/deploy/collection/ in this repository and is published to Ansible Galaxy). You write an inventory describing your machines, set a handful of variables, and run a playbook. Ready-to-use examples ship in examples/examples/single-node/ is the recommended quickstart. See docs/operator_guide/installation.md for the full walkthrough.

Prerequisites

Shaken Fist requires an operator-provided MariaDB 10.11.0+ server (the INET4 column type it uses arrived in 10.10, and 10.11 is the oldest in-support LTS above that, so this is a hard requirement rather than a preference). Before deploying, provision a MariaDB instance and apply the bootstrap snippet (tools/bootstrap-mariadb.sql). See docs/operator_guide/database.md for the complete setup workflow.

Shaken Fist emits structured JSON logs and can ship them to an operator-provided Loki, or log locally to the systemd journal if you prefer your own log agent. See docs/operator_guide/logging.md.

Shaken Fist monitors the storage each node depends on and takes a node with failed storage (a dead disk or a hung NFS mount) out of scheduling automatically. See docs/operator_guide/node_health.md.

Claude Code Skills

This repository includes Claude Code skills in .claude/skills/ to assist with common development tasks:

  • add-grpc-service: Guides adding new gRPC service methods to the database microservice, including proto definitions, handler implementation, and client functions.
  • add-mypy-coverage: Guides adding mypy type annotations to modules, following the incremental rollout approach documented in docs/developer_guide/mypy.md.

These skills are loaded automatically when using Claude Code within this repository.

About

Old man shakes fist at cloud

Resources

Stars

35 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages