Commands Quick Reference¶
Service Management¶
Start/Stop Services¶
# Start a service
cd /srv/dockerdata/SERVICE && docker compose up -d
# Stop a service
cd /srv/dockerdata/SERVICE && docker compose down
# Restart a service
cd /srv/dockerdata/SERVICE && docker compose restart
# View service status
docker ps | grep SERVICE
Service-Specific Commands¶
Metube (YouTube Downloader)¶
# Start Metube
cd /srv/dockerdata/metube && docker compose up -d
# View downloads
ls -la /srv/dockerdata/metube/downloads/
# Check logs
docker logs metube -f
Paperless NGX (Document Management)¶
# Start Paperless stack
cd /srv/dockerdata/paperless && docker compose up -d
# Access database directly
docker exec -it paperless-db psql -U paperless -d paperless
# Check OCR processing logs
docker logs paperless -f | grep -i ocr
# View document consumption
ls -la /srv/dockerdata/paperless/consume/
Paperless-AI (AI Document Analysis)¶
# Start Paperless-AI
cd /srv/dockerdata/paperless-ai && docker compose up -d
# Check logs
docker logs paperless-ai -f
# Access locally (via port mapping)
curl http://127.0.0.1:3003
Watchtower (Container Updates)¶
# Check Watchtower logs
docker logs watchtower -f
# Force update check (restart Watchtower)
docker restart watchtower
# View update history
docker logs watchtower | grep -i "updated"
View Logs¶
# Follow logs
docker compose -f /srv/dockerdata/SERVICE/docker-compose.yml logs -f
# Last 100 lines
docker logs --tail 100 CONTAINER_NAME
# Since timestamp
docker logs --since 2024-01-01T00:00:00 CONTAINER_NAME
StackWiz Commands¶
# Interactive mode
sudo stackwiz
# Create generic service
sudo stackwiz -n app -d app.domain.com -i image:tag -p PORT --yes
# Create Pocketbase service
sudo stackwiz -n backend -d api.domain.com --type pocketbase --yes
# With automatic DNS creation
sudo stackwiz -n app -d app.domain.com -i image:tag -p PORT --create-dns --yes
# Help
stackwiz --help
Docker Cleanup¶
# Remove stopped containers
docker container prune -f
# Remove unused images
docker image prune -a -f
# Remove unused volumes
docker volume prune -f
# Full cleanup (careful!)
docker system prune -a --volumes -f
# Check disk usage
docker system df
Notification Commands¶
# Send simple notification
notify "Title" "Message body"
# Send with priority and channel
notify "Alert" "Critical issue" 5 monitoring-critical
# Send via Apprise API
curl -X POST https://apprise.rbnk.uk/notify/apprise \
-H "Content-Type: application/json" \
-d '{"title": "Test", "body": "Test message"}'
# Send to ntfy topic
curl -u USERNAME:PASSWORD \
-d "Message" \
-H "Title: Alert" \
-H "Priority: 3" \
https://ntfy.rbnk.uk/topic
# Test email to notification gateway
echo "Test" | mail -s "Subject" [email protected]
Backup Commands¶
# Run Supabase backup
/srv/dockerdata/_scripts/supabase-backup.sh
# Run Pocketbase backup
/srv/dockerdata/_scripts/pocketbase-backup.sh
# Manual PostgreSQL backup
docker exec supa-db pg_dumpall -U postgres > backup.sql
Network Debugging¶
# List networks
docker network ls
# Inspect network
docker network inspect traefik_proxy
# Test connectivity from container
docker exec CONTAINER ping OTHER_CONTAINER
# Check exposed ports
docker port CONTAINER_NAME
Disk Management¶
# Check disk space
df -h
df -h /srv/dockerdata
# Find large directories
du -sh /srv/dockerdata/* | sort -h
# Find large files
find /srv/dockerdata -type f -size +100M -exec ls -lh {} \;
# Check inode usage
df -i
Traefik Commands¶
# Check Traefik logs
docker logs traefik -f
# View active routes (if API enabled)
curl http://localhost:8080/api/http/routers | jq
# Test SSL certificate
curl -I https://domain.com
Container Inspection¶
# Full container details
docker inspect CONTAINER_NAME
# Get IP address
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' CONTAINER
# Get environment variables
docker inspect CONTAINER | jq '.[0].Config.Env'
# Get volumes
docker inspect CONTAINER | jq '.[0].Mounts'
Ollama Commands¶
# List models
ollama list
# Pull a model
ollama pull llama3.2
# Run a model
ollama run llama3.2
# Delete a model
ollama rm MODEL_NAME
# Check Ollama service
systemctl status ollama
Database Access¶
PostgreSQL (Supabase)¶
# Access psql
docker exec -it supa-db psql -U postgres
# Backup single database
docker exec supa-db pg_dump -U postgres DATABASE > db.sql
# List databases
docker exec supa-db psql -U postgres -c "\l"
Redis¶
# Access Redis CLI
docker exec -it redis redis-cli
# Check Redis info
docker exec redis redis-cli INFO
Notification Commands¶
Send Notifications¶
# Send notification via notify helper
notify "Title" "Message" [priority] [channel]
# Examples
notify "Backup Complete" "Daily backup finished successfully"
notify "Disk Warning" "Disk usage at 85%" 4 monitoring
notify "Deploy Success" "v1.2.3 deployed to production" 3 deployment
# Send via Apprise API
curl -X POST https://apprise.rbnk.uk/notify/apprise \
-H "Content-Type: application/json" \
-d '{"title": "Alert", "body": "Message", "tag": "critical"}'
# Send to ntfy topic
curl -u username:password \
-d "Message body" \
-H "Title: Alert Title" \
-H "Priority: 4" \
https://ntfy.rbnk.uk/service-severity-category
Test Notifications¶
# Test all channels
notify "Test Alert" "Testing at $(date)" 3 test
# Test specific Apprise tags
curl -X POST https://apprise.rbnk.uk/notify/apprise \
-H "Content-Type: application/json" \
-d '{"title": "Tag Test", "body": "Testing critical tag", "tag": "critical"}'
# Test ntfy authentication
curl -u admin:PASSWORD https://ntfy.rbnk.uk/health
View Notification Logs¶
# Apprise logs
docker compose -f apprise/docker-compose.yml logs -f
# ntfy logs
docker compose -f ntfy/docker-compose.yml logs -f
# Uptime Kuma logs
docker compose -f uptime-kuma/docker-compose.yml logs -f
DNS Commands¶
Simple DNS Creation (A records only)¶
# Create DNS A record in Cloudflare
/srv/dockerdata/_scripts/cloudflare-dns-create.sh subdomain
# With specific IP
/srv/dockerdata/_scripts/cloudflare-dns-create.sh subdomain A 1.2.3.4
Advanced DNS Management (all record types)¶
# Create various record types
cloudflare-dns create A myapp AUTO
cloudflare-dns create CNAME www myapp.rbnk.uk
cloudflare-dns create MX @ mail.server.com 10
cloudflare-dns create TXT @ "v=spf1 include:_spf.mail.com ~all"
# List all DNS records
cloudflare-dns list
cloudflare-dns list --type A
cloudflare-dns list --name myapp
# Get record details
cloudflare-dns get myapp
cloudflare-dns get myapp A
# Update records
cloudflare-dns update myapp 5.6.7.8
cloudflare-dns update myapp 5.6.7.8 --no-proxy --ttl 3600
# Delete records
cloudflare-dns delete myapp
cloudflare-dns delete myapp A
# Help
cloudflare-dns --help
DNS Verification¶
# Check DNS propagation
dig subdomain.rbnk.uk
dig @8.8.8.8 subdomain.rbnk.uk
dig @1.1.1.1 subdomain.rbnk.uk
# Trace DNS resolution
dig +trace subdomain.rbnk.uk
# Check current DNS records
nslookup subdomain.rbnk.uk
host subdomain.rbnk.uk
# Check all DNS records for domain
dig rbnk.uk ANY
SSL/Certificate Commands¶
# Check certificate expiry
echo | openssl s_client -servername domain.com -connect domain.com:443 2>/dev/null | openssl x509 -noout -dates
# Force certificate renewal (Traefik)
rm -f /srv/dockerdata/traefik/letsencrypt/acme.json
docker restart traefik
System Monitoring¶
# CPU and Memory usage
htop
# Disk I/O
iotop
# Network connections
ss -tulpn
# Process tree
pstree -p
# System load
uptime
Emergency Commands¶
Service Won't Stop¶
Disk Full¶
Port Conflicts¶
Useful Aliases¶
Add to ~/.bashrc:
# Docker shortcuts
alias dc='docker compose'
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias dlogs='docker logs -f'
# Navigation
alias cddata='cd /srv/dockerdata'
# Service management
dstart() { cd /srv/dockerdata/$1 && docker compose up -d; }
dstop() { cd /srv/dockerdata/$1 && docker compose down; }
drestart() { cd /srv/dockerdata/$1 && docker compose restart; }
One-Liners¶
# Show all container IPs
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q)
# Watch container resources
docker stats --no-stream
# Remove all stopped containers
docker container prune -f
# Show image sizes
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
# Follow all logs
docker compose logs -f --tail=10
# Quick backup
tar -czf backup-$(date +%Y%m%d).tar.gz /srv/dockerdata/SERVICE