mirror of
https://github.com/ryankazokas/turbovault-app.git
synced 2026-04-16 22:12:53 +00:00
180 lines
4.5 KiB
Markdown
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!** 🚀
|