mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 07:41:27 +00:00
Backend: - GET /services/:id/metrics with real Docker container stats - DELETE /git/providers/:id and GET repo branches endpoint Frontend: - Service detail shows real telemetry or honest empty states - Live status distinguishes idle/polling/reconnecting - Git providers section in Settings; repo+branch pickers in Add Service - Real logo, compact Projects header, canvas fitView fix - index.css deduplicated (1725 -> 1384 lines) - Fixed smoke tests, lint errors, ToastProvider/context unification Repo hygiene: - Added LICENSE (MIT), CONTRIBUTING.md, SECURITY.md; rewrote README - Untracked .env.prod and data/letsencrypt secrets; fixed .gitignore - Removed legacy root src/internal/cmd and stale configs/docs/artifacts - Moved guides and design references under docs/ Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
6.2 KiB
6.2 KiB
🚀 Zero-Interaction Docker Deployment System
🎯 Fully Automatic Deployment
I've created a completely automated deployment system that requires ZERO user interaction. Just run one command and it does everything!
⚡ One-Click Deployment
Option 1: Quick Start (Recommended)
# Run the quick deploy script
./scripts/quick-deploy.sh
What happens:
- 🎯 Shows you 6 deployment options
- 🚀 Deploys your choice automatically
- 🔧 Handles everything (secrets, directories, ports)
- 🌐 Shows access URLs when done
Option 2: Direct Command
# Deploy any template instantly
./scripts/auto-deploy.sh umami
./scripts/auto-deploy.sh plex
./scripts/auto-deploy.sh nextcloud
Option 3: Deploy Everything
# Deploy all 20 templates at once
./scripts/auto-deploy.sh --all
🔄 What Happens Automatically
🔍 Dependency Check
✅ Checks if Docker is installed
✅ Installs Docker if missing
✅ Checks if Docker Compose is installed
✅ Installs Docker Compose if missing
📁 Directory Creation
✅ Creates deployment directory
✅ Creates required subdirectories
✅ Sets proper permissions
✅ Handles existing deployments
🔧 Configuration Setup
✅ Extracts docker-compose.yml from template
✅ Creates .env file with all variables
✅ Auto-generates secrets and passwords
✅ Fixes port conflicts automatically
✅ Optimizes volume paths
🐳 Docker Deployment
✅ Pulls all required images
✅ Starts all services
✅ Waits for services to be ready
✅ Checks service health
✅ Shows deployment status
🌐 Access Information
✅ Shows all access URLs
✅ Provides management commands
✅ Shows deployment directory
✅ Opens browser automatically (optional)
🎮 Try It Now
Easiest Way:
./scripts/quick-deploy.sh
You'll see:
🚀 One-Click Docker Deployment
============================
🎯 Choose your deployment:
1. 🌐 Deploy Glance Dashboard (Recommended - Simple & Fast)
2. 📊 Deploy Umami Analytics (Web Analytics)
3. 📝 Deploy Memos (Note-taking)
4. 🔍 Deploy MeiliSearch (Search Engine)
5. 📈 Deploy Uptime Kuma (Monitoring)
6. 🚀 Deploy ALL Templates (Advanced)
Enter your choice (1-6): 1
🌐 Deploying Glance Dashboard...
Direct Way:
# Deploy any template instantly
./scripts/auto-deploy.sh glance
📊 Example Output
Here's what you'll see during deployment:
🚀 Auto-Deploying glance
========================================
🔄 Checking dependencies...
✅ Docker is installed
✅ Docker Compose is installed
🔄 Auto-deploying glance...
✅ Created deployment directory: /path/to/deployments/glance
🔄 Extracting docker-compose.yml...
✅ docker-compose.yml extracted and optimized
🔄 Creating .env file...
✅ .env file created (no variables required)
🔄 Auto-deploying glance...
🔄 Pulling Docker images...
✅ Images pulled
🔄 Starting services...
✅ Services started successfully
🎉 Deployment Complete!
========================================
✅ Access URLs:
🌐 http://localhost:8080 (port: 8080)
✅ Management Commands:
📋 View logs: docker-compose logs -f
🛑 Stop services: docker-compose down
🔄 Restart: docker-compose restart
📊 Status: docker-compose ps
🗑️ Cleanup: docker-compose down -v
✅ Deployment directory: /path/to/deployments/glance
🎉 glance deployed successfully!
🔧 Advanced Options
Custom Configuration
# Deploy without auto-generating secrets
./scripts/auto-deploy.sh --no-secrets umami
# Deploy without creating directories
./scripts/auto-deploy.sh --no-dirs plex
# Deploy without auto-starting services
./scripts/auto-deploy.sh --no-start nextcloud
# Deploy and auto-open browser
./scripts/auto-deploy.sh --open-browser glance
Batch Deployment
# Deploy multiple templates
for template in umami glance memos; do
./scripts/auto-deploy.sh "$template"
done
# Deploy all templates
./scripts/auto-deploy.sh --all
🛡️ Safety Features
Automatic Conflict Resolution
✅ Detects port conflicts
✅ Auto-assigns available ports
✅ Handles existing deployments
✅ Cleans up previous installations
Security
✅ Generates strong random secrets
✅ Uses secure default passwords
✅ Isolates deployments in separate directories
✅ Logs all actions for audit trail
Error Handling
✅ Validates template existence
✅ Checks service health
✅ Provides detailed error messages
✅ Offers rollback commands
📁 Directory Structure
your-project/
├── scripts/
│ ├── auto-deploy.sh # 🚀 Main auto-deployment script
│ └── quick-deploy.sh # ⚡ Quick start script
├── templates/
│ ├── umami.md
│ ├── plex.md
│ └── ...
└── deployments/ # 📁 Auto-created
├── glance/ # 📁 Template deployment
│ ├── docker-compose.yml
│ ├── .env
│ ├── data/
│ └── logs/
├── umami/
└── plex/
🎯 Template Difficulty Levels
| Easy (Auto-Deploy) | Medium (Auto-Deploy) | Hard (Auto-Deploy) |
|---|---|---|
| 🌐 Glance | 📊 Umami | 🗄️ Supabase |
| 📝 Memos | 📈 Uptime Kuma | 🏠 Home Assistant |
| 🔍 MeiliSearch | 🛡️ Vaultwarden | 📊 Grafana |
| 🚪 Pi-hole | 📁 Cloudreve | 🐙 Gitea |
| 🌐 Traefik | 🦣 Mastodon | |
| 🎬 Jellyfin | ☁️ Nextcloud | |
| 📚 Plex | 🎬 Immich | |
| 🔄 n8n |
🚀 Ready to Use?
Yes! The system is fully automatic. Just run:
# Quick start (easiest)
./scripts/quick-deploy.sh
# Or direct deployment
./scripts/auto-deploy.sh glance
That's it! 🎉
The system will:
- ✅ Install Docker if needed
- ✅ Deploy your chosen service
- ✅ Generate all secrets
- ✅ Handle all configuration
- ✅ Show you the access URL
- ✅ Provide management commands
Zero user interaction required! 🚀