coolify
Plugin for Coolify, an open-source platform for deploying apps, databases and services on your own servers. Adds Laravel skills for Horizon, Fortify authentication and coding conventions.
vibe-ship is an open-source Claude Code skill that turns any codebase into a deployable, hardened application.
Claude Code
> /plugin marketplace add sudais-khalid/vibe-ship> /plugin install vibe-ship@vibe-ship
Codex
$ npx skills add sudais-khalid/vibe-ship -a codex
Cursor
$ npx skills add sudais-khalid/vibe-ship -a cursor
Gemini CLI
$ npx skills add sudais-khalid/vibe-ship -a gemini-cli
GitHub Copilot
$ copilot plugin marketplace add sudais-khalid/vibe-ship$ copilot plugin install vibe-ship@vibe-ship
OpenCode
$ npx skills add sudais-khalid/vibe-ship -a opencode
Windsurf
$ npx skills add sudais-khalid/vibe-ship -a windsurf
vibe-ship is an open-source Claude Code skill that turns any codebase into a deployable, hardened application. It detects your stack from the repo, writes the Dockerfile, .dockerignore, compose.yaml, .env.example, GitHub Actions or GitLab CI pipeline, and platform config (Kubernetes, Fly.io, Render, Railway, Cloud Run, AWS, Azure, VPS). It then checks everything with a 93-rule static auditor and real docker build runs before handing over.
You bring the vibe. vibe-ship brings the infrastructure, and proves it works.
Built and maintained by Sudais Khalid.
/plugin marketplace add sudais-khalid/vibe-ship
/plugin install vibe-ship@vibe-ship
Then, in any project, just say:
"vibe ship this" · "dockerize this app" · "make this production-ready" · "deploy this to Fly.io" · "audit my Dockerfile"
Other install options are under Install.
| File | What's in it |
|---|---|
Dockerfile (per service) | Multi-stage, pinned base image, BuildKit cache mounts, non-root user, exec-form CMD with an init where needed, and a HEALTHCHECK whose tool actually exists in the final image |
.dockerignore | Stack-specific, always excludes .git and .env* |
compose.yaml | App + workers + detected Postgres/MySQL/Mongo/Redis/RabbitMQ/Kafka/Elasticsearch, readiness-gated depends_on, one-off migration job, named volumes at the correct data dirs, resource limits, log rotation, no database ports exposed |
.env.example | Every environment variable your code actually reads, found by scanning the source |
.github/workflows/ci-cd.yml | test → build → Trivy scan (SARIF) → push on main/tags only → SBOM + provenance → keyless cosign signing → optional deploy. Every action pinned to a commit SHA, least-privilege permissions |
.github/dependabot.yml | Keeps actions, base images, compose images and dependencies current |
| Platform config | fly.toml, render.yaml, railway.json, heroku.yml, .do/app.yaml, Kamal config/deploy.yml, Caddyfile, ECS task definition, Kubernetes manifests, generated only for the target you choose |
DEPLOYMENT.md | How to run it, how CI/CD works, exact secrets to create, and a checklist of what's left |
Detection is deterministic (scripts/detect.py reads manifests and lockfiles, it doesn't guess), and every stack has a tested template.
| Language / runtime | Frameworks detected | Package managers |
|---|---|---|
| JavaScript / TypeScript | Next.js (standalone), Nuxt, SvelteKit, Remix / React Router 7, Astro, SolidStart, TanStack Start, NestJS, Express, Fastify, Hono, Koa, Hapi, AdonisJS, Strapi, Medusa, Redwood | npm, pnpm, Yarn classic & Berry, Bun, Deno |
| Python | FastAPI, Django, Flask, Starlette, Litestar, Quart, Sanic, aiohttp, Falcon, Streamlit, Gradio, Dash, Chainlit + Celery / RQ / Dramatiq workers | uv, Poetry, PDM, Pipenv, pip |
| Go | net/http, Gin, Echo, Fiber, Chi, Gorilla, Huma, Connect, gRPC | Go modules |
| Rust | Axum, Actix Web, Rocket, Warp, Poem, Salvo, Loco, Tonic | Cargo |
| Java / Kotlin / Scala / Clojure | Spring Boot (layered jars), Quarkus, Micronaut, Ktor, Javalin, Vert.x, Dropwizard, Helidon, Play | Maven, Gradle, sbt, Leiningen |
| .NET | ASP.NET Core, Worker Service, F# | NuGet |
| Ruby | Rails 7/8 (Thruster, Solid Queue), Sinatra, Hanami, Roda + Sidekiq / GoodJob | Bundler |
| PHP | Laravel (+ Octane, Horizon), Symfony, Slim, CakePHP, CodeIgniter, Laminas, Drupal, WordPress, served by FrankenPHP or nginx + php-fpm | Composer |
| Elixir / Erlang / Gleam | Phoenix (mix releases), Plug, rebar3 | Mix, rebar3 |
| Static / SPA | Vite, React, Vue, Angular, Astro, Docusaurus, VitePress, Gatsby, Eleventy, Hugo, Jekyll, MkDocs, Flutter web | any |
| Others | Swift (Vapor, Hummingbird), Dart (Shelf, Dart Frog), Haskell, Crystal, Zig, C/C++ (CMake, Meson) | native |
Monorepos: Turborepo, Nx, pnpm/Yarn/npm workspaces, plus any frontend/ + backend/ layout, with one image per deployable service.
| Target | What vibe-ship writes |
|---|---|
| Any VPS (Hetzner, DigitalOcean, Linode, EC2...) | Compose + Caddy automatic HTTPS (or Traefik), SSH deploy job with docker compose up --wait |
| Kamal | config/deploy.yml with accessories |
| Fly.io / Render / Railway / Heroku / DigitalOcean App Platform | Native config with health checks and release/migration commands |
| Google Cloud Run | OIDC (Workload Identity) deploy job, no JSON keys |
| AWS App Runner / ECS Fargate | Task definition + OIDC role deploy |
| Azure Container Apps | OIDC deploy job |
| Kubernetes (EKS, GKE, AKS, DOKS, k3s) | Hardened Deployment, Service, PDB, NetworkPolicy, HPA, Ingress/Gateway, Kustomize overlays, migration Job |
scripts/audit.py is a standalone static analyzer for deployment configuration. It runs anywhere Python 3.8+ runs, needs no Docker daemon or network, and is useful on its own, with or without Claude.
python3 scripts/audit.py --path . # scored report
python3 scripts/audit.py --path . --fail-on high # CI gate (exit 1)
python3 scripts/audit.py --path . --format sarif # GitHub code scanning
python3 scripts/audit.py --path . --format markdown # PR comment / docs
python3 scripts/audit.py --list-rules # full catalog
====================================================================
VIBE-SHIP AUDIT v2.0.0 score 0/100 grade F
====================================================================
[CRITICAL] VS-G010 .github/workflows/ci.yml:12
Issue: pull_request_target checks out untrusted PR code
[CRITICAL] VS-D011 Dockerfile:1
Issue: No USER in final stage - container runs as root
[HIGH] VS-D020 Dockerfile:9
Issue: HEALTHCHECK uses a tool that does not exist in the final image: 'curl' is not installed in python:3.14-slim
[HIGH] VS-C061 compose.yaml:14
Issue: Postgres 18+ volume mounted at the old /var/lib/postgresql/data path
What it checks:
USER through multi-stage chains), secrets in ENV/ARG/COPY, curl | sh, a HEALTHCHECK that can't run in the final image, shell-form CMD (no SIGTERM), npm start as PID 1, dev servers in production, lockfile-ignoring installs, layer-cache busting, apt/apk/pip hygiene..env / .git / node_modules leaks.actions-rs, set-output), pull_request_target pwn requests, script injection via ${{ github.event.* }}, missing or excessive permissions, literal secrets, pushes from PRs, missing tests before deploy, no scanning, no SBOM/provenance.:latest job images, literal credentials.:latest images, missing probes and resources, privileged pods, root users, privilege escalation, writable root FS, capabilities, host namespaces, hostPath, literal secrets, committed Secret data..env not gitignored or already tracked by git, plus credential patterns (AWS, GitHub, Stripe, Slack, OpenAI/Anthropic keys, private keys, database URLs with passwords).Suppress a rule where it genuinely doesn't apply, with a reason:
# vibe-ship: ignore VS-D022 Kubernetes probes cover health for this distroless image
jobs:
deploy-config-audit:
runs-on: ubuntu-latest
permissions: { contents: read, security-events: write }
steps:
- uses: actions/checkout@v7
- uses: sudais-khalid/vibe-ship@v2
with:
fail-on: high # critical | high | medium | low | none
Findings appear in the repository's Security → Code scanning tab and in the job summary. Outputs: score, grade, sarif-file.
detect.py ──> stack templates ──> files ──> pin_actions.py ──> audit.py ──> docker build + run + health check
(evidence) (references/) (SHA-pin CI) (93 rules) (when Docker is available)
package.json, lockfiles, pyproject.toml, go.mod, Cargo.toml, pom.xml, *.csproj, Gemfile, composer.json, mix.exs and more. That gives it the framework, the runtime version you declared, port, entrypoint, health route, backing services from real dependency names, and the env vars your code reads.references/ to what was detected. It never overwrites existing deployment files without asking, and it never changes your app code without asking.The templates are extracted verbatim from references/, built, run, health-checked, and stopped. Docker 29.9, 2026-10-22:
| Template | Build (cold) | Image | Responds | Non-root UID | HEALTHCHECK | docker stop |
|---|---|---|---|---|---|---|
| Node 24 (alpine + tini) | 70 s | 243 MB | ✅ | 1000 | healthy | 0.4 s, exit 0 |
| Python 3.14 (slim + venv) | 164 s | 219 MB | ✅ | 10001 | healthy | 0.7 s, exit 0 |
| Go 1.27 (alpine runtime) | 45 s | 24 MB | ✅ | 10001 | healthy | 0.5 s |
| Rust 1.99 (distroless + tini) | 12 s | 44 MB | ✅ | 65532 | orchestrator probes | 0.7 s |
| Static (nginx-unprivileged) | 9 s | 81 MB | ✅ | 101 | healthy | 0.5 s, exit 0 |
| Compose: app + Postgres 18 + Redis 8 | n/a | n/a | ✅ | n/a | all healthy in 56 s | clean teardown |
Verification also caught three bugs a static review would miss, and all three are fixed:
node_modules COPY failing on zero-dependency appsPGDATA, now audit rule VS-C061| Typical deployment skill / prompt | Dockerfile linter (e.g. hadolint) | vibe-ship | |
|---|---|---|---|
| Writes working files | Sometimes | No | Yes, the full set |
| Stack detection | The model guesses | n/a | Deterministic script |
| Stacks with tested templates | A few | n/a | 30+ frameworks, 12 language families |
| Compose, CI, K8s, platform configs | Partial | Dockerfile only | All, wired together |
| Static analysis | No | Dockerfile rules | 93 rules: Dockerfile, Compose, Actions, GitLab, K8s, secrets |
Plugin for Coolify, an open-source platform for deploying apps, databases and services on your own servers. Adds Laravel skills for Horizon, Fortify authentication and coding conventions.
Lets you deploy, manage, inspect and troubleshoot Vercel projects from the command line, covering deployments, build failures, environment variables and domains without leaving your terminal.
Skill for launching cloud VMs, Kubernetes pods, or Slurm jobs for GPU, TPU, or CPU workloads. Covers training and fine-tuning models on cloud GPUs and deploying inference servers with autoscaling.
PinMe is a zero-config deployment CLI focused on one-command creation and deployment for full-stack projects. It lets you quickly set up and launch a complete project with an integrated frontend, Worker backend, and database, without tedious configuration.
vibe-ship is an open-source Claude Code skill that turns any codebase into a deployable, hardened application. Install it with the command on its page. It includes vibe-ship. Its skills do not fire on their own yet. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it