{"id":13593634,"url":"https://github.com/meltingice/RubyDrop","last_synced_at":"2025-04-09T05:31:48.151Z","repository":{"id":1516421,"uuid":"1774651","full_name":"meltingice/RubyDrop","owner":"meltingice","description":"A roll your own Dropbox-like clone written in Ruby.","archived":false,"fork":false,"pushed_at":"2015-05-12T04:11:11.000Z","size":175,"stargazers_count":126,"open_issues_count":2,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-26T08:07:29.484Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/meltingice.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}},"created_at":"2011-05-20T03:12:50.000Z","updated_at":"2024-12-18T03:10:06.000Z","dependencies_parsed_at":"2022-08-16T13:35:08.280Z","dependency_job_id":null,"html_url":"https://github.com/meltingice/RubyDrop","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/meltingice%2FRubyDrop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltingice%2FRubyDrop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltingice%2FRubyDrop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltingice%2FRubyDrop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meltingice","download_url":"https://codeload.github.com/meltingice/RubyDrop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247986779,"owners_count":21028887,"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":[],"created_at":"2024-08-01T16:01:22.431Z","updated_at":"2025-04-09T05:31:47.917Z","avatar_url":"https://github.com/meltingice.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"\u003ch1\u003eRubyDrop\u003c/h1\u003e\n\nRubyDrop is my first ever Ruby project that aims to be an open-source, roll-your-own, Dropbox clone using Git as the backend.  There's still a lot of details to work out, and the code may be a little messy, so you'll have to bear with me (it's a process).\n\n\u003ch1\u003ePrerequisites\u003c/h1\u003e\n\n* RubyGems\n* \u003ca href=\"https://github.com/schacon/grit\"\u003eGrit\u003c/a\u003e\n* Ruby 1.9+ (need require_relative function)\n\n\u003ch1\u003eHow to Run\u003c/h1\u003e\n\nYou can start RubyDrop by simply running:\n\n\u003cpre\u003e\n./RubyDrop \u0026\n\u003c/pre\u003e\n\nBy default, the RubyDrop folder that it monitors is created (if it doesn't exist already) at ~/RubyDrop. To change this path, simply edit config.yml. It also initializes a Git repository in the folder automatically, if it doesn't already exist.\n\n\u003ch1\u003eHandling Remote File Syncing and Tracking\u003c/h1\u003e\n\nAfter much deliberation, I have decided to go with Git for handling file tracking and remote file syncing.  We'll see how well this pans out...\n\nCurrently, you must manually create the git repo on your remote server. This will be automated as soon as I can write RubyDrop-Server.  If you are new to Git, this is how you do it (assuming you are SSH'd into your remote server):\n\nFirst, you will probably want to make a new user for RubyDrop:\n\n\u003cpre\u003e\nadduser rubydrop\n\u003c/pre\u003e\n\nThen, make it possible for RubyDrop to make a passwordless SSH connection to the server:\n\n[\"Shortest passwordless ssh tutorial, ever\"](http://blogs.translucentcode.org/mick/archives/000230.html)\n\nFinally, you will need to make the repository folder on the remote server (login to the remote server the newly created 'rubydrop' user):\n\u003cpre\u003e\ncd ~/\ngit init RubyDrop.git --bare\n\u003c/pre\u003e\n\nThat's it! Yes, I'm aware that was a really rough guide.\n\n\u003ch1\u003eControlling RubyDrop\u003c/h1\u003e\nRubyDrop has a TCP interface that you can use to communicate with it while its running.  The simplest and easiest way to do so is by using telnet.\n\nHere's an example that halts the RubyDrop daemon (by sending 'stop'):\n\n\u003cpre\u003e\ntelnet localhost 11311\nTrying 127.0.0.1...\nConnected to localhost.\nEscape character is '^]'.\nThu Nov 25 03:23:48 2010\nWelcome to RubyDrop\nstop\nRubyDrop daemon halting!\nConnection closed by foreign host.\n\u003c/pre\u003e\n\n\u003ch2\u003eTCP Interface Commands\u003c/h2\u003e\n* config_get [name]\n  * Retrieves the value from the RubyDrop config specified by [name]\n* stop\n  * Halts the daemon\n* quit\n  * Ends the TCP session, but leaves the daemon and TCP server running\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeltingice%2FRubyDrop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeltingice%2FRubyDrop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeltingice%2FRubyDrop/lists"}