{"id":28954398,"url":"https://github.com/peterdee/go-file-sharing","last_synced_at":"2026-05-08T15:39:36.377Z","repository":{"id":291851571,"uuid":"883886826","full_name":"peterdee/go-file-sharing","owner":"peterdee","description":"File sharing server written in Golang","archived":false,"fork":false,"pushed_at":"2025-05-27T20:50:18.000Z","size":124,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"release","last_synced_at":"2025-06-23T19:11:27.518Z","etag":null,"topics":["docker","docker-compose","file-exchange","go","godotenv","golang","mongodb","net-http","redis"],"latest_commit_sha":null,"homepage":"http://localhost:9000","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peterdee.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,"zenodo":null}},"created_at":"2024-11-05T18:44:27.000Z","updated_at":"2025-05-27T20:55:22.000Z","dependencies_parsed_at":"2025-05-06T21:35:53.568Z","dependency_job_id":"e58b8be2-a47c-4f8b-9de9-16537e5e1428","html_url":"https://github.com/peterdee/go-file-sharing","commit_stats":null,"previous_names":["peterdee/go-file-sharing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/peterdee/go-file-sharing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-file-sharing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-file-sharing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-file-sharing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-file-sharing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterdee","download_url":"https://codeload.github.com/peterdee/go-file-sharing/tar.gz/refs/heads/release","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-file-sharing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32786536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"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","docker-compose","file-exchange","go","godotenv","golang","mongodb","net-http","redis"],"created_at":"2025-06-23T19:10:17.793Z","updated_at":"2026-05-08T15:39:36.349Z","avatar_url":"https://github.com/peterdee.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## go-file-sharing\n\nA simple file sharing server written in Golang, without any additional WEB frameworks or routers\n\nStack:\n\n- Golang\n\n- MongoDB (main storage)\n\n- Redis (cache)\n\nPublic features:\n\n- upload files (file size cap is set via environment variable)\n\n- get file info\n\n- download file\n\n- files are stored on the disk\n\n- files are automatically marked as deleted if their view and download stats were not updated for the past 14 days\n\nManager features:\n\n- view file list (paginated)\n\n- view single file\n\n- delete file (mark as deleted)\n\n- get own user profile\n\n- change password\n\nRoot user features:\n\n- create user (root user or manager)\n\n- view user list (paginated)\n\n- view single user\n\n- update user data\n\n- delete user (mark as deleted)\n\n- all of the manager features are also available\n\n### Deploy\n\nClone repository and install dependencies\n\n```shell script\ncd ./go-file-sharing\ngvm use go1.24\ngo mod download\n```\n\n### Environment variables\n\nThe `.env` file is required, see [.env.example](./.env.example) for details\n\nSetting `MAX_FILE_SIZE_BYTES` variable to `0` disables file size cap \n\n### Launch\n\n```shell script\ngo run ./\n```\n\nAlternatively can be launched with [AIR](https://github.com/air-verse/air)\n\nServer will be available at http://localhost:9000\n\n### Launch with Docker\n\nBuild server application separately:\n\n```shell script\ndocker build -t server:latest .\n```\n\nRun server application separately:\n\n```shell script\ndocker run server:latest\n```\n\nLaunch all of the services:\n\n```shell script\ndokcer compose up\n```\n\nServer will be available at http://localhost:9000\n\n### License\n\n[MIT](./LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterdee%2Fgo-file-sharing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterdee%2Fgo-file-sharing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterdee%2Fgo-file-sharing/lists"}