{"id":16967033,"url":"https://github.com/tuhinpal/firecdn","last_synced_at":"2025-08-10T15:08:15.850Z","repository":{"id":41137161,"uuid":"345055592","full_name":"tuhinpal/Firecdn","owner":"tuhinpal","description":"The Low Latency CDN Powered by Firebase","archived":false,"fork":false,"pushed_at":"2021-03-06T10:04:56.000Z","size":19,"stargazers_count":22,"open_issues_count":0,"forks_count":13,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T23:43:43.494Z","etag":null,"topics":["cdn","firebase","firebase-auth","firebase-storage"],"latest_commit_sha":null,"homepage":"https://tuhinpal.github.io/Firecdn/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tuhinpal.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":"2021-03-06T09:33:19.000Z","updated_at":"2025-02-11T10:10:50.000Z","dependencies_parsed_at":"2022-08-10T01:36:17.220Z","dependency_job_id":null,"html_url":"https://github.com/tuhinpal/Firecdn","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tuhinpal/Firecdn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuhinpal%2FFirecdn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuhinpal%2FFirecdn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuhinpal%2FFirecdn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuhinpal%2FFirecdn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tuhinpal","download_url":"https://codeload.github.com/tuhinpal/Firecdn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuhinpal%2FFirecdn/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269740355,"owners_count":24467757,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cdn","firebase","firebase-auth","firebase-storage"],"created_at":"2024-10-14T00:07:15.257Z","updated_at":"2025-08-10T15:08:15.825Z","avatar_url":"https://github.com/tuhinpal.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\r\n\u003cbr\u003e\r\n\r\n\u003cb\u003e🔥 F I R E C D N\u003c/b\u003e\r\n\r\n\u003cbr\u003e\r\n\u003c/h1\u003e\r\n\u003cbr\u003e\r\n\r\n## What's that?\r\n\r\nFirecdn is a low latancy cdn using firebase, You can directly upload a file (Authenticated) and share it on internet. It will be pretty much handy and very fast because you can choose your server's location.\r\n\r\n## Deploy\r\n\r\nDeploy is not quite simple. But if you are a tech lover you will definitely enjoy. Deployment is divided into two parts.\r\n\r\n\u003c!--[![Watch it on Youtube](https://shields.io/badge/WATCH-HOW%20TO%20DEPLOY-red?logo=youtube\u0026style=for-the-badge \"Watch it on Youtube\")](http://youtu.be/ \"Watch it on Youtube\")--\u003e\r\n\r\n### 1. Setup Firebase\r\n\r\nSetup the Firebase is simple. But firebase storage comes without `access-control-allow-origin` header (CORS) that's why we have to setup the cors.\r\n\r\n- Open [Firebase Console](https://console.firebase.google.com/)\r\n- Create a New Project (Click on Add Project)\r\n- Give a Name, and setup the project\r\n- We have set write on storage only from the authenticated request, that's why we have to setup Firebase Auth. So, click on `Authentication` in Dashboard and hit `Get Started`\r\n- Enable `Email/Password` method in `Sign-in providers`\r\n- Click on users and add an user by entering Email \u0026 Password\r\n- Copy `User UID` of that created user\r\n- Now in Project's Dashboard click on `Storage`, Click on `Get Started`\r\n- Click on `Next` for security rules (Will change it later)\r\n- For cloud storage location, Setup your nearest location ([Check this out](https://cloud.google.com/about/locations)) and hit `Next`\r\n- Copy the bucket url for later (starts with gs://)\r\n- Click on `Rules` and replace it with (Don't forget to add the Copied UID) 👇\r\n```\r\nrules_version = '2';\r\nservice firebase.storage {\r\n  match /b/{bucket}/o {\r\n    match /{allPaths=**} {\r\n      allow read, write: if request.auth.uid == \"copied_uid\";\r\n    }\r\n  }\r\n}\r\n```\r\n- Now everything is ready to go, Now have to setup the cors. For that got to [shell.cloud.google.com](https://shell.cloud.google.com/) (Same Account which is used in Firebase)\r\n- Paste the script in terminal 👇\r\n```\r\ncurl -sSL https://git.io/JqTL4 | bash\r\n```\r\n- It will ask for `bucket-url` (Previously Copied), Paste that and hit enter and you are ready to go\r\n\r\n### 2. Setup Website\r\n\r\n- Firstly fork this Repo (Also give a Star 😁)\r\n- Open Firebase again, go to that created project and click `add an web app`\r\n- Give any name to it\r\n- It will give you some configuration scripts, Only copy this part like below\r\n```\r\nvar firebaseConfig = {\r\n    apiKey: \"AIzaSyB9eBs10atrgeGAI-WQm6UO72lhzmT-vpo\",\r\n    authDomain: \"thefirecdn.firebaseapp.com\",\r\n    projectId: \"thefirecdn\",\r\n    storageBucket: \"thefirecdn.appspot.com\",\r\n    messagingSenderId: \"707022422419\",\r\n    appId: \"1:707022422419:web:b51d29ade5652390246866\"\r\n  };\r\n```\r\n- Edit `firebase_config.js`\r\n- Replace with the copied script in marked place\r\n- Now you can host the website using Vercel / Netlify / Github Pages etc.\r\n## License \u0026 Copyright :\r\n- This Project is [Apache-2.0](https://github.com/cachecleanerjeet/firecdn/blob/main/LICENSE) Licensed\r\n- Copyright 2021 by [Tuhin Kanti Pal](https://github.com/cachecleanerjeet)\r\n\r\n## Connect :\r\n- [Channel](https://telegram.dog/tprojects)\r\n- [Support Group](https://telegram.dog/t_projects)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuhinpal%2Ffirecdn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftuhinpal%2Ffirecdn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuhinpal%2Ffirecdn/lists"}