{"id":19979459,"url":"https://github.com/msteinhoff/bysu","last_synced_at":"2026-03-06T13:03:23.995Z","repository":{"id":147881624,"uuid":"112551711","full_name":"msteinhoff/bysu","owner":"msteinhoff","description":"BYSU is a tiny, centralized, loosely coupled backup system for small Linux clusters.","archived":false,"fork":false,"pushed_at":"2017-11-30T22:30:13.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-12T10:28:50.190Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msteinhoff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-30T02:03:40.000Z","updated_at":"2017-11-30T02:03:40.000Z","dependencies_parsed_at":"2023-05-27T19:30:21.003Z","dependency_job_id":null,"html_url":"https://github.com/msteinhoff/bysu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Fbysu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Fbysu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Fbysu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Fbysu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msteinhoff","download_url":"https://codeload.github.com/msteinhoff/bysu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241413029,"owners_count":19958997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T03:37:51.278Z","updated_at":"2026-03-06T13:03:23.945Z","avatar_url":"https://github.com/msteinhoff.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# smack my bitch up - back your shit up\n\nBYSU is a tiny, centralized, loosely coupled backup system for small Linux\nclusters.\n\nIt is intended to be used in an environment where\n\n- a few small-to-medium scale applications run on a cluster with \u003c100 nodes\n- cluster nodes contain application state\n- snapshots of application state must be created in daily intervals\n- snapshots are small enough in size to get away without incremental backups\n- cluster nodes and backup storage must be isolated from each other\n\n# Use cases\n\nBYSU was designed with two use cases in mind:\n\n1. Disaster recovery\n\n    A Cluster node runs an application which stores application state in a RDBMS\n    or on the local node filesystem.  In case a node crashes, it must be\n    restored with the last know application state. Restoring a snapshot requires\n    tight coordination with the application and happens so seldom that its hard\n    to justify engineering work required to have a reliable and robust restore\n    mechanism.\n\n    **BYUS focuses on creating snapshots in a simple and future-proof format\n    (read: text files and tar) and collecting them in a central repository.\n    Snapshots must be restored manually.**\n\n    Because the mechanism is only designed for disaster recovery, rotation and\n    retention policies can be relaxed.  We couldn't think of a reason to include\n    multiple generations of historical snapshots using a grandfather-father-son\n    rotation scheme: Snapshots usually contain complex RDBMS dumps which cannot\n    easily be merged, and getting individual pieces from a historical snapshot\n    would require provisioning a second application instance, restoring the\n    snapshot, and finally extracting data using the application's UI.  It also\n    rarely, if ever, happens that such data must be accessed and it just doesn't\n    seem worth the effort.\n\n    **BYUS allows to store e.g. the last x snapshots for an application, but\n    does not perform any rotation.**\n\n2. Automatic snapshot restoration for staging systems\n\n    Applications in a production environment are snapshotted e.g. daily, and the\n    last snapshot can be restored in a staging environment automatically, e.g.\n    for load testing with real-world data.\n\n    **Automatic restore is out of scope for BYSU, but the BYSU snapshot\n    repository could act as a central building block for such a system.**\n\n# Design\n\nSee [DESIGN.md](DESIGN.md).\n\n# Installation\n\ntbd.\n\n# Configuration\n\ntbd.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsteinhoff%2Fbysu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsteinhoff%2Fbysu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsteinhoff%2Fbysu/lists"}