Skip to content

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.