{"id":23399909,"url":"https://github.com/caleb9/downloader","last_synced_at":"2026-05-06T04:05:37.404Z","repository":{"id":168621865,"uuid":"344473513","full_name":"Caleb9/downloader","owner":"Caleb9","description":"Dockerized file downloader","archived":false,"fork":false,"pushed_at":"2024-03-04T11:04:34.000Z","size":980,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-02-17T19:43:44.593Z","etag":null,"topics":["asp-net-core","csharp","docker","docker-image","downloader","react","synology-nas"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Caleb9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"caleb9"}},"created_at":"2021-03-04T12:53:09.000Z","updated_at":"2023-06-07T15:16:21.000Z","dependencies_parsed_at":"2024-03-04T12:28:36.560Z","dependency_job_id":"26324ac1-aef9-4056-b980-06214e7702b1","html_url":"https://github.com/Caleb9/downloader","commit_stats":null,"previous_names":["caleb9/downloader"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Caleb9/downloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caleb9%2Fdownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caleb9%2Fdownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caleb9%2Fdownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caleb9%2Fdownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Caleb9","download_url":"https://codeload.github.com/Caleb9/downloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caleb9%2Fdownloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32677935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["asp-net-core","csharp","docker","docker-image","downloader","react","synology-nas"],"created_at":"2024-12-22T10:17:49.144Z","updated_at":"2026-05-06T04:05:37.356Z","avatar_url":"https://github.com/Caleb9.png","language":"C#","funding_links":["https://github.com/sponsors/caleb9"],"categories":[],"sub_categories":[],"readme":"# Downloader\n\n[![Docker Image Version (latest) on Docker Hub](https://img.shields.io/docker/v/caleb9/downloader?label=Docker%20Hub\u0026style=flat-square \"Docker Image Version (latest) on Docker Hub\")](https://hub.docker.com/r/caleb9/downloader)\n\nDockerized downloader.\n\nI'm using it on my Synology NAS.\n\n![](https://github.com/Caleb9/downloader/raw/master/doc/images/downloader.png)\n\n\n## Disclaimer\n\nI am only just starting to learn TypeScript and ReactJS. The code of\nthe Web client leaves a lot to be desired in terms of quality and\ntestability, I'm sure. It certainly could look better too. Things\nmight improve with time, I'm also open for co-op.\n\n\n## Building the Docker image\n\nIf `make` is available then simply\n```\nmake\n```\nOtherwise\n```\ndocker build --tag=caleb9/downloader .\n```\n\n\n## Running\n\n```\ndocker run --publish 5000:8080 --volume /tmp/downloads:/data --user 1000:1000 caleb9/downloader\n```\n\n* Replace `5000` with a port of your choice. The application will be\n  available at `http://localhost:5000` (replace 5000 with the port you\n  specified).\n* Replace `/tmp/downloads` with a path to where files should be\n  downloaded. Two sub-directories will be created: `incomplete` for\n  temporary files, and `completed` for finished downloads.\n* Replace `1000:1000` with _uid_ and _guid_ of a user that will run\n  the container - downloaded files will have owner and group\n  permissions set to these values (you can use your local user, find\n  out the values using `id` command).\n\n\n## Usage\n\nIn short:\n\n1. Type or paste a HTTP(S) link to the \"Link\" field.\n2. Optionally adjust the \"Save As\" field if you want to save under a\n   different name. Application tries to guess the file name from\n   provided Link URL, but it might not always succeed (e.g. when link\n   redirects to another URL from which the actual file will be\n   downloaded). It is possible to specify a relative path\n   e.g. \"sub-dir1/sub-dir2/file.mp4\" and the sub-directories will be\n   created in the '/data/completed' directory. Note that the path\n   cannot contain '..' sequences.\n3. Hit \"Submit\" button to start the download. When completed, file\n   will appear in 'completed' sub-directory.\n\n\"Cleanup\" button clears completed and failed downloads (downloaded\nfiles are not removed).\n\nIf downloaded file already exists, the fresh download will get a\nnumber suffix in a similar way as downloading via browser (e.g. if you\nalready downloaded `file.iso` and try to download it again,\n`file(1).iso` will be created).\n\n## Things TODO\n\n* Better styling of client\n* Tests for client\n* Pausing and cancelling a download\n* Adding a download without immediately starting it\n* Resuming a download (would require persistence of some sort)\n* Downloading in several segments\n* Support for other protocols than HTTP\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaleb9%2Fdownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaleb9%2Fdownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaleb9%2Fdownloader/lists"}