mirror of
https://github.com/ryankazokas/turbovault-app.git
synced 2026-04-16 22:12:53 +00:00
Moving to github
This commit is contained in:
210
README.md
Normal file
210
README.md
Normal file
@@ -0,0 +1,210 @@
|
||||
# 🎮 TurboVault
|
||||
|
||||
> Your personal video game collection tracker and manager
|
||||
|
||||
[](https://rubyonrails.org/)
|
||||
[](https://www.ruby-lang.org/)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
TurboVault is a modern, self-hosted web application for tracking and organizing your video game collection. Built with Rails 8 and Hotwire, it offers a fast, responsive experience for managing physical and digital games across all platforms.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- 📚 **Track Physical & Digital Games** - Manage both formats with detailed metadata
|
||||
- 🎮 **IGDB Integration** - Automatic game matching with cover art and metadata
|
||||
- 📊 **Collection Statistics** - Track spending, completion rates, and platform distribution
|
||||
- 🗂️ **Collections** - Organize games into custom collections
|
||||
- 🔍 **Smart Search** - Find games quickly with advanced filtering
|
||||
- 📥 **CSV Import** - Bulk import your existing collection
|
||||
- 🎨 **5 Beautiful Themes** - Light, Dark, Midnight, Retro, and Ocean
|
||||
- 🔐 **RESTful API** - Programmatic access to your collection
|
||||
- 📍 **Location Tracking** - Remember where your physical games are stored
|
||||
- ⭐ **Ratings & Status** - Track completion status and personal ratings
|
||||
- 👥 **Public Profiles** - Optionally share your collection with others
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Ruby 3.3+
|
||||
- PostgreSQL 15+
|
||||
- Node.js 18+ (for asset compilation)
|
||||
- Docker (optional, for containerized development)
|
||||
|
||||
### Local Development
|
||||
|
||||
1. **Clone the repository**
|
||||
```bash
|
||||
git clone https://github.com/yourusername/turbovault.git
|
||||
cd turbovault
|
||||
```
|
||||
|
||||
2. **Install dependencies**
|
||||
```bash
|
||||
bundle install
|
||||
```
|
||||
|
||||
3. **Set up environment variables**
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Edit .env with your configuration
|
||||
```
|
||||
|
||||
4. **Start Docker services**
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
5. **Set up the database**
|
||||
```bash
|
||||
rails db:prepare
|
||||
```
|
||||
|
||||
6. **Start the development server**
|
||||
```bash
|
||||
task dev
|
||||
# or: bin/dev
|
||||
```
|
||||
|
||||
7. **Visit the app**
|
||||
- App: http://localhost:3000
|
||||
- Mailpit (email testing): http://localhost:8025
|
||||
|
||||
### Demo Account
|
||||
|
||||
A demo account is automatically created in development:
|
||||
- **Email:** demo@turbovault.com
|
||||
- **Password:** password123
|
||||
|
||||
## 🐳 Docker Deployment
|
||||
|
||||
TurboVault includes Docker and Kubernetes manifests for easy deployment.
|
||||
|
||||
### 📋 New to Deployment?
|
||||
|
||||
**Start here:** [DEPLOYMENT_CHECKLIST.md](docs/DEPLOYMENT_CHECKLIST.md) - Complete step-by-step deployment guide
|
||||
|
||||
### Kubernetes (Recommended for Production)
|
||||
|
||||
TurboVault is designed for Kubernetes with GitHub Actions CI/CD:
|
||||
|
||||
**Documentation:**
|
||||
1. **📋 Deployment Checklist:** [DEPLOYMENT_CHECKLIST.md](docs/DEPLOYMENT_CHECKLIST.md) - Step-by-step guide
|
||||
2. **🤖 GitHub Actions:** [GITHUB_ACTIONS_SETUP.md](docs/GITHUB_ACTIONS_SETUP.md) - Automated builds
|
||||
3. **☸️ Kubernetes Guide:** [k8s README](k8s/README.md) - Full k8s documentation
|
||||
|
||||
**Quick Deploy:**
|
||||
```bash
|
||||
# 1. Push to GitHub
|
||||
./scripts/setup-github.sh
|
||||
|
||||
# 2. Build image (automatic on tag push)
|
||||
git tag v1.0.0 && git push origin v1.0.0
|
||||
|
||||
# 3. Update k8s manifests with your image
|
||||
# Edit k8s/deployment.yaml: image: ghcr.io/your-username/turbovault:v1.0.0
|
||||
|
||||
# 4. Deploy to Kubernetes
|
||||
./scripts/deploy-k8s.sh
|
||||
```
|
||||
|
||||
### Docker Compose (Development/Testing)
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### IGDB Integration (Optional)
|
||||
|
||||
To enable automatic game metadata matching:
|
||||
|
||||
1. Create a Twitch developer account at https://dev.twitch.tv
|
||||
2. Register an application to get your Client ID and Secret
|
||||
3. Add to `.env`:
|
||||
```bash
|
||||
IGDB_CLIENT_ID=your_client_id
|
||||
IGDB_CLIENT_SECRET=your_client_secret
|
||||
```
|
||||
|
||||
IGDB sync is enabled by default for all users and runs every 30 minutes.
|
||||
|
||||
## 📚 Documentation
|
||||
|
||||
**All documentation is in the [`docs/`](docs/) folder.**
|
||||
|
||||
**Quick Links:**
|
||||
- 📋 [Deployment Checklist](docs/DEPLOYMENT_CHECKLIST.md) - Step-by-step deployment
|
||||
- 🤖 [GitHub Actions Setup](docs/GITHUB_ACTIONS_SETUP.md) - CI/CD pipeline
|
||||
- 🚀 [Deployment Guide](docs/DEPLOYMENT.md) - Complete deployment reference
|
||||
- 💻 [Development Guide](docs/DEVELOPMENT_GUIDE.md) - Local development setup
|
||||
- 📖 [API Documentation](docs/API_DOCUMENTATION.md) - RESTful API reference
|
||||
- 🎮 [IGDB Integration](docs/IGDB_INTEGRATION.md) - Game metadata matching
|
||||
- 🎨 [Themes](docs/THEMES.md) - Theme customization
|
||||
- 🎯 [Demo Account](docs/DEMO_ACCOUNT.md) - Try the demo
|
||||
|
||||
[**See all documentation →**](docs/README.md)
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
|
||||
- **Framework:** Ruby on Rails 8.1
|
||||
- **Frontend:** Hotwire (Turbo + Stimulus)
|
||||
- **Styling:** Tailwind CSS
|
||||
- **Database:** PostgreSQL with Row Level Security
|
||||
- **Background Jobs:** Solid Queue
|
||||
- **Deployment:** Docker, Kubernetes
|
||||
- **APIs:** IGDB (game metadata)
|
||||
|
||||
## 🤖 Continuous Integration
|
||||
|
||||
TurboVault includes GitHub Actions workflows:
|
||||
|
||||
- **CI Pipeline** - Runs tests, linting, and security scans on every push
|
||||
- **Build & Push** - Automatically builds Docker images and pushes to GitHub Container Registry
|
||||
|
||||
### Setup GitHub Actions
|
||||
|
||||
**No setup required!** The default workflow uses GitHub Container Registry (ghcr.io), which works out of the box with no secrets needed.
|
||||
|
||||
Just push a tag:
|
||||
```bash
|
||||
git tag v1.0.0
|
||||
git push origin v1.0.0
|
||||
```
|
||||
|
||||
Your image will be at: `ghcr.io/your-username/turbovault:v1.0.0`
|
||||
|
||||
**Want to use a different registry?** See [.github/SECRETS_SETUP.md](.github/SECRETS_SETUP.md) for examples (Docker Hub, private registry, etc.)
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Contributions are welcome! Please feel free to submit a Pull Request.
|
||||
|
||||
1. Fork the repository
|
||||
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
||||
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
||||
4. Push to the branch (`git push origin feature/amazing-feature`)
|
||||
5. Open a Pull Request
|
||||
|
||||
All PRs will automatically run CI tests.
|
||||
|
||||
## 📝 License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
## 🙏 Acknowledgments
|
||||
|
||||
- Game data provided by [IGDB](https://www.igdb.com/)
|
||||
- Built with [Ruby on Rails](https://rubyonrails.org/)
|
||||
- UI powered by [Tailwind CSS](https://tailwindcss.com/)
|
||||
|
||||
## 📧 Support
|
||||
|
||||
- 📖 [Documentation](docs/)
|
||||
- 🐛 [Issue Tracker](https://github.com/yourusername/turbovault/issues)
|
||||
- 💬 [Discussions](https://github.com/yourusername/turbovault/discussions)
|
||||
|
||||
---
|
||||
|
||||
Made with ❤️ for gamers and collectors
|
||||
Reference in New Issue
Block a user