caprover-management_skill

This skill helps you deploy, configure, and diagnose CapRover apps by using its API to manage Docker images, ports, volumes, and logs.
  • Python

2.6k

GitHub Stars

2

Bundled Files

2 months ago

Catalog Refreshed

3 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill openclaw/skills --skill caprover-management

  • _meta.json292 B
  • SKILL.md6.0 KB

Overview

This skill manages CapRover PaaS instances via the CapRover REST API. It lets you create and update apps, deploy from Docker images or host-built Dockerfiles, configure ports, volumes, and environment variables, and read build/runtime logs. Use it to automate deployments, configure Docker Swarm overrides, and diagnose runtime issues on CapRover hosts.

How this skill works

The skill authenticates to a CapRover captain and calls its API endpoints to perform lifecycle actions: register apps, update app definitions, push source archives for on-host builds, trigger redeploys, and fetch logs. It supports sending multipart uploads for building images from a tarred Dockerfile, applying serviceUpdateOverride JSON for advanced Swarm settings, and reading build and runtime log streams. It also includes patterns for handling self-signed certificates and architecture-specific workflows (ARM64).

When to use it

  • Deploy or redeploy an app from a Docker image or a Dockerfile built on the CapRover host
  • Add persistent volumes, mount host-named Docker volumes, or configure non-HTTP TCP ports (game servers, databases)
  • Set advanced Docker Swarm options not exposed in the UI using serviceUpdateOverride
  • Diagnose container crashes, missing logs, port binding issues, or architecture mismatches on CapRover hosts
  • Automate multi-app setup and environment variable management via the API

Best practices

  • Always authenticate and reuse the x-captain-auth token for API calls; handle self-signed certs on private hosts
  • Build images on the CapRover host for ARM64 machines instead of pushing amd64 images
  • Set ports at app creation where possible to avoid a known port-update 500 error; use serviceUpdateOverride as a reliable alternative
  • Keep serviceUpdateOverride content explicit; setting it to an empty string clears all overrides including mounts
  • Stream and inspect both build and runtime logs to differentiate build failures from runtime crashes

Example use cases

  • Register a new app and give it a persistent volume for stateful services
  • Upload a .tar.gz containing captain-definition and Dockerfile to build a native ARM64 image on the host
  • Expose a TCP game server by configuring hostPort→containerPort and verifying the app binds to 0.0.0.0
  • Apply serviceUpdateOverride to attach named Docker volumes, set resource limits, or adjust DNS options for a service
  • Fetch build logs to debug Dockerfile failures, then fetch runtime logs to diagnose crashes or entrypoint issues

FAQ

Often this is an architecture mismatch (amd64 image on ARM64 host). Build the image on the CapRover host or provide an appropriate multi-arch image. Also ensure the app writes to stdout/stderr.

How do I persist a volume that the API shows as empty?

Check serviceUpdateOverride — mounts are sometimes applied via Swarm overrides and not reflected in the simple volumes array. Don't clear overrides unless you intend to remove mounts.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
caprover-management skill by openclaw/skills | VeilStrat