{"id":15192130,"url":"https://github.com/diego1q2w/drop-box-it","last_synced_at":"2026-03-05T01:03:45.818Z","repository":{"id":176658142,"uuid":"215501207","full_name":"diego1q2w/drop-box-it","owner":"diego1q2w","description":"A simple but useful directory synchronizer across HTTP","archived":false,"fork":false,"pushed_at":"2019-10-29T16:12:30.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-06-27T19:01:45.072Z","etag":null,"topics":["docker-compose","dropbox","golang","gzip","synchronization"],"latest_commit_sha":null,"homepage":"","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/diego1q2w.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-16T08:50:35.000Z","updated_at":"2024-06-19T07:49:52.560Z","dependencies_parsed_at":"2024-02-06T02:46:37.912Z","dependency_job_id":null,"html_url":"https://github.com/diego1q2w/drop-box-it","commit_stats":null,"previous_names":["diego1q2w/drop-box-it"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/diego1q2w/drop-box-it","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diego1q2w%2Fdrop-box-it","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diego1q2w%2Fdrop-box-it/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diego1q2w%2Fdrop-box-it/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diego1q2w%2Fdrop-box-it/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diego1q2w","download_url":"https://codeload.github.com/diego1q2w/drop-box-it/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diego1q2w%2Fdrop-box-it/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30104218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T00:38:46.881Z","status":"ssl_error","status_checked_at":"2026-03-05T00:38:45.829Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["docker-compose","dropbox","golang","gzip","synchronization"],"created_at":"2024-09-27T21:05:12.537Z","updated_at":"2026-03-05T01:03:45.799Z","avatar_url":"https://github.com/diego1q2w.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# drop-box-it\n\nThis project emulates a file synchronization system similar to what Dropbox does, where you have a `source directory` \nand a `destination directory`. So whatever you write in the first one gets synchronized to the latter via HTTP.\n\nTo get everything up and running in a hassle-free way, I used Docker compose which will set up everything enabling you to get it up and running\nwith just one command which I'll describe later, but to understand how this project runs look at the `docker-compose.yml` file.\n\nThe project is divided into two services the first one which is more like CLI daemon type thing `drop` and the second one which is an HTTP server `box`.\nEach service is self contain in his domain within `pkg` and everything gets wired up under `cmd`.\nBoth services are already preconfigured but feel free to play with the configuration, keep in mind that the default-src directory is `./srcDir` and for the destination one\nis `./destDir`. \n\nTo see it in action run the command `./script/start` wait a few seconds, you'll see every file that is contained \nwithin the src directory got synchronized to the destination one, and if you add, change or remove any of the files you'll see how they get synchronized too. \nFeel free of course to use any `src` directory is a CLI after all, you can update that value from the `docker-compose.yml` and then in the `drop` service update the `command`.\n\nThe body of the request is compressed in order to safe band width.\n\n### Run\n\nIn order to run tests and linting\n    \n    ./script/test\n    ./script/lint\n\nIf you want to see it in action\n    \n    ./script/start\n\n### Improvements\n\n- Add graceful shutdown\n- Add another endpoint in the `box` service for file sync\n- Add the possibility to sync different clients with different folders at the same time by namespacing the destination folder and having some kind of token to identify the client\n- Only compress the body if is too large and be able to abstract the uncompress on the server side ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiego1q2w%2Fdrop-box-it","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiego1q2w%2Fdrop-box-it","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiego1q2w%2Fdrop-box-it/lists"}