5.4 KiB
Portainer Quick Reference
🚀 Quick Start
Access Portainer
http://localhost:9000
or
http://einszwovier.local:9000
First Login
- Create admin account
- Select "Local" environment
- Done!
📊 Stack Overview: studio-einszwovier
| Service | Port | Health Check | Purpose |
|---|---|---|---|
| web | 80 | ✅ | PDF Cost Calculator |
| bookstack | 6875 | ✅ | Documentation Wiki |
| bookstack-mariadb | - | ✅ | Database |
| synapse | 8008 | ✅ | Matrix Server |
| ollama | 11434 | ✅ | Local LLM |
| open-webui | 8080 | ✅ | LLM Interface |
| watchtower | - | ✅ | Auto-Updates |
| portainer | 9000 | ✅ | Management UI |
🎯 Common Tasks
View All Services
Portainer: Stacks → studio-einszwovier
CLI: docker-compose ps
Restart a Service
Portainer: Containers → [service] → Restart
CLI: docker-compose restart [service]
View Logs
Portainer: Containers → [service] → Logs
CLI: docker-compose logs -f [service]
Check Health Status
Portainer: Containers → Look for 🟢/🔴 indicator
CLI: docker-compose ps (shows (healthy) or (unhealthy))
Stop Everything
Portainer: Stacks → studio-einszwovier → Stop
CLI: docker-compose stop
Start Everything
Portainer: Stacks → studio-einszwovier → Start
CLI: docker-compose start
Update a Service
Portainer: Containers → [service] → Recreate
CLI: docker-compose pull [service] && docker-compose up -d [service]
🔍 Troubleshooting
Service Shows 🔴 Unhealthy
- Click container → Logs
- Look for errors
- Check health check output in Inspect tab
- Restart if needed
Can't Access Portainer
docker-compose restart portainer
# Wait 30 seconds
# Try again at http://localhost:9000
Service Won't Start
- Check Portainer logs for the service
- Look for dependency issues (red containers)
- Check resource limits (Stats tab)
- Verify environment variables in Container → Env
📋 Health Check Endpoints
Test manually if needed:
# Web App
curl http://localhost/
# BookStack
curl http://localhost:6875/
# Matrix Synapse
curl http://localhost:8008/health
# Ollama
curl http://localhost:11434/api/tags
# Open WebUI
curl http://localhost:8080/
# Portainer
curl http://localhost:9000/api/system/status
🏷️ Labels in Portainer
All services are tagged with:
- description: What it does
- maintainer: Studio EinsZwoVier
- watchtower.enable: Auto-update enabled
Filter by labels in Portainer UI!
🔄 Auto-Updates (Watchtower)
- Schedule: Every 24 hours
- Action: Pulls latest images and recreates containers
- Which services: Only those with
watchtower.enable=truelabel - View updates: Containers → watchtower → Logs
Disable Auto-Update for a Service
Edit docker-compose.yml, remove:
labels:
- "com.centurylinklabs.watchtower.enable=true"
📈 Resource Monitoring
Portainer: Container → Stats Shows:
- CPU usage (%)
- Memory usage (MB / GB)
- Network I/O
- Block I/O
Limits Set:
- web: 1GB RAM, 1 CPU
- ollama: 8GB RAM, 4 CPU
🌐 Network: einszwovier_network
All services communicate on this network.
View: Networks → einszwovier_network → Connected containers
💾 Volumes
| Volume | Used By | Purpose |
|---|---|---|
| portainer_data | portainer | Portainer config |
| ./data/uploads | web | PDF uploads |
| ./bookstack/* | bookstack | Wiki data |
| ./matrix/data | synapse | Matrix data |
| ./ollama | ollama | LLM models |
| ./open-webui | open-webui | Chat history |
Backup: See backup.sh script
⚙️ Useful Portainer Features
Execute Shell Commands
- Containers → [service] → Console
- Select
/bin/bashor/bin/sh - Click Connect
- Run commands
View Container Config
- Containers → [service] → Inspect
- See full JSON configuration
- Copy environment variables
- Check volume mounts
Duplicate Container
- Containers → [service] → Duplicate/Edit
- Modify settings
- Deploy as new container
Container Template
- App Templates → Custom Templates
- Create from existing container
- Reuse configuration
🎨 Status Icons
| Icon | Meaning | Action |
|---|---|---|
| 🟢 | Healthy | None needed |
| 🟡 | Starting | Wait (within start_period) |
| 🔴 | Unhealthy | Check logs |
| ⚫ | Stopped | Start container |
| 🔄 | Restarting | Wait or investigate |
📞 Quick Help
"I can't find my containers!"
- Go to Home
- Select Local environment
- Go to Stacks → studio-einszwovier
"Health checks keep failing"
- Increase
start_periodin docker-compose.yml - Check service logs for actual errors
- Verify network connectivity
"Portainer shows wrong status"
- Refresh page (F5)
- Check "Last Updated" timestamp
- Restart Portainer if stale
🔐 Security Notes
- Portainer admin password is set on first login (save it!)
- Docker socket mounted = full control (use carefully)
- HTTPS available on port 9443 (configure in Portainer settings)
📱 Mobile Access
Portainer works great on mobile:
- Open browser on phone
- Navigate to
http://[server-ip]:9000 - Same features as desktop!
✅ Daily Checklist
- All services showing 🟢 healthy
- No unusual CPU/memory spikes
- Recent watchtower update logs look good
- No red error logs in critical services
Portainer makes this a 30-second check!