{"id":16938344,"url":"https://github.com/dsnet/zsync","last_synced_at":"2025-03-23T17:30:54.656Z","repository":{"id":57642457,"uuid":"102240058","full_name":"dsnet/zsync","owner":"dsnet","description":"Daemon for replicating ZFS datasets.","archived":false,"fork":false,"pushed_at":"2024-08-08T20:15:25.000Z","size":167,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T22:12:04.104Z","etag":null,"topics":["backup","zfs","zfs-snapshots","zfs-sync-storage"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dsnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-09-03T04:01:03.000Z","updated_at":"2024-12-05T07:38:30.000Z","dependencies_parsed_at":"2024-06-20T17:34:08.309Z","dependency_job_id":"0e00637c-b126-4788-bf7e-a976e57b2658","html_url":"https://github.com/dsnet/zsync","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/dsnet%2Fzsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fzsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fzsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fzsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsnet","download_url":"https://codeload.github.com/dsnet/zsync/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245140788,"owners_count":20567448,"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":["backup","zfs","zfs-snapshots","zfs-sync-storage"],"created_at":"2024-10-13T21:00:54.797Z","updated_at":"2025-03-23T17:30:54.046Z","avatar_url":"https://github.com/dsnet.png","language":"Go","readme":"# ZFS syncing daemon #\n\n\n## Introduction ##\n\nThe `zsync` daemon auto-snapshots ZFS datasets, replicates datasets, and\nauto-deletes stale snapshots. The replication can be performed across machines\nin either a push or pull mechanism using either SSH or local OS subprocesses.\n\nThis only tested with [ZFS on Linux](http://zfsonlinux.org/).\n\n\n## Usage ##\n\n### Delegate ZFS permissions ###\n\nIn order for the daemon to properly perform ZFS operations, the `zfs allow`\nfeature must be used to enable permissions on certain operations.\n\nThe following permissions should be granted:\n```bash\n# On all sources:\nsudo zfs allow $USER send,snapshot,destroy,mount $DATASET\n\n# On all mirrors:\nsudo zfs allow $USER receive,create,mount,mountpoint,readonly,snapshot,destroy,mount $DATASET\n```\n\nThe `mountpoint` and `readonly` properties are only need when performing the\nfirst replication, where the receiving side sets `mountpoint=none` and\n`readonly=on`.\n\nThe `zpool` and `zfs` tool must work without `sudo`.\nSee the [\"Changes in Behavior\" section of the ZoL v0.7.0 release](https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.0).\n\n### Build the daemon ###\n\n```go get -u github.com/dsnet/zsync```\n\nThe instruction steps below assume `$GOPATH/bin` is in your `$PATH`,\nso that the `zsync` binary can be executed directly from the shell.\n\n### Create configuration file ###\n\nThe operation of `zsync` is configured using a JSON configuration file,\nwhere the full list of features can be listed by running `zsync -help`.\n\nHere is an example configuration file (adjust as appropriate):\n```javascript\n{\n\t\"SSH\": {\n\t\t\"KeyFiles\":       [\"/home/user/.ssh/id_rsa\"],\n\t\t\"KnownHostFiles\": [\"/home/user/.ssh/known_hosts\"],\n\t},\n\n\t\"AutoSnapshot\": {\"Cron\": \"@daily\", \"Count\": 7},\n\t\"Datasets\": [{\n\t\t\"Source\":  \"//localhost/tank/dataset\",\n\t\t\"Mirrors\": [\"//user@remotehost:22/tank/dataset-mirror\"],\n\t}],\n}\n```\n\nThis example auto-snapshots daily and only keeps 7 snapshots.\nIt replicates `tank/dataset` on the local machine to `tank/dataset-mirror`\non a remote machine using an SSH push.\n\n### Running the daemon ###\n\nStart the daemon with:\n```bash\nzsync /path/to/config.json\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsnet%2Fzsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsnet%2Fzsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsnet%2Fzsync/lists"}