{"id":21518213,"url":"https://github.com/databurg/databurg","last_synced_at":"2026-02-15T09:44:00.338Z","repository":{"id":264320898,"uuid":"892540056","full_name":"databurg/databurg","owner":"databurg","description":"Open-source backup system for flexible local and remote data management with advanced recovery options and point-in-time recovery.","archived":false,"fork":false,"pushed_at":"2025-03-31T08:48:35.000Z","size":36,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T13:11:42.075Z","etag":null,"topics":["backup","bucket","cli","cloud-backup","compression","data-backup","data-recovery","desaster-recovery","differential","encryption","file-backup","file-recovery","hosting","incremental","point-in-time","recovery","restore","rust","s3"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/databurg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"amallek","buy_me_a_coffee":"mallek"}},"created_at":"2024-11-22T10:00:55.000Z","updated_at":"2025-03-31T08:43:37.000Z","dependencies_parsed_at":"2025-03-11T11:22:24.669Z","dependency_job_id":"a240ccd7-0192-4033-b4a0-aaa9e23d2078","html_url":"https://github.com/databurg/databurg","commit_stats":null,"previous_names":["databurg/databurg"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/databurg/databurg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databurg%2Fdataburg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databurg%2Fdataburg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databurg%2Fdataburg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databurg%2Fdataburg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/databurg","download_url":"https://codeload.github.com/databurg/databurg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databurg%2Fdataburg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29475297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T06:58:05.414Z","status":"ssl_error","status_checked_at":"2026-02-15T06:58:05.085Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["backup","bucket","cli","cloud-backup","compression","data-backup","data-recovery","desaster-recovery","differential","encryption","file-backup","file-recovery","hosting","incremental","point-in-time","recovery","restore","rust","s3"],"created_at":"2024-11-24T00:50:49.826Z","updated_at":"2026-02-15T09:44:00.326Z","avatar_url":"https://github.com/databurg.png","language":"Rust","funding_links":["https://github.com/sponsors/amallek","https://buymeacoffee.com/mallek"],"categories":[],"sub_categories":[],"readme":"# Databurg Backup System\n\n![Build And Release](https://github.com/databurg/databurg/actions/workflows/release.yml/badge.svg)\n\nDataburg is an open-source backup system designed for efficient local and remote data management. It balances ease of use with robust data security and integrity, making it suitable for both small projects and large-scale deployments. Databurg provides flexible and reliable file backup options, advanced data recovery features, and tools for monitoring storage status, serving as a simpler alternative to traditional systems like  S3.\n\n## Key Features\n\n- **Advanced Backup Capabilities**: Back up your files and folders locally or to on-premises storage, supporting anything from small setups to large-scale environments.\n- **Granular Recovery Options**: Restore data from specific past versions for precise control over accidental changes or deletions. Either entire buckets or single files.\n- **Real-Time Status Monitoring**: Track synchronization, recovery points, and storage metrics to keep your backups reliable.\n- **Command-Line Interface (CLI)**: Manage backups, recoveries, and monitor status easily using CLI commands.\n- **Customizable Configurations**: Tailor configurations to fit various workflows, with built-in security features for safe data management.\n- **TypeScript Integration**: Provides a demo for connecting to the Databurg server using TypeScript, including listing recovery points for a bucket.\n\n## Getting Started\n\n### Cloning the Repository\n\nTo start using Databurg, clone the repository:\n\n```sh\ngit clone https://github.com/databurg/databurg.git\ncd databurg\n```\n\nThis provides the complete source code for customization and collaborative development.\n\n### Building Databurg\n\n#### Local Build\n\nTo build a Databurg release locally:\n\n```sh\ncargo build -p server -r\ncargo build -p client -r\n```\n\nThe executables are located at `target/release/databurg` and `target/release/databurgd`.\n\n#### Cross-Compilation for Linux Targets on macOS\n\n1. **Install Zig and Zigbuild**:\n\n   ```sh\n   brew install zig zigbuild\n   ```\n\n2. **Add Rust Targets**:\n\n   ```sh\n   rustup target add x86_64-unknown-linux-gnu\n   # Optional: rustup target add aarch64-unknown-linux-musl\n   ```\n\n3. **Compile Using Zig**:\n\n   ```sh\n   cargo zigbuild -p server -r --target x86_64-unknown-linux-gnu\n   cargo zigbuild -p client -r --target x86_64-unknown-linux-gnu\n   ```\n\nThis will generate Linux-compatible binaries.\n\n## Databurg Server\n\n### Starting the Server\n\nTo start the Databurg server:\n\n```sh\ndataburgd -d\n```\n\nBy default, a self-signed certificate is generated. For production, use custom certificates specified in `server/src/serve.rs`.\n\n### Installing as a System Service\n\nTo install Databurg as a system service:\n\n```sh\ncp databurgd.service /etc/systemd/system/databurgd.service\nsystemctl daemon-reload\nsystemctl start databurgd\nsystemctl enable databurgd\n```\n\n\u003e Ensure that you have configured a /etc/databurg.cnf file (refer to the instructions below).\n\nThis ensures the server runs automatically on system reboot.\n\n### Purging Obsolete Data\n\nTo keep your storage efficient, use a script to remove outdated data: [Purge Script](https://gist.github.com/amallek/749fd7d4da8e23a4319a147705298215).\n\n## Databurg Client\n\n### Performing Directory Backups\n\nTo back up a directory to a Databurg bucket:\n\n```sh\ndataburg backup -b MyBucket -s ./test-source\n```\n\nAdd tags for metadata using `-t \"key=value;key1=value1\"`.\n\n### Monitoring Bucket Status\n\nTo check the status and metadata of a bucket:\n\n```sh\ndataburg status -b MyBucket\n```\n\n### Listing Recovery Points\n\nTo convert status output into a CSV list of recovery points using `jq`:\n\n```sh\ndataburg status -b MyBucket | jq -r '.Ok.meta[] | select(.ack_count \u003e 0) | [.bucket, .ack_count, .nack_count, .skip_count, .timestamp.secs_since_epoch] | @csv'\n```\n\n### Recovering Files\n\nTo restore all files from a bucket to a specific directory:\n\n```sh\ndataburg recover -b MyBucket -s ./ -d ./test-recover [-c /etc/databurg.cnf]\n```\n\nTo recover data from a specific point in time, specify the timestamp:\n\n```sh\ndataburg recover -b MyBucket -s ./ -d ./test-recover -t 1730925459 [-c /etc/databurg.cnf]\n```\n\n## Configuration Guidelines\n\nDataburg is configured using environment variables set in a `.env` file located in the project's root directory:\n\n- `SERVER_HOSTNAME`: Server IP address or hostname.\n- `SERVER_PORT`: Server listening port (default: 2403).\n- `PRE_SHARED_SECURITY_TOKEN`: Security token for authentication.\n- `SERVER_LISTEN`: IP address for server binding (default: 0.0.0.0).\n- `STORAGE_BASE_DIR`: Base directory for data storage.\n- `CERTIFICATE_FILE`: Path to a custom TLS certificate (optional).\n- `PRIVATE_KEY_FILE`: Path to a custom TLS private key (optional).\n\n\u003e **Note**: Avoid setting `PRE_SHARED_SECURITY_TOKEN` in your `.env` file during compile time, as it may be embedded in the compiled binary, posing a security risk.\n\nTo use a custom configuration file:\n\n```sh\ndataburg backup -c /etc/databurg.cnf ..\ndataburg recover -c /etc/databurg.cnf ..\ndataburg status -c /etc/databurg.cnf ..\n```\n\nThis allows different settings for various environments, including `PRE_SHARED_SECURITY_TOKEN`.\n\n## License\n\nDataburg is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). For more details, see the [LICENSE](./LICENSE) file.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataburg%2Fdataburg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataburg%2Fdataburg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataburg%2Fdataburg/lists"}