google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
julien-infra-hostinger-database
Manage shared database instances on Hostinger VPS srv759970 - PostgreSQL, Redis, MongoDB operations. Use for database connections, backups, user management, performance checks, or troubleshooting database issues.
Full skill instructions
Manage shared database instances (PostgreSQL, Redis, MongoDB) on srv759970.
The server runs shared database instances used by multiple applications.
| Database | Port | Container | Status | Used By |
|---|---|---|---|---|
| PostgreSQL | 5432 | postgres-shared | ✅ Running | WordPress sites, apps |
| Redis | 6379 | redis-shared | ✅ Running | Caching, queues |
| MongoDB | 27017 | mongodb-shared | ✅ Running | Document storage |
Invoke automatically when:
From server:
# Connect to PostgreSQL
ssh srv759970 'docker exec -it postgres-shared psql -U postgres'
# Connect to specific database
ssh srv759970 'docker exec -it postgres-shared psql -U postgres -d mydb'
From application container:
Host: postgres-shared
Port: 5432
User: postgres
Password: [set in environment]
Connection string:
postgresql://username:password@postgres-shared:5432/database_name
ssh srv759970 << 'EOF'
docker exec -it postgres-shared psql -U postgres -c "\l"
EOF
ssh srv759970 << 'EOF'
docker exec -it postgres-shared psql -U postgres << PSQL
CREATE DATABASE mydb;
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
PSQL
EOF
# Backup single database
ssh srv759970 'docker exec postgres-shared pg_dump -U postgres mydb > /tmp/mydb_backup.sql'
# Download backup
scp srv759970:/tmp/mydb_backup.sql ./mydb_backup_$(date +%Y%m%d).sql
# Backup all databases
ssh srv759970 'docker exec postgres-shared pg_dumpall -U postgres > /tmp/all_dbs_backup.sql'
# Upload backup
scp ./mydb_backup.sql srv759970:/tmp/
# Restore
ssh srv759970 'docker exec -i postgres-shared psql -U postgres mydb < /tmp/mydb_backup.sql'
ssh srv759970 << 'EOF'
docker exec -it postgres-shared psql -U postgres -c "
SELECT
datname AS database,
pg_size_pretty(pg_database_size(datname)) AS size
FROM pg_database
ORDER BY pg_database_size(datname) DESC;
"
EOF
# List users
ssh srv759970 'docker exec -it postgres-shared psql -U postgres -c "\du"'
# Create user
ssh srv759970 << 'EOF'
docker exec -it postgres-shared psql -U postgres -c "
CREATE USER newuser WITH PASSWORD 'password123';
GRANT ALL PRIVILEGES ON DATABASE mydb TO newuser;
"
EOF
# Change password
ssh srv759970 'docker exec -it postgres-shared psql -U postgres -c "ALTER USER myuser PASSWORD '\''newpassword'\'';"'
# Drop user
ssh srv759970 'docker exec -it postgres-shared psql -U postgres -c "DROP USER username;"'
# Active connections
ssh srv759970 << 'EOF'
docker exec -it postgres-shared psql -U postgres -c "
SELECT count(*) as connections, datname
FROM pg_stat_activity
GROUP BY datname;
"
EOF
# Long-running queries
ssh srv759970 << 'EOF'
docker exec -it postgres-shared psql -U postgres -c "
SELECT pid, now() - query_start as duration, query
FROM pg_stat_activity
WHERE state = 'active' AND now() - query_start > interval '5 seconds'
ORDER BY duration DESC;
"
EOF
# Kill query
ssh srv759970 'docker exec -it postgres-shared psql -U postgres -c "SELECT pg_terminate_backend(PID);"'
From server:
# Connect to Redis CLI
ssh srv759970 'docker exec -it redis-shared redis-cli'
From application:
Host: redis-shared
Port: 6379
Password: [if configured]
Connection string:
redis://redis-shared:6379
# Ping
ssh srv759970 'docker exec redis-shared redis-cli ping'
# Get info
ssh srv759970 'docker exec redis-shared redis-cli info'
# Memory usage
ssh srv759970 'docker exec redis-shared redis-cli info memory'
# Connected clients
ssh srv759970 'docker exec redis-shared redis-cli info clients'
# List all keys (⚠️ use with caution in production)
ssh srv759970 'docker exec redis-shared redis-cli keys "*"'
# Count keys
ssh srv759970 'docker exec redis-shared redis-cli dbsize'
# Get key value
ssh srv759970 'docker exec redis-shared redis-cli get mykey'
# Set key value
ssh srv759970 'docker exec redis-shared redis-cli set mykey "value"'
# Delete key
ssh srv759970 'docker exec redis-shared redis-cli del mykey'
# Check key TTL
ssh srv759970 'docker exec redis-shared redis-cli ttl mykey'
Redis supports multiple databases (0-15 by default):
# Select database
ssh srv759970 'docker exec redis-shared redis-cli -n 0'
# List keys in specific database
ssh srv759970 'docker exec redis-shared redis-cli -n 1 keys "*"'
Database usage on srv759970:
# Flush current database
ssh srv759970 'docker exec redis-shared redis-cli flushdb'
# Flush ALL databases (⚠️ DANGER)
ssh srv759970 'docker exec redis-shared redis-cli flushall'
# Real-time monitoring
ssh srv759970 'docker exec redis-shared redis-cli monitor'
# Slow log
ssh srv759970 'docker exec redis-shared redis-cli slowlog get 10'
# Trigger save
ssh srv759970 'docker exec redis-shared redis-cli bgsave'
# Check save status
ssh srv759970 'docker exec redis-shared redis-cli lastsave'
# Backup RDB file
ssh srv759970 'docker cp redis-shared:/data/dump.rdb /tmp/redis_backup_$(date +%Y%m%d).rdb'
From server:
# Connect to MongoDB shell
ssh srv759970 'docker exec -it mongodb-shared mongosh'
# Connect to specific database
ssh srv759970 'docker exec -it mongodb-shared mongosh mydb'
From application:
Host: mongodb-shared
Port: 27017
Connection string:
mongodb://mongodb-shared:27017/database_name
ssh srv759970 << 'EOF'
docker exec mongodb-shared mongosh --eval "show dbs"
EOF
ssh srv759970 << 'EOF'
docker exec mongodb-shared mongosh << MONGO
use mydb
db.createCollection("mycollection")
db.mycollection.insertOne({name: "test", created: new Date()})
MONGO
EOF
# Backup single database
ssh srv759970 'docker exec mongodb-shared mongodump --db=mydb --out=/tmp/mongo_backup'
# Backup all databases
ssh srv759970 'docker exec mongodb-shared mongodump --out=/tmp/mongo_backup_all'
# Download backup
ssh srv759970 'cd /tmp && tar -czf mongo_backup.tar.gz mongo_backup'
scp srv759970:/tmp/mongo_backup.tar.gz ./mongo_backup_$(date +%Y%m%d).tar.gz
# Upload backup
scp ./mongo_backup.tar.gz srv759970:/tmp/
# Extract and restore
ssh srv759970 << 'EOF'
cd /tmp
tar -xzf mongo_backup.tar.gz
docker exec mongodb-shared mongorestore --db=mydb /tmp/mongo_backup/mydb
EOF
# Database stats
ssh srv759970 << 'EOF'
docker exec mongodb-shared mongosh mydb --eval "db.stats()"
EOF
# Collection stats
ssh srv759970 << 'EOF'
docker exec mongodb-shared mongosh mydb --eval "db.mycollection.stats()"
EOF
# Create user
ssh srv759970 << 'EOF'
docker exec mongodb-shared mongosh admin --eval '
db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [{role: "readWrite", db: "mydb"}]
})'
EOF
# List users
ssh srv759970 'docker exec mongodb-shared mongosh admin --eval "db.getUsers()"'
# All database containers
ssh srv759970 'docker ps --filter name=postgres-shared --filter name=redis-shared --filter name=mongodb-shared'
# Resource usage
ssh srv759970 'docker stats --no-stream postgres-shared redis-shared mongodb-shared'
# PostgreSQL logs
ssh srv759970 'docker logs postgres-shared --tail 50'
# Redis logs
ssh srv759970 'docker logs redis-shared --tail 50'
# MongoDB logs
ssh srv759970 'docker logs mongodb-shared --tail 50'
# Follow logs in real-time
ssh srv759970 'docker logs -f postgres-shared'
# Restart specific database
ssh srv759970 'docker restart postgres-shared'
# Restart all databases (⚠️ affects all apps)
ssh srv759970 'docker restart postgres-shared redis-shared mongodb-shared'
Symptoms: Applications can't connect to database
Checks:
# 1. Is container running?
ssh srv759970 'docker ps | grep -E "postgres|redis|mongo"'
# 2. Is port exposed?
ssh srv759970 'docker port postgres-shared'
# 3. Can we connect from server?
ssh srv759970 'docker exec postgres-shared pg_isready'
# 4. Check network
ssh srv759970 'docker network inspect bridge'
Solutions:
docker restart postgres-sharedPostgreSQL:
# Check for locks
ssh srv759970 << 'EOF'
docker exec postgres-shared psql -U postgres -c "
SELECT * FROM pg_locks pl
LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid
WHERE NOT granted;
"
EOF
# Kill blocking query
ssh srv759970 'docker exec postgres-shared psql -U postgres -c "SELECT pg_terminate_backend(PID);"'
Redis:
# Check slow queries
ssh srv759970 'docker exec redis-shared redis-cli slowlog get 10'
# Memory issues
ssh srv759970 'docker exec redis-shared redis-cli info memory'
# Check database sizes
ssh srv759970 'docker exec postgres-shared du -sh /var/lib/postgresql/data'
ssh srv759970 'docker exec redis-shared du -sh /data'
ssh srv759970 'docker exec mongodb-shared du -sh /data/db'
# PostgreSQL vacuum (reclaim space)
ssh srv759970 'docker exec postgres-shared psql -U postgres -d mydb -c "VACUUM FULL;"'
PostgreSQL:
# Check database integrity
ssh srv759970 'docker exec postgres-shared pg_dump -U postgres mydb > /dev/null'
# Restore from backup if corrupted
# See backup/restore sections above
Recommended backup schedule:
/opt/backups/
├── postgres/
│ ├── daily/
│ └── weekly/
├── mongodb/
│ └── weekly/
└── redis/
└── snapshots/
See scripts/backup-databases.sh for automated backup script.
PostgreSQL:
Redis:
MongoDB:
# PostgreSQL
ssh srv759970 'docker exec -it postgres-shared psql -U postgres'
ssh srv759970 'docker exec postgres-shared pg_dump -U postgres mydb > backup.sql'
# Redis
ssh srv759970 'docker exec redis-shared redis-cli ping'
ssh srv759970 'docker exec redis-shared redis-cli dbsize'
# MongoDB
ssh srv759970 'docker exec -it mongodb-shared mongosh'
ssh srv759970 'docker exec mongodb-shared mongodump --out=/tmp/backup'
# Container management
ssh srv759970 'docker restart postgres-shared'
ssh srv759970 'docker logs postgres-shared --tail 50'
ssh srv759970 'docker stats --no-stream postgres-shared'
docs/infrastructure/databases.md for detailed configProject scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.