{"id":31681335,"url":"https://github.com/romanslack/tensorbin","last_synced_at":"2025-10-08T07:48:18.507Z","repository":{"id":295621158,"uuid":"990679831","full_name":"RomanSlack/TensorBin","owner":"RomanSlack","description":"TensorBin is a scalable open-source platform for uploading, storing, and sharing large AI assets like LoRAs, Stable Diffusion models, and tensors. Built for creators and researchers, it features secure uploads, fast search, and moderation tools with full artistic control—minus illegal content.","archived":false,"fork":false,"pushed_at":"2025-05-26T14:20:46.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-26T14:34:45.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/RomanSlack.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,"zenodo":null}},"created_at":"2025-05-26T13:21:52.000Z","updated_at":"2025-05-26T14:20:50.000Z","dependencies_parsed_at":"2025-05-26T14:36:44.010Z","dependency_job_id":"d480a4e5-bb98-4878-878e-e53b5f680a69","html_url":"https://github.com/RomanSlack/TensorBin","commit_stats":null,"previous_names":["romanslack/tensorbin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RomanSlack/TensorBin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanSlack%2FTensorBin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanSlack%2FTensorBin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanSlack%2FTensorBin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanSlack%2FTensorBin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RomanSlack","download_url":"https://codeload.github.com/RomanSlack/TensorBin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanSlack%2FTensorBin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278909712,"owners_count":26066887,"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-10-08T02:00:06.501Z","response_time":56,"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":[],"created_at":"2025-10-08T07:48:00.352Z","updated_at":"2025-10-08T07:48:18.498Z","avatar_url":"https://github.com/RomanSlack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TensorBin\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)](https://www.python.org/)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.104+-green.svg)](https://fastapi.tiangolo.com/)\n[![Next.js](https://img.shields.io/badge/Next.js-14+-black.svg)](https://nextjs.org/)\n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15+-blue.svg)](https://www.postgresql.org/)\n[![Redis](https://img.shields.io/badge/Redis-7+-red.svg)](https://redis.io/)\n\n\u003e **A barebones, self-hosted alternative to CivitAI for sharing AI models and assets**\n\n![TensorBin Dashboard](readme_image_2.png)\n\n## 🎯 What is TensorBin?\n\nTensorBin is a **simple, clean, and lightweight** file sharing platform designed specifically for AI practitioners. While CivitAI offers extensive community features, TensorBin focuses on the essentials: **fast uploads, organized storage, and easy sharing** of AI models, datasets, and related files.\n\n### Why TensorBin over CivitAI?\n\n- **🏠 Self-hosted**: Full control over your data and infrastructure\n- **⚡ Lightweight**: No bloat, just the features you need\n- **🔒 Private**: Perfect for teams, research groups, or personal use\n- **🎨 Clean UI**: Minimalist design focused on functionality\n- **📱 Modern**: Built with contemporary web technologies\n\n![TensorBin File Management](readme_image_1.png)\n\n## ✨ Features\n\n- **📁 Smart File Management**: Upload and organize AI models (.safetensors, .ckpt, .pth), images, and datasets\n- **🏷️ Tag System**: Categorize files with custom tags for easy discovery\n- **🖼️ Image Thumbnails**: Automatic thumbnail generation for visual files\n- **📊 File Details**: Complete metadata including size, type, SHA256, and download counts\n- **🔍 Search \u0026 Filter**: Find files quickly by name, tags, or file type\n- **👥 Multi-user**: User accounts with individual storage quotas\n- **📱 Responsive**: Works seamlessly on desktop and mobile\n- **🔐 Secure**: JWT authentication with proper file access controls\n\n## 🛠️ Tech Stack\n\n- **Backend**: FastAPI + PostgreSQL + Redis + Celery\n- **Frontend**: Next.js 14 + TypeScript + Tailwind CSS\n- **Authentication**: JWT with refresh tokens\n- **File Storage**: Local filesystem with SHA256 deduplication\n- **Image Processing**: Pillow for thumbnail generation\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Python 3.12+\n- Node.js 18+\n- PostgreSQL 15+\n- Redis 7+\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/yourusername/tensorbin.git\ncd tensorbin\n```\n\n### 2. Backend Setup\n```bash\ncd backend\n\n# Install dependencies\npip install -r requirements.txt\n\n# Start PostgreSQL and Redis (using Docker)\ncd postgres_redis_docker\ndocker compose up -d\n\n# Set up database\npsql -h localhost -p 5433 -U tensorbin -d tensorbin\n# Run SQL commands from documents/manual_database_setup.sql\n\n# Start backend server\ncd ..\nuvicorn app.main:app --host 0.0.0.0 --port 8000 --reload\n```\n\n### 3. Frontend Setup\n```bash\ncd frontend\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n```\n\n### 4. Access TensorBin\n- **Frontend**: http://localhost:3000\n- **Backend API**: http://localhost:8000\n- **API Docs**: http://localhost:8000/docs\n\n## 📖 Usage\n\n1. **Register**: Create an account at `/auth/register`\n2. **Upload**: Drag \u0026 drop files or click to upload\n3. **Organize**: Add titles and tags to your uploads\n4. **Share**: Files are accessible to all registered users\n5. **Manage**: View, download, or delete your files from the dashboard\n\n## 🏗️ Project Structure\n\n```\ntensorbin/\n├── backend/           # FastAPI backend\n│   ├── app/          # Application code\n│   ├── uploads/      # File storage\n│   └── requirements.txt\n├── frontend/         # Next.js frontend\n│   ├── app/         # Pages and layouts\n│   ├── components/  # Reusable components\n│   └── utils/       # API utilities\n└── documents/       # Setup documentation\n```\n\n## 🔧 Configuration\n\n### Database Ports (if using Docker)\n- PostgreSQL: `localhost:5433`\n- Redis: `localhost:6380`\n\n### Environment Variables\nBackend configuration is handled in `backend/app/config.py` with sensible defaults for development.\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n---\n\n**TensorBin** - Simple, fast, self-hosted AI model sharing ⚡","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromanslack%2Ftensorbin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromanslack%2Ftensorbin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromanslack%2Ftensorbin/lists"}