{"id":24475035,"url":"https://github.com/hetsaraiya/jbox","last_synced_at":"2026-05-04T16:37:49.730Z","repository":{"id":263039040,"uuid":"881008806","full_name":"hetsaraiya/JBox","owner":"hetsaraiya","description":"JBox is a web application for managing file storage and organization, featuring a small cloud storage service. It integrates with Discord for file chunk storage, allowing uploads over 25 MB, and includes an very basic web interface for easy file management.","archived":false,"fork":false,"pushed_at":"2025-03-09T11:07:27.000Z","size":86,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T12:18:50.873Z","etag":null,"topics":["discord-bot","fastapi","python3","sqlalchemy","supabase"],"latest_commit_sha":null,"homepage":"https://j-box.vercel.app","language":"Python","has_issues":true,"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/hetsaraiya.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-30T18:56:49.000Z","updated_at":"2025-03-09T11:07:30.000Z","dependencies_parsed_at":"2024-12-17T04:35:07.163Z","dependency_job_id":"c66580b0-75b2-4d74-a8c7-d99d0a7f2928","html_url":"https://github.com/hetsaraiya/JBox","commit_stats":null,"previous_names":["hetsaraiya/jbox"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hetsaraiya%2FJBox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hetsaraiya%2FJBox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hetsaraiya%2FJBox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hetsaraiya%2FJBox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hetsaraiya","download_url":"https://codeload.github.com/hetsaraiya/JBox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243602276,"owners_count":20317604,"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":["discord-bot","fastapi","python3","sqlalchemy","supabase"],"created_at":"2025-01-21T09:12:02.716Z","updated_at":"2026-05-04T16:37:49.685Z","avatar_url":"https://github.com/hetsaraiya.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JBox\n\nJBox is a web application for managing file storage and organization. It allows users to create folders, upload files, and manage them through a web interface. The application also integrates with Discord for file chunk storage and progress updates.\n\n## Features\n\n- Create and delete folders\n- Upload and delete files\n- List files in a folder\n- Download files\n- Real-time upload progress updates via WebSocket\n- Discord integration for file chunk storage\n\n## Project Structure\n\nmarkdown\n## Project Structure\n\n```\nJBox/\n├── .gitignore\n├── Dockerfile\n├── README.md\n├── requirements.txt\n├── app/\n│   ├── __init__.py\n│   ├── config.py\n│   ├── database.py\n│   ├── discord_bot.py\n│   ├── main.py\n│   ├── models.py\n│   ├── routers/\n│   │   ├── __init__.py\n│   │   ├── files.py\n│   │   ├── folders.py\n│   │   ├── root.py\n│   │   ├── status.py\n│   │   ├── test_db.py\n│   ├── templates/\n│   │   ├── folder.html\n│   │   ├── index.html\n│   ├── websocket_manager.py\n│   └── utils.py\n```\n\n## Installation\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/yourusername/JBox.git\n    cd JBox\n    ```\n\n2. Create and activate a virtual environment:\n    ```sh\n    python -m venv env\n    source env/bin/activate  # On Windows use `env\\Scripts\\activate`\n    ```\n\n3. Install the dependencies:\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n4. Set up the environment variables:\n    - Copy the `.env.example` file to `.env` in the `app/` directory:\n        ```sh\n        cp app/.env.example app/.env\n        ```\n    - Edit the [.env](http://_vscodecontentref_/2) file to include your Discord token and channel ID:\n        ```\n        DISCORD_TOKEN=Your-Discord-Token\n        CHANNEL_ID=Your-Discord-Channel-ID\n        ```\n\n5. Run the application:\n    ```sh\n    uvicorn app.main:app --reload\n    ```\n\n## Usage\n\n- Open your browser and navigate to `http://localhost:8000`.\n- Use the interface to create folders, upload files, and manage your storage.\n\n## Deployment\n\n**Note:** This application will not work on Vercel due to its limitations with WebSocket and long-running processes. It is recommended to deploy this application on platforms like [Railway](https://railway.app/) which support these features.\n\n## API Endpoints\n\n### Folders\n\n- **Create Folder**\n    - `POST /create_folder/?name={folder_name}`\n    - Creates a new folder with the specified name.\n\n- **Delete Folder**\n    - `DELETE /folders/{folder_name}`\n    - Deletes the specified folder and all its files.\n\n- **List Folders**\n    - `GET /folders/`\n    - Lists all folders.\n\n### Files\n\n- **Upload File**\n    - `POST /upload/?folder_id={folder_id}`\n    - Uploads a file to the specified folder.\n\n- **Delete File**\n    - `DELETE /files/{file_name}?folder_name={folder_id}`\n    - Deletes the specified file from the folder.\n\n- **List Files**\n    - `GET /files/{folder_id}`\n    - Lists all files in the specified folder.\n\n- **Download File**\n    - `GET /download/{filename}`\n    - Downloads the specified file.\n\n### Status\n\n- **Get Status**\n    - `GET /status/`\n    - Returns the status of the Discord bot and channel connection.\n\n### WebSocket\n\n- **Progress Updates**\n    - `ws://localhost:8000/ws/progress`\n    - WebSocket endpoint for real-time upload progress updates.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhetsaraiya%2Fjbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhetsaraiya%2Fjbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhetsaraiya%2Fjbox/lists"}