{"id":26154528,"url":"https://github.com/zeptosec/thermastore","last_synced_at":"2025-04-14T07:11:32.534Z","repository":{"id":134970172,"uuid":"590183273","full_name":"Zeptosec/Thermastore","owner":"Zeptosec","description":"Cloud storage. Can store large amount of large files. Relies on discord webhooks and supabase for storage.","archived":false,"fork":false,"pushed_at":"2025-01-17T22:44:23.000Z","size":4770,"stargazers_count":13,"open_issues_count":7,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T20:51:14.562Z","etag":null,"topics":["cloud","discord","nextjs","react","storage","supabase"],"latest_commit_sha":null,"homepage":"https://thermastore.netlify.app","language":"JavaScript","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/Zeptosec.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":"2023-01-17T20:43:14.000Z","updated_at":"2025-01-21T01:17:17.000Z","dependencies_parsed_at":"2024-03-01T21:25:55.063Z","dependency_job_id":"4ccf6ace-62a8-4b14-9caf-99b7e586bf92","html_url":"https://github.com/Zeptosec/Thermastore","commit_stats":null,"previous_names":["zeptosec/thermastore"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeptosec%2FThermastore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeptosec%2FThermastore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeptosec%2FThermastore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zeptosec%2FThermastore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zeptosec","download_url":"https://codeload.github.com/Zeptosec/Thermastore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837287,"owners_count":21169374,"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":["cloud","discord","nextjs","react","storage","supabase"],"created_at":"2025-03-11T08:30:05.534Z","updated_at":"2025-04-14T07:11:32.512Z","avatar_url":"https://github.com/Zeptosec.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Netlify Status](https://api.netlify.com/api/v1/badges/7f46aff5-243e-4de3-90a6-d3416f789f85/deploy-status)](https://app.netlify.com/sites/thermastore/deploys)\n# Thermastore\nThermastore is a cloud storage which utilizes Discord for storing files. Here you can upload and organize your files. This project is powered by NextJS 13 for handling frontend and some of the back end, Supabase for saving information about stored files and protecting the database with RLS.  \n  \nDiscord has CORS setup. So to download files, watch videos and listen to audio you will need to use a proxy server [Streamer](https://github.com/Zeptosec/Streamer).\n\n## How it works?\nWhen uploading a file it is split up into pieces (around 25 MB) then each piece is uploaded to Discord server using webhook and attachment file id and channel id to which it was uploaded is stored into file and uploaded using the same webhook.\n\n## Caveats\nStoring files like this is not as safe as storing links to pieces directly into database, but this way it takes much less space in the database. Sadly uploaded files are accessible to anyone if they know file and channel ids which is very unlikely unless they have access to channel where the files were uploaded or you have shared the file with them.  \n\n## Features\nA list of features that have been implemented. You can always suggest a feature in the [issues](https://github.com/Zeptosec/Thermastore/issues) tab.\n| Description | Status |\n| ------------ | :-----------: |\n| Creating directories   |  ✔ |\n| Moving files  | ✔ |\n| Moving directories  | ✔ |\n| Uploading multiple files  | ✔  |\n| Drag and Drop support  | ✔  |\n| Preview audio, video files ([Streamer](https://github.com/Zeptosec/Streamer))  | ✔  |\n| Preview PDF \u003c25 MB | ✔ |\n| Play audio files from menu  | ✔  |\n| Upload pause/resume | ✔ |\n| File search | ✔ |\n| Directory uploads | ✔ |\n\n## Getting started\nTo start clone this repository:\n```sh\ngit clone https://github.com/Zeptosec/Thermastore.git\n```\nThen install required npm packages with:\n```sh\nnpm install\n```\nRename **env.local.example** to **env.local** and set the required values. You will need to setup a Supabase database with the required tables specified in [supabase.sql](supabase.sql)  \nAfter all of that is done you can finally start the project and hope for the best:\n```sh\nnpm run dev\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeptosec%2Fthermastore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeptosec%2Fthermastore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeptosec%2Fthermastore/lists"}