{"id":17069534,"url":"https://github.com/mgalgs/rafty","last_synced_at":"2026-04-30T18:32:09.170Z","repository":{"id":29801674,"uuid":"33346011","full_name":"mgalgs/rafty","owner":"mgalgs","description":"Ripper and Friggin' Transcoder Y'all","archived":false,"fork":false,"pushed_at":"2016-02-22T20:47:23.000Z","size":31,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-29T21:47:52.033Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://git.io/vgPXU","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mgalgs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-03T04:21:34.000Z","updated_at":"2020-05-12T23:53:15.000Z","dependencies_parsed_at":"2022-09-06T20:41:04.755Z","dependency_job_id":null,"html_url":"https://github.com/mgalgs/rafty","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mgalgs/rafty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgalgs%2Frafty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgalgs%2Frafty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgalgs%2Frafty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgalgs%2Frafty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mgalgs","download_url":"https://codeload.github.com/mgalgs/rafty/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgalgs%2Frafty/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32473804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: 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":[],"created_at":"2024-10-14T11:27:07.287Z","updated_at":"2026-04-30T18:32:09.144Z","avatar_url":"https://github.com/mgalgs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Rafty is a hacky DVD backup solution with the potential to scale\nhorizontally.  You can read more about the design in\n[this blog post](http://mgalgs.github.io/2015/04/02/rafty-dvd-backups-using-systemd-docker-rabbitmq-and-go.html).\n\n# Pre-requisites\n\n`HandBrakeCLI`, `lsdvd`, `mplayer`, `dd`, `rabbitmq`, `ddrescue` (optional)\n\n# Installation\n\nThe following steps should roughly get you up and running:\n\n    $ cd /path/to/rafty\n    $ make deps all\n    $ sudo make install\n\nYou also need to edit two configuration files and a systemd service\n(updating them with your username, etc):\n\n    /etc/conf.d/rafty-dd-one.conf\n    /etc/conf.d/rafty-handbraked.conf\n    /etc/systemd/system/rafty-handbraked.service\n\nYou'll also need [`rabbitmq`](https://www.rabbitmq.com/) running on\n`localhost`.\n\nNow start the daemon and reload your udev rules:\n\n    $ sudo systemctl start rafty-handbraked.service\n    $ sudo udevadm control --reload\n\nAnd \"that's it\"!  Now the next time you insert a DVD the Rafty Rube\nGoldberg machine should kick into action!\n\n# Manual Invocation\n\nIf the `udev` rafting isn't working raftily enough for you, you can invoke\nthe rip+encode process manually with:\n\n    $ sudo DEVNAME=/dev/sr0 rafty-dd-one.sh\n\n(adjusting `/dev/sr0` as necessary).\n\nI've found that some discs need to be \"primed\" by playing them for a few\nminutes with `mplayer` before attempting to rip them.  You'll need to use\nthe above command to start the rip process after \"priming\" the disc in\nthose cases.\n\nIf you have some isos sitting around you can send them to the encode queue\nwith:\n\n    $ rafty-handbrakectl newiso /path/to/movie.iso\n\nHappy Rafting!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgalgs%2Frafty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmgalgs%2Frafty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgalgs%2Frafty/lists"}