{"id":21058755,"url":"https://github.com/oros42/rhsync","last_synced_at":"2026-04-27T15:31:59.715Z","repository":{"id":69951730,"uuid":"275660884","full_name":"Oros42/RHSync","owner":"Oros42","description":"The Remote HTTP Synchronization","archived":false,"fork":false,"pushed_at":"2020-07-20T20:53:24.000Z","size":1443,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-01T14:38:32.973Z","etag":null,"topics":["gpg","http","pgp","rsync","sync","synchronisation","web"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Oros42.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":"2020-06-28T20:14:10.000Z","updated_at":"2020-07-20T20:53:27.000Z","dependencies_parsed_at":"2023-02-23T12:30:17.481Z","dependency_job_id":null,"html_url":"https://github.com/Oros42/RHSync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Oros42/RHSync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FRHSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FRHSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FRHSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FRHSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oros42","download_url":"https://codeload.github.com/Oros42/RHSync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FRHSync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32343215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["gpg","http","pgp","rsync","sync","synchronisation","web"],"created_at":"2024-11-19T17:09:01.878Z","updated_at":"2026-04-27T15:31:59.710Z","avatar_url":"https://github.com/Oros42.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RHSync\nThe Remote HTTP Synchronization  \n\n## Install\n\n```bash\nsudo apt install parallel gpg wget rsync\nwget https://raw.githubusercontent.com/Oros42/RHSync/develop/RHSync.sh\nchmod +x RHSync.sh\nwget https://raw.githubusercontent.com/Oros42/RHSync/develop/config.dist -O config\nnano config\n```\n\n## Demo\n\n```bash\nmkdir {out,tmp}\necho 'wwwDir=\"$(pwd)/out/\"\nwwwTmp=\"$(pwd)/tmp/\"\nkeyserver=\"hkps://keys.openpgp.org\"\nemail=\"testgpg5c69945c@ecirtam.net\"\nnodes=\"https://oros42.github.io/RHSync/node1/\nhttps://oros42.github.io/RHSync/node2/\"\ngpgHome=\"$(pwd)/private_keyrings/\"\n' \u003e configDemo\n./RHSync.sh -c configDemo --refreshkeys 0 sync demo/out/\n# Select 1\n```\nOpen out/index.html. You shout see a picture.  \nNow remove some random file.  \n```bash\nrm out/img_1*\n```\nUpdate you cache and re-run the synchro :  \n```bash\n./RHSync.sh -c configDemo --refreshkeys 0 index\n./RHSync.sh -c configDemo --refreshkeys 0 sync demo/out/\n```\nIt download only missing files :-)  \n\n## If you host the node 0\n\n### Create a PGP key for sign your release\n\n```bash\n./RHSync.sh keygen\n```\n/!\\ gpg-agent open a window to let you enter your password.  \nSo you need a display :-/  \n\n### Create a release\n```bash\n./RHSync.sh index\n./RHSync.sh release\n```\n\n\n## If you host a clone\n\n```bash\n./RHSync.sh index\n./RHSync.sh sync\n```\n\n\n## Help\n\n```bash\n$ ./RHSync.sh \nRemote HTTP Synchronization\nUsage: RHSync.sh [OPTION] ACTION [wwwDir]\n\nActions:\nsync\t\tSynchronization\nindex\t\tCreate new hash index (Contents.gz)\nrelease\t\tCreate new release (Release.gz + ReleaseInfos)\nkeygen\t\tGenerate a PGP key used to sign Release.gz and ReleaseInfos\n\nOptions:\n-c, --config\tPath to the config file\n-h, --help\t\tHelp\n--refreshkeys\t[1|0] 1: Refresh PGP key, 0: skip the refresh\n\nwwwDir: Path to the www directory\n\nExamples:\n./RHSync.sh sync\n./RHSync.sh -c myConf1 sync\n./RHSync.sh -c myConf1 --refreshkeys 0 sync\n./RHSync.sh index /var/www/mySite\n./RHSync.sh release /var/www/mySite\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foros42%2Frhsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foros42%2Frhsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foros42%2Frhsync/lists"}