{"id":25623377,"url":"https://github.com/pdt1806/public","last_synced_at":"2025-09-14T05:32:36.759Z","repository":{"id":277904009,"uuid":"908855440","full_name":"pdt1806/public","owner":"pdt1806","description":"An HTTP file server that serves files from a directory","archived":false,"fork":false,"pushed_at":"2025-02-16T21:58:30.000Z","size":1229,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T22:25:47.637Z","etag":null,"topics":["expressjs","http","typescript"],"latest_commit_sha":null,"homepage":"https://public.bennynguyen.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pdt1806.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},"funding":{"github":"pdt1806","patreon":"pdteggman","custom":["https://www.buymeacoffee.com/pdteggman"]}},"created_at":"2024-12-27T06:13:13.000Z","updated_at":"2025-02-16T21:58:33.000Z","dependencies_parsed_at":"2025-02-16T22:35:54.096Z","dependency_job_id":null,"html_url":"https://github.com/pdt1806/public","commit_stats":null,"previous_names":["pdt1806/public"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdt1806%2Fpublic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdt1806%2Fpublic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdt1806%2Fpublic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdt1806%2Fpublic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdt1806","download_url":"https://codeload.github.com/pdt1806/public/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240170061,"owners_count":19759141,"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":["expressjs","http","typescript"],"created_at":"2025-02-22T11:36:43.245Z","updated_at":"2025-02-22T11:36:43.818Z","avatar_url":"https://github.com/pdt1806.png","language":"TypeScript","readme":"# benny's public library\n\nAn HTTP file server that serves files from a directory, except I made it public so that I can share files with everyone over the Internet.\n\n## Inspirations\n\n- [public.tobycm.dev](https://public.tobycm.dev) ([tobycm](https://tobycm.dev) my goat)\n- [Five Server](https://github.com/yandeu/five-server)\n- [python's http.server](https://docs.python.org/3/library/http.server.html)\n\n## For general users\n\n### \"public library\" 📚\n\nWho knows, maybe I will share some useful files here that you might find helpful/knowledgeable. I will try to organize the files into categories like \"programming\", \"design\", \"music\", etc.\n\n### Files seem to load slowly 🐢\n\nFiles are served from my personal server using my home internet connection, and the upload speed is not that great. So if you are experiencing slow loading times, I apologize for that. The speed is also affected by many other factors like your internet connection, the server's location, etc.\n\n## For developers\n\n### Why made one when there are already many? 🤔\n\n- Learning opportunity. Before this project, I already knew how to make a simple REST API using Express.js, but this time I wanted to use it to share files with everyone. And while working on this project, I learned a lot about how serving content over HTTP works (like, the way I think about it totally changed while building this project), and from that I modified the server to my liking.\n- I have more control over the functionality and design of the server. I can add features that I want and remove features that I find unnecessary.\n\n### Extra features 🎉\n\n- ✅ Dark/Light mode.\n- ✅ Server-side rendering (not really a feature, I just wanted to mention it).\n\n### How to set up the server ⚙️ (I mean you should build your own, but if you want to use mine, here's how)\n\n- Clone the repository.\n- Install the dependencies.\n- Create a `public` folder in the root of the project.\n- Run the server (`index.ts`).\n\nAnd that's it! You can now access the server at `http://localhost:26124` and start adding files to the `public` folder.\n\n\u003e [!TIP]\n\u003e You can use [Syncthing](https://syncthing.net/) to sync the `public` folder on your server with a folder on your personal computer, which makes things easier to update (thanks Toby again 🙏).\n\n## Contributions and feedback 📝\n\nContributions are welcome, but I don't think there is much to contribute to this project. Any suggestions or feedback is welcome, just contact [me@bennynguyen.dev](mailto:me@bennynguyen.dev).\n","funding_links":["https://github.com/sponsors/pdt1806","https://patreon.com/pdteggman","https://www.buymeacoffee.com/pdteggman"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdt1806%2Fpublic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdt1806%2Fpublic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdt1806%2Fpublic/lists"}