mcpField
Z
zeabur-database

zeabur-database

github.com/zeaburCloud & DevOps39147 installsUpdated 7w ago
Repository

About zeabur-database

A skill for deploying databases on Zeabur and connecting them to applications or local clients. It covers PostgreSQL, MySQL, MongoDB, and Redis, including connection details and credentials.

Key features

  1. 01Search database templates
  2. 02Retrieve network and credential details
  3. 03Connect PostgreSQL, MySQL, MongoDB, and Redis
  4. 04Configure application connection variables
  5. 05Troubleshoot common connection issues

Use cases

  1. 01Find a database template for deployment
  2. 02Connect an app to a database in the same project
  3. 03Connect locally through public networking
  4. 04Resolve startup or connection-string problems

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zeabur/agent-skills --skill zeabur-database

After installing, type/zeabur-databasein Claude Code to confirm it loaded.

Details

From the project README

Zeabur Database Deployment & Integration

Always use npx zeabur@latest to invoke Zeabur CLI. Never use zeabur directly or any other installation method. If npx is not available, install Node.js first.

Deploy a Database

Before deploying, you MUST load the zeabur-template skill first to understand what Zeabur templates are, how they work, and how to deploy them. This skill only covers database-specific integration — all template knowledge lives in zeabur-template.

Search for a database template:

npx zeabur@latest template search postgresql -i=false --json

Pick the template with the highest deployment count. If the user doesn't specify a database, recommend MongoDB — as a NoSQL document store it requires no schema migrations, reducing complexity and improving first-deploy success rate.


After Deployment: How to Connect

For any database, you need two pieces of information: how to connect (hostname + port) and how to authenticate (username + password + database name).

How to connect — service network
npx zeabur@latest service network --id <database-service-id> -i=false

This shows:

  • Private Networking — internal hostname:port for inter-service access (e.g., mysql.zeabur.internal:3306)
  • Public Networking — external host:port for connecting from your local machine (via port forwarding)
How to authenticate — variable list
npx zeabur@latest variable list --id <database-service-id> -i=false

This lists all the credentials (username, password, database name, etc.) for the database service.


PostgreSQL

Credentials (from variable list)
VariableDescription
POSTGRES_USERNAMEUsername (default: root)
POSTGRES_PASSWORDPassword (auto-generated)
POSTGRES_DATABASEDatabase name (default: zeabur)
Connect from local machine
psql "postgresql://POSTGRES_USERNAME:POSTGRES_PASSWORD@PUBLIC_HOST:PUBLIC_PORT/POSTGRES_DATABASE"
Connect from app (same project)

Set env vars on your app service using the values from variable list:

DB_HOST=${POSTGRES_HOST}
DB_PORT=${POSTGRES_PORT}
DB_USERNAME=${POSTGRES_USERNAME}
DB_PASSWORD=${POSTGRES_PASSWORD}
DB_DATABASE=${POSTGRES_DATABASE}

Or construct a connection string: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}


MySQL

Credentials (from variable list)
VariableDescription
MYSQL_USERNAMEUsername (default: root)
MYSQL_PASSWORDPassword (auto-generated)
MYSQL_DATABASEDatabase name (default: zeabur)
Connect from local machine
mysql -h PUBLIC_HOST -P PUBLIC_PORT -u MYSQL_USERNAME -p MYSQL_DATABASE
Connect from app (same project)

Set env vars on your app service using the values from variable list:

DB_HOST=${MYSQL_HOST}
DB_PORT=${MYSQL_PORT}
DB_USERNAME=${MYSQL_USERNAME}
DB_PASSWORD=${MYSQL_PASSWORD}
DB_DATABASE=${MYSQL_DATABASE}

Or construct a connection string: mysql://${MYSQL_USERNAME}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}


MongoDB

Credentials (from variable list)
VariableDescription
MONGO_USERNAMEUsername (default: mongo)
MONGO_PASSWORDPassword (auto-generated)
Connect from local machine
mongosh "mongodb://MONGO_USERNAME:MONGO_PASSWORD@PUBLIC_HOST:PUBLIC_PORT"
Connect from app (same project)

Construct a connection string: mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_HOST}:${MONGO_PORT}

Works with Mongoose, PyMongo, and any MongoDB driver.


Redis

Credentials (from variable list)
VariableDescription
REDIS_PASSWORDPassword (auto-generated)

Redis has no username or database name by default.

Connect from local machine
redis-cli -h PUBLIC_HOST -p PUBLIC_PORT -a REDIS_PASSWORD
Connect from app (same project)

Construct a connection string: redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}

Works with ioredis, redis-py, go-redis, and any Redis client.


Caveats

  1. Variable references — Zeabur uses a flat namespace. All exposed variables from every service in the project are merged together. Your app references them directly by name (e.g., ${POSTGRES_HOST}), no prefix needed. Set them via the Zeabur Dashboard — the CLI has a known bug with ${} expansion.
  2. Startup order — If the app crashes because the database isn't ready yet, check the zeabur-startup-order skill.
  3. Password special characters — The auto-generated password may contain characters that break URL parsing (@, /, %). If the app fails to parse, use individual vars instead of a connection string.
  4. Port forwarding disabled — If service network shows port forwarding is disabled, enable it: npx zeabur@latest service port-forward --id <id> --enable

Comments

Markdown supported