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

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:

  1. Push code to GitHub:

    git push origin main
    
  2. Tag a release:

    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:

    # Edit k8s/deployment.yaml and k8s/migrate-job.yaml
    image: ghcr.io/YOUR_USERNAME/turbovault:v1.0.0
    
  5. 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! 🚀