CtrlK
BlogDocsLog inGet started
Tessl Logo

n8n-self-hosting

Deploy a production self-hosted n8n end-to-end to a fresh Linux VM over SSH, using Docker Compose behind a Caddy reverse proxy with automatic HTTPS. Use whenever the user wants to self-host, install, set up, provision, or deploy n8n on their own server/VPS/box (Hetzner, DigitalOcean, AWS EC2, bare metal, etc.) — in either single/regular mode or queue mode with workers — or to update, back up, restore, or harden such an instance. This is for SELF-HOSTED n8n (Docker), not n8n Cloud and not building workflows. The skill makes the agent ask single-vs-queue first, collect the domain/SSH/timezone inputs, generate fresh secrets on the box, and bring the stack up with TLS. Trigger on "deploy n8n", "self-host n8n", "install n8n on my server", "n8n docker compose", "n8n queue mode / workers / scaling", "n8n reverse proxy / SSL", or "back up / update my n8n".

72

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Medium

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

Quality

Content

77%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, actionable deploy runbook with excellent workflow sequencing and validation, undermined by a progressive-disclosure gap: the four reference .md files it depends on for mode-specific and security depth are not present in the bundle. Fixing the missing references would lift the weakest dimension.

Suggestions

Add the missing reference files (SINGLE_MODE.md, QUEUE_MODE.md, SECURITY.md, DAY2.md) to the bundle, or inline the critical pieces they promise (especially the openssl secret-generation commands from SECURITY.md) so the skill is self-sufficient.

Trim narrative commentary such as "the cheapest failure is the one you catch here" and "A misstep here leaks client credentials. Be diligent:" to tighten token efficiency without losing the operational signal.

Move at least the core secret-generation openssl commands inline in step 4 (currently only promised via SECURITY.md) to close the main actionability gap.

DimensionReasoningScore

Conciseness

Largely lean and operational with copy-paste commands, but carries narrative padding ("the cheapest failure is the one you catch here", "A misstep here leaks client credentials. Be diligent:") that could be trimmed without losing signal.

4 / 5

Actionability

Provides concrete executable commands throughout (curl ifconfig.me, dig +short, docker compose up -d, chmod 600, grep REPLACE_WITH_), with a minor gap: the openssl secret-generation commands are deferred to SECURITY.md rather than inlined.

4 / 5

Workflow Clarity

An explicitly numbered preflight → install → lay-down → secrets → firewall → launch → verify → hand-off sequence with hard validation checkpoints (DNS mismatch = stop, grep REPLACE_WITH must be empty, healthz/cert/public-reachability checks with retry) and feedback loops for a destructive production deploy.

5 / 5

Progressive Disclosure

Structure and signaling are good (dedicated Reference files section, one-level-deep pointers, working assets/ links), but four of the five named reference files (SINGLE_MODE.md, QUEUE_MODE.md, SECURITY.md, DAY2.md) are absent from the bundle, breaking navigation for the missing depth.

3 / 5

Total

16

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete capabilities, comprehensive natural trigger phrases, explicit what-and-when, and clear boundary setting against conflicting skills. No improvements needed.

DimensionReasoningScore

Specificity

Lists multiple concrete actions (deploy, install, set up, provision, update, back up, restore, harden) against specific infrastructure (Docker Compose, Caddy reverse proxy, automatic HTTPS, SSH to a fresh Linux VM), matching the comprehensive-coverage anchor.

5 / 5

Completeness

Clearly states both what ("Deploy a production self-hosted n8n end-to-end...") and when ("Use whenever the user wants to self-host, install, set up, provision, or deploy n8n...") with concrete trigger phrases, satisfying the top anchor.

5 / 5

Trigger Term Quality

Explicit trigger phrases map natural user language comprehensively — "deploy n8n", "self-host n8n", "install n8n on my server", "n8n docker compose", "n8n queue mode / workers / scaling", "n8n reverse proxy / SSL", "back up / update my n8n" — including synonyms and variants.

5 / 5

Distinctiveness Conflict Risk

Carves a clear niche (self-hosted n8n on Docker) and explicitly excludes adjacent territories ("not n8n Cloud and not building workflows"), giving distinct triggers with minimal overlap risk.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
czlonkowski/n8n-mcp
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.