4.5 KiB
✅ 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:
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:
# .github/workflows/build-and-push.yml
env:
REGISTRY: docker.io
IMAGE_NAME: your-username/turbovault
Add secrets: DOCKERHUB_USERNAME, DOCKERHUB_TOKEN
Private Registry Example:
env:
REGISTRY: registry.example.com
IMAGE_NAME: turbovault
Add secrets for your registry credentials.
See .github/SECRETS_SETUP.md for examples.
📦 Kubernetes Deployment
Update the image in k8s/deployment.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:
imagePullSecrets:
- name: registry-secret
Create secret:
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 - Registry options
- k8s/README.md - Kubernetes deployment
- README.md - Main project README
🚀 Quick Start (Recommended Path)
-
Push code to GitHub:
git push origin main -
Tag a release:
git tag v1.0.0 git push origin v1.0.0 -
Watch GitHub Actions:
- Go to Actions tab
- See build complete
- Image pushed to ghcr.io/YOUR_USERNAME/turbovault:v1.0.0
-
Update k8s manifests:
# Edit k8s/deployment.yaml and k8s/migrate-job.yaml image: ghcr.io/YOUR_USERNAME/turbovault:v1.0.0 -
Deploy:
./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! 🚀