{"id":17551593,"url":"https://github.com/mati365/hetzner-minio-backup-server","last_synced_at":"2025-04-12T04:22:18.729Z","repository":{"id":229571616,"uuid":"774211914","full_name":"Mati365/hetzner-minio-backup-server","owner":"Mati365","description":"Example of a rock-solid centralised backup server hosted on Fedora CoreOS in the Hetzner Cloud. Uses tools such as MinIO, NGINX, Podman Quadlet and Letsencrypt. ","archived":false,"fork":false,"pushed_at":"2024-09-23T23:26:46.000Z","size":261,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-25T23:51:25.349Z","etag":null,"topics":["ansible","backup","backup-script","backup-server","containers","docker","hetzner","iac","minio","nginx","podman","postgresql","s3"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mati365.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":"2024-03-19T06:24:50.000Z","updated_at":"2024-11-11T12:59:03.000Z","dependencies_parsed_at":"2024-12-09T09:43:12.380Z","dependency_job_id":"18774b28-1fdf-409b-aea9-91a5cb293d68","html_url":"https://github.com/Mati365/hetzner-minio-backup-server","commit_stats":null,"previous_names":["mati365/hetzner-minio-backup-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fhetzner-minio-backup-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fhetzner-minio-backup-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fhetzner-minio-backup-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mati365%2Fhetzner-minio-backup-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mati365","download_url":"https://codeload.github.com/Mati365/hetzner-minio-backup-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514532,"owners_count":21116977,"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":["ansible","backup","backup-script","backup-server","containers","docker","hetzner","iac","minio","nginx","podman","postgresql","s3"],"created_at":"2024-10-21T04:46:49.401Z","updated_at":"2025-04-12T04:22:18.696Z","avatar_url":"https://github.com/Mati365.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hetzner-minio-backup-server\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/mati365/hetzner-minio-backup-server?style=flat-square)\n![GitHub issues](https://img.shields.io/github/issues/mati365/hetzner-minio-backup-server?style=flat-square)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nExample of a rock-solid centralised backup server hosted on Fedora CoreOS in the Hetzner Cloud. Uses tools such as MinIO, NGINX, Podman Quadlet and Letsencrypt.\n\n## Infra environment variables\n\n```bash\nHCLOUD_KEY=\u003chetzner api key with read \u0026 write permissions\u003e\nBACKUP_WEBSITE_DOMAIN=\u003caddres of your site like: example.org\u003e\nBACKUP_MINIO_USERNAME=\u003cminio dashboard user name\u003e\nBACKUP_MINIO_PASSWORD=\u003cminio dashboard user password\u003e\n```\n\n## Job policy\n\nJob policy is a file that describes all jobs that should be performed on specified hosts. It uses ssh tunneling configured in `auth` section to connect to remote servers. Example YML (or JSON) file structure:\n\n```yml\n---\nhosts:\n  - auth:\n      address: 192.168.1.133\n      username: your-remote-user\n      privateKey: /home/your-local-user/.ssh/id_rsa\n    jobs:\n      test-db-job:\n        kind: pg-dump\n        cron:\n          expression: 0 0 0 * * *\n        retention:\n          maxBackups: 7\n        minio:\n          bucket: backup\n          key: local-db-backup/dump-%{timestamp}.tar.gz\n        database:\n          name: test_db\n          auth:\n            username: postgres\n            password: 123456\n\n      test-db-all-job:\n        kind: pg-dump-all\n        cron:\n          expression: 0 0 0 * * *\n        retention:\n          maxBackups: 7\n        minio:\n          bucket: backup\n          key: local-db-all-backup/dump-all-%{timestamp}.tar.gz\n        database:\n          auth:\n            username: postgres\n            password: 123456\n\n      test-rsync-job:\n        kind: copy\n        exclude:\n          - node_modules/cat\n        cron:\n          expression: 0 0 0 * * *\n        retention:\n          maxBackups: 7\n        minio:\n          bucket: backup\n          key: local-files-backup/dump-%{timestamp}.tar.gz\n        fileOrDir: /home/your-remote-user/backup/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmati365%2Fhetzner-minio-backup-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmati365%2Fhetzner-minio-backup-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmati365%2Fhetzner-minio-backup-server/lists"}