- Implemented Settings page for changing user passwords with validation and feedback. - Created Setup page for initial admin account setup with form handling and navigation. - Added API service layer for handling requests related to proxy hosts, remote servers, and import functionality. - Introduced mock data for testing purposes and set up testing framework with vitest. - Configured Tailwind CSS for styling and Vite for development and build processes. - Added scripts for Dockerfile validation, Python syntax checking, and Sourcery integration. - Implemented release and coverage scripts for better CI/CD practices.
7.0 KiB
GitHub Container Registry & Pages Setup Summary
✅ Changes Completed
Updated all workflows and documentation to use GitHub Container Registry (GHCR) instead of Docker Hub, and configured documentation to publish to GitHub Pages (not wiki).
🐳 Docker Registry Changes
What Changed:
- Before: Docker Hub (
docker.io/wikid82/caddy-proxy-manager-plus) - After: GitHub Container Registry (
ghcr.io/wikid82/caddyproxymanagerplus)
Benefits of GHCR:
✅ No extra accounts needed - Uses your GitHub account
✅ Automatic authentication - Uses built-in GITHUB_TOKEN
✅ Free for public repos - No Docker Hub rate limits
✅ Integrated with repo - Packages show up on your GitHub profile
✅ Better security - No need to store Docker Hub credentials
Files Updated:
1. .github/workflows/docker-build.yml
- Changed registry from
docker.iotoghcr.io - Updated image name to use
${{ github.repository }}(automatically resolves towikid82/caddyproxymanagerplus) - Changed login action to use GitHub Container Registry with
GITHUB_TOKEN - Updated all image references throughout workflow
- Updated summary outputs to show GHCR URLs
Key Changes:
# Before
env:
REGISTRY: docker.io
IMAGE_NAME: wikid82/caddy-proxy-manager-plus
# After
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
# Before
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# After
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
2. docs/github-setup.md
- Removed entire Docker Hub setup section
- Added GHCR explanation (no setup needed!)
- Updated instructions for making packages public
- Changed all docker pull commands to use
ghcr.io - Updated troubleshooting for GHCR-specific issues
- Added workflow permissions instructions
Key Sections Updated:
- Step 1: Now explains GHCR is automatic (no secrets needed)
- Troubleshooting: GHCR-specific error handling
- Quick Reference: All commands use
ghcr.io/wikid82/caddyproxymanagerplus - Checklist: Removed Docker Hub items, added workflow permissions
3. README.md
- Updated Docker quick start command to use GHCR
- Changed from
wikid82/caddy-proxy-manager-plustoghcr.io/wikid82/caddyproxymanagerplus
4. docs/getting-started.md
- Updated Docker run command to use GHCR image path
📚 Documentation Publishing
GitHub Pages (Not Wiki)
Why Pages instead of Wiki:
- ✅ Automated deployment - Deploys automatically via GitHub Actions
- ✅ Beautiful styling - Custom HTML with dark theme
- ✅ Version controlled - Changes tracked in git
- ✅ Search engine friendly - Better SEO than wikis
- ✅ Custom domain support - Can use your own domain
- ✅ Modern features - Supports custom styling, JavaScript, etc.
Wiki limitations:
- ❌ No automated deployment from Actions
- ❌ Limited styling options
- ❌ Separate from main repository
- ❌ Less professional appearance
Workflow Configuration
The docs.yml workflow already configured for GitHub Pages:
- Converts markdown to HTML
- Creates beautiful landing page
- Deploys to Pages on every docs change
- No wiki integration needed or wanted
🚀 How to Use
For Users (Pulling Images):
Latest stable version:
docker pull ghcr.io/wikid82/cpmp:latest
docker run -d -p 8080:8080 -v caddy_data:/app/data ghcr.io/wikid82/cpmp:latest
Development version:
docker pull ghcr.io/wikid82/cpmp:dev
Specific version:
docker pull ghcr.io/wikid82/caddyproxymanagerplus:1.0.0
For Maintainers (Setup):
1. Enable Workflow Permissions
Required for pushing to GHCR:
- Go to Settings → Actions → General
- Scroll to Workflow permissions
- Select "Read and write permissions"
- Click Save
2. Enable GitHub Pages
Required for docs deployment:
- Go to Settings → Pages
- Under Build and deployment:
- Source: "GitHub Actions"
- That's it!
3. Make Package Public (Optional)
After first build, to allow public pulls:
- Go to repository
- Click Packages (right sidebar)
- Click your package name
- Click Package settings
- Scroll to Danger Zone
- Change visibility → Public
🎯 What Happens Now
On Push to development:
- ✅ Builds Docker image
- ✅ Tags as
dev - ✅ Pushes to
ghcr.io/wikid82/caddyproxymanagerplus:dev - ✅ Tests the image
- ✅ Shows summary with pull command
On Push to main:
- ✅ Builds Docker image
- ✅ Tags as
latest - ✅ Pushes to
ghcr.io/wikid82/caddyproxymanagerplus:latest - ✅ Tests the image
- ✅ Converts docs to HTML
- ✅ Deploys to
https://wikid82.github.io/CaddyProxyManagerPlus/
On Version Tag (e.g., v1.0.0):
- ✅ Builds Docker image
- ✅ Tags as
1.0.0,1.0,1, andsha-abc1234 - ✅ Pushes all tags to GHCR
- ✅ Tests the image
🔍 Verifying It Works
Check Docker Build:
- Push any change to
development - Go to Actions tab
- Watch "Build and Push Docker Images" run
- Check Packages section on GitHub
- Should see package with
devtag
Check Docs Deployment:
- Push any change to docs
- Go to Actions tab
- Watch "Deploy Documentation to GitHub Pages" run
- Visit
https://wikid82.github.io/CaddyProxyManagerPlus/ - Should see your docs with dark theme!
📦 Image Locations
All images are now at:
ghcr.io/wikid82/caddyproxymanagerplus:latest
ghcr.io/wikid82/caddyproxymanagerplus:dev
ghcr.io/wikid82/caddyproxymanagerplus:1.0.0
ghcr.io/wikid82/caddyproxymanagerplus:1.0
ghcr.io/wikid82/caddyproxymanagerplus:1
ghcr.io/wikid82/caddyproxymanagerplus:sha-abc1234
View on GitHub:
https://github.com/Wikid82/CaddyProxyManagerPlus/pkgs/container/caddyproxymanagerplus
🎉 Benefits Summary
No More:
- ❌ Docker Hub account needed
- ❌ Manual secret management
- ❌ Docker Hub rate limits
- ❌ Separate image registry
- ❌ Complex authentication
Now You Have:
- ✅ Automatic authentication
- ✅ Unlimited pulls (for public packages)
- ✅ Images linked to repository
- ✅ Free hosting
- ✅ Better integration with GitHub
- ✅ Beautiful documentation site
- ✅ Automated everything!
📝 Files Modified
.github/workflows/docker-build.yml- Complete GHCR migrationdocs/github-setup.md- Updated for GHCR and PagesREADME.md- Updated docker commandsdocs/getting-started.md- Updated docker commands
✅ Ready to Deploy!
Everything is configured and ready. Just:
- Set workflow permissions (Settings → Actions → General)
- Enable Pages (Settings → Pages → Source: GitHub Actions)
- Push to
developmentto test - Push to
mainto go live!
Your images will be at ghcr.io/wikid82/caddyproxymanagerplus and docs at https://wikid82.github.io/CaddyProxyManagerPlus/! 🚀