mcpField
R
rust-deployable-service

rust-deployable-service

github.com/lvtd-llcCloud & DevOps161 installsUpdated 7w ago
Repository

About rust-deployable-service

rust-deployable-service is a skill for moving Rust services from local development to repeatable container or cloud deployments. It covers configuration, reproducible builds, Docker images, and health checks.

Key features

  1. 01Inspect service and deployment inputs
  2. 02Separate build-time and runtime configuration
  3. 03Create multi-stage Docker builds
  4. 04Account for SQLx offline checks
  5. 05Add health and readiness checks

Use cases

  1. 01Preparing a Rust service for container deployment
  2. 02Managing deployment configuration and secrets
  3. 03Building with checked-in SQLx metadata
  4. 04Verifying a Docker image before delivery

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/lvtd-llc/skills --skill rust-deployable-service

After installing, type/rust-deployable-servicein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
references/
configuration.md
docker-rust.md
scripts/
docker-preflight.sh

Details

From the project README

Rust Deployable Service

Use this skill when a Rust service needs to move from local development to a repeatable container or cloud deployment. Keep runtime configuration explicit, builds reproducible, and health checks boring.

Core Workflow

  1. Inspect Cargo.toml, workspace layout, Dockerfile, .dockerignore, config files, migrations, .sqlx/, CI, and deployment docs.
  2. Identify the binary entrypoint and runtime dependencies: database, Redis, external APIs, TLS roots, static files, templates, migrations, and config.
  3. Separate build-time and runtime configuration. Never bake production secrets into images.
  4. Use hierarchical config with environment overrides for deployment-specific values.
  5. Use a multi-stage Docker build and copy only the runtime binary and needed assets into the final image.
  6. Account for SQLx query checking. Use SQLX_OFFLINE=true with checked-in .sqlx/ metadata or provide a build-time database intentionally.
  7. Add health and readiness checks that match real dependencies.
  8. Run the bundled Docker preflight or the repository's equivalent CI command.

Configuration Rules

Read references/configuration.md when adding config files, environment variables, or secret handling.

  • Keep local defaults convenient and production defaults conservative.
  • Validate config at startup before binding the server when possible.
  • Store secrets in environment variables or the deployment secret manager.
  • Avoid reading environment variables deep inside handlers or repositories.

Docker Rules

Read references/docker-rust.md before changing Docker builds.

  • Use dependency caching deliberately; avoid invalidating the whole build on every source edit when practical.
  • Use --locked for release builds if the repo commits Cargo.lock.
  • Include CA certificates when outbound HTTPS is required.
  • Copy migrations, templates, and static assets only if the binary needs them at runtime.
  • Run as a non-root user when the deployment platform supports it.

Verification

Run from the Rust project root when Docker is part of the delivery path:

path/to/rust-deployable-service/scripts/docker-preflight.sh

The script builds an image. It only runs a smoke command when RUST_DEPLOY_SMOKE_COMMAND is set, because services often need environment and infrastructure to start successfully.

Reference Files

  • references/configuration.md: typed config loading, overrides, validation, and secrets.
  • references/docker-rust.md: multi-stage builds, SQLx offline builds, runtime assets, and image checks.

Comments

Markdown supported