Operations

Docker Compose management, health checks, and backups for platform admins.

Docker Services

ContainerImagePort
bizfy-postgrespostgres:16-alpine5432
bizfy-mongodbmongo:727017
bizfy-redisredis:7-alpine6379
bizfy-qdrantqdrant:v1.12.56333
bizfy-neo4jneo4j:5-community7687
bizfy-admin-uicustom build3000 (local)

Common Commands

cd /srv/databases

docker compose ps              # status
docker compose up -d           # start all
docker compose up -d redis     # start one
docker compose logs -f redis   # logs
docker compose restart postgres
docker compose build admin-ui  # rebuild portal

Health Checks

docker compose ps

docker exec bizfy-postgres pg_isready -U postgres -d bizfy
docker exec bizfy-redis redis-cli -a "$REDIS_PASS" ping
curl -s -H "api-key: $KEY" http://72.60.97.82:6333/collections

Provisioning App Access

PostgreSQL

docker exec -it bizfy-postgres psql -U postgres
CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH PASSWORD 'strong-password';
GRANT ALL ON DATABASE myapp_db TO myapp_user;

MongoDB

docker exec -it bizfy-mongodb mongosh -u admin -p
use myapp_db
db.createUser({ user: "myapp_user", pwd: "...", roles: [{ role: "readWrite", db: "myapp_db" }] })

Redis ACL User

docker exec -it bizfy-redis redis-cli -a "$REDIS_PASS"
ACL SETUSER myapp_user on >password ~myapp:* +@all -@dangerous

Neo4j

docker exec -it bizfy-neo4j cypher-shell -u neo4j -p
CREATE USER myapp_user SET PASSWORD '...' CHANGE NOT REQUIRED;
GRANT ROLE editor TO myapp_user;

Backups

# PostgreSQL
docker exec bizfy-postgres pg_dumpall -U postgres | gzip > backup.sql.gz

# MongoDB
docker exec bizfy-mongodb mongodump --archive | gzip > backup.archive.gz

# Redis
docker exec bizfy-redis redis-cli -a "$PASS" BGSAVE
docker cp bizfy-redis:/data/dump.rdb ./redis-backup.rdb
Copy backups off-server regularly. Never run docker compose down -v unless you intend to wipe all data.