deploy-vps
Skill0 starsChanged 4 months agoMITView on GitHub
Use when deploying to a VPS via GitHub Actions and Docker.
- Pipes a download into a shell
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- takimdigital/saas-pipelinetheir own version, first seen Sep 11, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- takimdigital/saas-pipeline★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- branch-safelySkill
- deployment-decisionsSkill
- deploySkill
- deploy-vercelSkill
- documentationSkill
- e2e-testingSkill
- feature-testingSkill
- monitoringSkill
- orchestrateSkill
- quality-reviewSkill
- requirements-gatheringSkill
- solution-designSkill
- task-breakdownSkill
- ui-uxSkill
- unit-testingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 7 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Ask: Do you have Docker installed on your server?
- Very specific: line 22
Run on the VPS: docker --version
- Distinctive: line 24
If not installed, guide them:
- Very specific: line 30
If the project does not have a Dockerfile, create one.
- Very specific: line 83
If the project uses docker-compose.yml at the root, this works as-is.
- Distinctive: line 103
If they already have one: copy the private key content.
- Very specific: line 104
If not: run ssh-keygen -t ed25519 -f deploy_key on their local machine, then add the public key to the VPS ~/.ssh/authorized_keys.
- Distinctive: line 111
Check the Actions tab in GitHub for the workflow run.
- Very specific: line 112
If it passes, visit http://<their-vps-ip>:3000 (or their configured port).
- Distinctive: line 113
If it fails, check the SSH step output for the specific error.
- Very specific: line 117
After successful deployment, save to .agents/skills/deploy-project/SKILL.md:
- Distinctive: line 138
Never print or log the SSH key, VPS credentials, or any secrets.
- Very specific: line 139
Keep the Dockerfile minimal.
- Distinctive: line 140
If the deploy fails, diagnose the specific step (build?
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deploy VPS
Deploy to a VPS using GitHub Actions and Docker. This is the simplest repeatable setup for VPS deployment: push to GitHub, GitHub Actions builds and deploys.
Prerequisites
Before starting, confirm:
- The project has a GitHub repository.
- The user has a VPS with SSH access.
- Docker is installed on the VPS (or will be installed).
Step 1 — Check Docker on VPS
Ask: Do you have Docker installed on your server?
Run on the VPS: docker --version
If not installed, guide them:
- Ubuntu/Debian:
curl -fsSL https://get.docker.com | sh - Then:
sudo usermod -aG docker $USER(they may need to log out and back in)
Step 2 — Create Dockerfile
If the project does not have a Dockerfile, create one. Keep it simple:
# Use the smallest appropriate base image
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
EXPOSE 3000
CMD ["node", "dist/index.js"]Adjust for the project's stack (Python, Go, etc.). Ask the user what their project uses if unclear.
Step 3 — Create GitHub Actions workflow
Create .github/workflows/deploy.yml:
name: Deploy to VPS
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
script: |
cd /opt/${{ github.event.repository.name }}
git pull
docker compose down
docker compose build
docker compose up -dIf the project uses docker-compose.yml at the root, this works as-is. If not, suggest a simple one:
services:
app:
build: .
ports:
- "3000:3000"
restart: unless-stoppedStep 4 — Set up GitHub secrets
Tell the user to add three secrets in their GitHub repo (Settings > Secrets and variables > Actions):
VPS_HOST— their server IP or domainVPS_USER— the SSH username (e.g.rootordeploy)VPS_SSH_KEY— the private SSH key for connecting
For the SSH key, tell them:
- If they already have one: copy the private key content.
- If not: run
ssh-keygen -t ed25519 -f deploy_keyon their local machine, then add the public key to the VPS~/.ssh/authorized_keys.
The agent never handles these values. The user adds them in GitHub.
Step 5 — First deploy
Push to main. GitHub Actions will run the workflow. Tell the user to:
- Check the Actions tab in GitHub for the workflow run.
- If it passes, visit
http://<their-vps-ip>:3000(or their configured port). - If it fails, check the SSH step output for the specific error.
Save as project skill
After successful deployment, save to .agents/skills/deploy-project/SKILL.md:
---
name: deploy-project
description: Deploy this project to the VPS via GitHub Actions.
---
# Deploy Project
Push to `main` on GitHub. GitHub Actions builds and deploys to the VPS automatically.
- **VPS**: <host>
- **Port**: 3000 (or as configured)
- **Check**: visit http://<host>:3000
- **Logs**: SSH to VPS, run `docker compose logs -f`
- **Restart**: SSH to VPS, run `docker compose restart`Rules
- Never print or log the SSH key, VPS credentials, or any secrets.
- Keep the Dockerfile minimal. Do not add monitoring agents, log shippers, or complexity unless the user asks.
- If the deploy fails, diagnose the specific step (build? SSH? Docker?) before suggesting fixes.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

