Connection check
verified live · 27h ago
dockhold
Deploy a GitHub repo to a live HTTPS URL from your AI tool; read logs, set variables, resize apps.
Tools
14
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
27h ago
Tools & capabilities
14 toolsRead from the running server on 27h ago.
deploy_app
name*repo_url*with_databasegithub_installation_id
Deploy a GitHub repository as a live web app on Dockhold. Call this when the user wants to put an app online, get a shareable HTTPS URL, or host a demo. Returns the new app id. Two… Deploy a GitHub repository as a live web app on Dockhold. Call this when the user wants to put an app online, get a shareable HTTPS URL, or host a demo. Returns the new app id. Two paths: a PUBLIC repo needs only repo_url; a PRIVATE repo needs repo_url plus github_installation_id (call list_github_repos first, each repo comes with the installation_id to pass here). Deploying a private repo turns on auto-deploy: future pushes to that repo redeploy the app automatically. The app builds and comes online automatically; poll get_app_status to watch it. This tool needs a GitHub repo URL: if the code only exists locally (no repo), it cannot be used here, and the user should run `npx dockhold login` then `npx dockhold deploy` in the project folder instead. Requires a token with the deploy scope.
deploy_group
services*
Deploy several connected services in one go (e.g. a frontend + an API). Call this when the user's project is split across multiple repos that must talk to each other; for a single… Deploy several connected services in one go (e.g. a frontend + an API). Call this when the user's project is split across multiple repos that must talk to each other; for a single repo use deploy_app. Each service is a public GitHub repo that gets its own URL. Wire them by setting an env var to the exact token ${services.<otherServiceName>.url} — Dockhold injects that service's live URL once it deploys. Give the backend its own database with "db":"enable" (DATABASE_URL is injected; a pure frontend doesn't need one). Builds run in parallel; poll get_app_status with each returned app_id.
get_app_logs
read-only
tailapp_id*
Get the most recent runtime logs for one app. Call this when an app is crashing, returning errors, or a deploy succeeded but the app misbehaves: the logs usually name the cause. Get the most recent runtime logs for one app. Call this when an app is crashing, returning errors, or a deploy succeeded but the app misbehaves: the logs usually name the cause.
get_app_status
read-only
app_id*
Get detailed status for one app: deploy status, URL, last deployed commit, and any error message. Call this to check whether a deploy has finished, to get an app's live URL, or to… Get detailed status for one app: deploy status, URL, last deployed commit, and any error message. Call this to check whether a deploy has finished, to get an app's live URL, or to see why an app is in error.
get_resource_usage
read-only
Show your account's compute, database-RAM, and storage pools: how much you've bought, how much is used, and how much is free, plus every app's current size. Call this before any re… Show your account's compute, database-RAM, and storage pools: how much you've bought, how much is used, and how much is free, plus every app's current size. Call this before any resize tool (the allowed sizes come from its steps fields), and to explain to the user why an app ran out of memory or a deploy was refused for capacity.
list_apps
read-only
List the apps in your Dockhold account, with each app's id, status, URL, and source repo. Call this first whenever the user asks about their apps, or when you need an app_id for an… List the apps in your Dockhold account, with each app's id, status, URL, and source repo. Call this first whenever the user asks about their apps, or when you need an app_id for any other tool.
list_github_repos
read-only
List the GitHub repositories you have connected to Dockhold, across every installation. Call this before deploy_app when the target repo is private, or when the user asks which rep… List the GitHub repositories you have connected to Dockhold, across every installation. Call this before deploy_app when the target repo is private, or when the user asks which repos they can deploy. Each repo comes with its installation_id: pass that (with the repo's clone URL) to deploy_app to deploy a PRIVATE repository. Public repos don't need it.
redeploy_app
app_id*
Restart an existing app (rolling restart with zero downtime). Call this after changing configuration, or to recover an app that is stuck or misbehaving. It reruns the current build… Restart an existing app (rolling restart with zero downtime). Call this after changing configuration, or to recover an app that is stuck or misbehaving. It reruns the current build; it does not pull new code. If this app has storage, it is stopped and started again instead, so it is unreachable for a few seconds.
remove_app_storage
can modify data
app_id*confirm*
Remove an app's storage and erase every file on it. This destroys data permanently: there is no undo and no backup. Ask the user to confirm in their own words first, then pass conf… Remove an app's storage and erase every file on it. This destroys data permanently: there is no undo and no backup. Ask the user to confirm in their own words first, then pass confirm true. Call it when the user asks for the storage to go, or when they want something storage rules out: running more than one copy of the app, or a scheduled task. Afterwards the app is back to scratch space, where anything it writes is lost on the next restart.
resize_app
app_id*memory_mb*
Change how much memory one app gets. Call this when an app is running out of memory (OOM) or the user asks to make an app bigger or smaller. memory_mb must be one of the sizes get_… Change how much memory one app gets. Call this when an app is running out of memory (OOM) or the user asks to make an app bigger or smaller. memory_mb must be one of the sizes get_resource_usage reports under compute.steps_mb, and the new size has to fit your available compute pool (call get_resource_usage first). Applied with a zero-downtime rolling update. If this app has storage, it is stopped and started again instead, so it is unreachable for a few seconds.
resize_database
app_id*db_ram_mb*
Change how much memory an app's managed database gets. Call this when the database is slow or out of memory. db_ram_mb must be one of the sizes get_resource_usage reports under db_… Change how much memory an app's managed database gets. Call this when the database is slow or out of memory. db_ram_mb must be one of the sizes get_resource_usage reports under db_ram.steps_mb and fit your database-RAM pool. WARNING: the database restarts briefly to apply the new size, so the app loses its database connection for a few seconds. Only works if the app has a managed database.
resize_database_storage
app_id*storage_gb*
Grow the disk of an app's managed database. Call this when the database is running out of disk space. GROW-ONLY: you can increase storage but never shrink it. storage_gb must be on… Grow the disk of an app's managed database. Call this when the database is running out of disk space. GROW-ONLY: you can increase storage but never shrink it. storage_gb must be one of the sizes get_resource_usage reports under storage.steps_gb and fit your storage pool. Applied online with no database restart. Only works if the app has a managed database.
set_app_storage
app_id*size_gb*
Give an app storage that survives restarts and deploys, or grow the storage it already has. Call this when the app has to keep files: a SQLite database file, uploads, or anything t… Give an app storage that survives restarts and deploys, or grow the storage it already has. Call this when the app has to keep files: a SQLite database file, uploads, or anything the user expects to still be there tomorrow. The app reads and writes the folder at the path in the DATA_DIR environment variable, which Dockhold sets; anything written outside DATA_DIR is scratch space and is lost on the next restart. size_gb must be one of the sizes get_resource_usage reports under volume.steps_gb and has to fit your storage pool, which is the same pool a managed database draws on, so call get_resource_usage first. Storage can grow but never shrink. Three things to tell the user before calling this: an app with storage runs as a single copy, it cannot have scheduled tasks, and from now on each deploy stops the running version before the new one starts, so the app is unreachable for a few seconds. Write the app to save its files when it receives SIGTERM.
set_app_variable
key*value*app_id*