Common Management Commands
Quick reference for daily operations on collabrains.eu infrastructure.
Docker Container Management
List Containers
# All containers (running + stopped)
docker ps -a
# Only running containers
docker ps
# Filter by name
docker ps | grep SERVICE_NAME
# Show container sizes
docker ps -a --format "table {{.Names}}\t{{.Size}}"
View Logs
# Last 50 lines
docker logs CONTAINER_NAME --tail 50
# Follow logs in real-time
docker logs CONTAINER_NAME -f
# With timestamps
docker logs CONTAINER_NAME --tail 50 --timestamps
# Last hour of logs
docker logs CONTAINER_NAME --since 1h
# Specific service (e.g., Paperless)
docker logs paperless-woq978nbzog6dmddhrmeujvk --tail 100
Container Operations
# Restart a container
docker restart CONTAINER_NAME
# Stop a container
docker stop CONTAINER_NAME
# Start a container
docker start CONTAINER_NAME
# Remove a stopped container
docker rm CONTAINER_NAME
# Execute command in running container
docker exec -it CONTAINER_NAME bash
docker exec -it CONTAINER_NAME sh
Docker Compose Operations
# Navigate to service directory
cd /data/coolify/services/SERVICE_ID
# Restart service (recommended way)
docker compose restart
# Stop and start
docker compose down
docker compose up -d
# Build and start (if image changed)
docker compose up -d --build
# View compose logs
docker compose logs -f
# Execute in service container
docker compose exec SERVICE_NAME bash
System Monitoring
Resource Usage
# Memory and swap
free -h
# Disk space
df -h /
df -h /data
df -h /backups
# CPU and process info
top
htop
# Docker container stats
docker stats
# Watch specific container
docker stats CONTAINER_NAME
Network
# Check open ports
netstat -tuln | grep LISTEN
ss -tuln | grep LISTEN
# Test DNS resolution
nslookup collabrains.eu
dig collabrains.eu
# Check service connectivity
curl -I https://docs.collabrains.eu
curl http://localhost:8000 # Coolify admin
Service-Specific Commands
Immich (Photos)
# Check database
docker exec -it postgres-IMMICH_ID psql -U immich -d immich
# Count photos
# Inside psql:
SELECT COUNT(*) FROM assets;
# Restart
cd /data/coolify/services/IMMICH_ID && docker compose restart
Paperless (Documents)
# View logs
docker logs paperless-woq978nbzog6dmddhrmeujvk -f
# List files in consume directory
ls -la /data/coolify/services/woq978nbzog6dmddhrmeujvk/consume/
# Manually restart Redis
docker restart redis-woq978nbzog6dmddhrmeujvk
n8n (Automation)
# View logs
docker logs n8n-main -f
# Database access
docker exec -it postgres-N8N_ID psql -U n8n -d n8n
# Restart n8n
cd /data/coolify/services/N8N_ID && docker compose restart
Grist (Spreadsheets)
# View logs
docker logs grist -f
# Database size
docker exec postgres-GRIST_ID psql -U grist -d grist -c "SELECT pg_size_pretty(pg_database_size('grist'));"
Database Operations
PostgreSQL
# List PostgreSQL containers
docker ps | grep postgres
# Connect to database
docker exec -it postgres-SERVICE_ID psql -U USERNAME -d DBNAME
# Backup database
docker exec postgres-SERVICE_ID pg_dump -U USERNAME DBNAME > backup.sql
# Restore database
docker exec -i postgres-SERVICE_ID psql -U USERNAME DBNAME < backup.sql
# List databases
# Inside psql:
\l
# Exit psql
\q
Redis
# Test Redis connection
docker exec redis-SERVICE_ID redis-cli ping
# Should return: PONG
# Check Redis keys
docker exec redis-SERVICE_ID redis-cli KEYS "*"
# View Redis info
docker exec redis-SERVICE_ID redis-cli INFO
# Clear all data (dangerous!)
docker exec redis-SERVICE_ID redis-cli FLUSHALL
Backup & Cleanup
Manual Backup
# Run backup script
/usr/local/bin/backup-collabrains.sh
# Check backup
ls -lh /backups/$(date +%Y-%m-%d)/
Disk Cleanup
# Remove old backups (keep 30 days)
find /backups -mtime +30 -exec rm -rf {} \;
# Clean Docker unused data
docker system prune -a --volumes # CAREFUL: removes unused images/volumes
# Check disk usage
du -sh /backups/
du -sh /data/coolify/
du -sh /var/lib/docker/
Firewall Management
UFW (Uncomplicated Firewall)
# Check firewall status
ufw status
# List rules with numbers
ufw status numbered
# Allow port
ufw allow 22/tcp
# Delete rule
ufw delete 1 # by number
ufw delete allow 3306 # by rule
# Enable/disable firewall
ufw enable
ufw disable
SSL/TLS Certificates
Check Certificate Status
# Check Let's Encrypt cert for domain
openssl s_client -connect domain.collabrains.eu:443 -servername domain.collabrains.eu </dev/null 2>&1 | grep -E "subject=|notAfter"
# View certificate details
openssl x509 -in /data/coolify/proxy/acme.json -text -noout
# Check all domains
for domain in docs.collabrains.eu grafana.collabrains.eu auth.collabrains.eu; do
echo "=== $domain ==="
openssl s_client -connect $domain:443 -servername $domain </dev/null 2>&1 | grep "notAfter"
done
Useful Aliases
Add to /root/.bashrc for quick access:
alias ll='ls -lah'
alias dps='docker ps -a'
alias dlogs='docker logs'
alias dstats='docker stats'
alias dexec='docker exec -it'
# Quick service access
alias immich='cd /data/coolify/services/IMMICH_ID && docker compose'
alias paperless='cd /data/coolify/services/woq978nbzog6dmddhrmeujvk && docker compose'
alias n8n='cd /data/coolify/services/N8N_ID && docker compose'
# Source: source ~/.bashrc
Emergency Commands
Stop All Containers
docker stop $(docker ps -q)
Start All Containers
docker start $(docker ps -aq)
Force Remove Stuck Container
docker rm -f CONTAINER_NAME
Emergency Service Restart
systemctl restart docker
# All containers should auto-restart due to "unless-stopped" policy
Check Disk Space Emergency
# If disk is full (df shows 100%)
# 1. Identify largest directories
du -sh /data/* /var/lib/docker/* /backups/*
# 2. Clean backups
rm -rf /backups/old-date/
# 3. Clean unused Docker data
docker system prune -a --volumes
# 3. If still full, check Traefik acme.json
ls -lh /data/coolify/proxy/acme.json
Next Steps
See Troubleshooting for solutions to common problems, or Container Management for detailed guidance.