Files
turbovault-app/REGISTRY_SIMPLIFIED.md
2026-03-28 19:24:29 -04:00

180 lines
4.5 KiB
Markdown

# ✅ Container Registry Simplified!
The deployment has been simplified to be registry-agnostic. You can now use any container registry you prefer!
## What Changed
### Before:
- Hardcoded for Gitea registry
- Required 4 GitHub secrets
- Complex setup instructions
- Registry-specific documentation
### After:
- **Default:** GitHub Container Registry (ghcr.io) - zero setup!
- **Flexible:** Works with any registry (Docker Hub, private registry, etc.)
- **Simple:** No secrets needed for default setup
- **Clean:** Registry-agnostic documentation
## 🎯 Default Setup: GitHub Container Registry
**No setup required!** Just push a tag:
```bash
git tag v1.0.0
git push origin v1.0.0
```
- ✅ Free
- ✅ Built into GitHub
- ✅ No secrets to configure
- ✅ Automatic authentication
- ✅ Public or private images
Your image will be at: `ghcr.io/YOUR_USERNAME/turbovault:v1.0.0`
## 🔧 Using a Different Registry (Optional)
Want to use Docker Hub, your own registry, or something else? Just modify the workflow:
### Docker Hub Example:
```yaml
# .github/workflows/build-and-push.yml
env:
REGISTRY: docker.io
IMAGE_NAME: your-username/turbovault
```
Add secrets: `DOCKERHUB_USERNAME`, `DOCKERHUB_TOKEN`
### Private Registry Example:
```yaml
env:
REGISTRY: registry.example.com
IMAGE_NAME: turbovault
```
Add secrets for your registry credentials.
See [.github/SECRETS_SETUP.md](.github/SECRETS_SETUP.md) for examples.
## 📦 Kubernetes Deployment
Update the image in `k8s/deployment.yaml`:
```yaml
# For GitHub Container Registry (default)
image: ghcr.io/your-username/turbovault:latest
# For Docker Hub
image: docker.io/your-username/turbovault:latest
# For private registry
image: registry.example.com/turbovault:latest
```
### Public Registry (ghcr.io public or Docker Hub public):
No `imagePullSecrets` needed!
### Private Registry:
```yaml
imagePullSecrets:
- name: registry-secret
```
Create secret:
```bash
kubectl create secret docker-registry registry-secret \
--docker-server=your-registry.com \
--docker-username=your-username \
--docker-password=your-token \
--namespace=turbovault
```
## 📁 Files Updated
### Removed:
-`k8s/GITEA_SETUP.md` - Gitea-specific guide (no longer needed)
-`k8s/gitea-registry-secret.yaml.example` - Gitea secret template
-`docs/.github-gitea-setup.md` - GitHub+Gitea architecture
### Updated:
-`.github/workflows/build-and-push.yml` - Uses ghcr.io by default
-`.github/SECRETS_SETUP.md` - Simplified, no secrets needed for default
-`k8s/deployment.yaml` - Example with ghcr.io
-`k8s/migrate-job.yaml` - Example with ghcr.io
-`k8s/README.md` - Registry-agnostic instructions
-`README.md` - Updated deployment steps
-`scripts/deploy-k8s.sh` - Generic registry prompts
## 🎉 Benefits
### For Users:
- ✅ Simpler setup (zero config for ghcr.io)
- ✅ Choice of any registry
- ✅ No mandatory external dependencies
- ✅ Standard GitHub workflow
### For Open Source:
- ✅ Contributors don't need private registries
- ✅ Works out of the box with GitHub
- ✅ Easy to fork and deploy
- ✅ Professional standard setup
## 📖 Updated Documentation
All documentation has been updated to:
- Use GitHub Container Registry as the default example
- Provide examples for other registries
- Remove Gitea-specific instructions
- Be registry-agnostic
**Key docs:**
- [.github/SECRETS_SETUP.md](.github/SECRETS_SETUP.md) - Registry options
- [k8s/README.md](k8s/README.md) - Kubernetes deployment
- [README.md](README.md) - Main project README
## 🚀 Quick Start (Recommended Path)
1. **Push code to GitHub:**
```bash
git push origin main
```
2. **Tag a release:**
```bash
git tag v1.0.0
git push origin v1.0.0
```
3. **Watch GitHub Actions:**
- Go to Actions tab
- See build complete
- Image pushed to ghcr.io/YOUR_USERNAME/turbovault:v1.0.0
4. **Update k8s manifests:**
```bash
# Edit k8s/deployment.yaml and k8s/migrate-job.yaml
image: ghcr.io/YOUR_USERNAME/turbovault:v1.0.0
```
5. **Deploy:**
```bash
./scripts/deploy-k8s.sh
```
Done! 🎉
## 💡 You Can Still Use Gitea (or any registry)
This change doesn't prevent you from using Gitea or any other registry. It just:
- Makes the default simpler (uses GitHub's built-in registry)
- Makes the code registry-agnostic
- Removes hardcoded assumptions
**To use Gitea:** Just modify the workflow and k8s manifests with your Gitea registry paths. It's all flexible now!
---
**Everything is simpler, cleaner, and more flexible!** 🚀