返回顶部
v

vps-deployVPS一键部署

Deploy a full-stack app to any VPS from zero to production in one command. Handles SSH hardening, firewall, Docker, Nginx reverse proxy, SSL certificates, and health verification. Works with any stack (Node.js, Python, Go, Next.js) and any VPS provider (Hostinger, DigitalOcean, Hetzner, Linode, Vultr). Use when the user says 'deploy to VPS', 'set up my server', 'deploy to production', 'configure my VPS', or needs to go from a bare Ubuntu/Debian server to a running production app.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
97
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

vps-deploy

VPS 部署

在单次会话中,将任何应用部署到任意VPS——从裸服务器到生产环境并配置SSL。

使用场景

  • - 用户拥有VPS(Ubuntu/Debian)并希望部署应用
  • 用户提出部署到VPS、配置我的服务器、上线生产环境
  • 用户本地已有运行中的应用,希望部署到服务器
  • 用户需要在VPS上配置SSL、Nginx、Docker

禁止使用场景

  • - 部署到Vercel、Netlify或其他托管平台(请使用其CLI工具)
  • 部署到Kubernetes(如存在,请使用/k8s-deploy)
  • 用户仅需推送代码(请使用git push)

前置条件

  • - 具备VPS的SSH访问权限(IP地址 + root或sudo凭据)
  • 已指向VPS IP的域名(用于SSL——无域名可跳过SSL配置)
  • 应用需包含Dockerfile或可通过Docker部署

执行流程

第一阶段:信息收集

向用户询问(可自动检测的项跳过):

  1. 1. VPS IP地址SSH凭据(root密码或密钥路径)
  2. 域名(可选——SSL必需)
  3. 应用类型——尽可能从当前目录检测:
- 查找package.json(Node.js/Next.js) - 查找requirements.txt / pyproject.toml(Python) - 查找go.mod(Go) - 查找Dockerfile(通用)
  1. 4. 应用运行端口(从Dockerfile EXPOSE检测,或询问)
  2. 所需环境变量(检查.env.local、.env.example)
  3. 数据库需求(Postgres、MySQL、Redis、MongoDB——从依赖项检测)

第二阶段:服务器配置(SSH连接VPS)

通过ssh root@命令执行。使用&&安全串联。

2a. 系统更新

bash apt update && apt upgrade -y

2b. 创建部署用户

bash adduser --disabled-password --gecos deploy usermod -aG sudo docker deploy echo deploy ALL=(ALL) NOPASSWD:ALL >> /etc/sudoers.d/deploy

2c. SSH加固

bash

将root的authorized_keys复制到deploy用户

mkdir -p /home/deploy/.ssh cp ~/.ssh/authorized_keys /home/deploy/.ssh/ 2>/dev/null || true chown -R deploy:deploy /home/deploy/.ssh chmod 700 /home/deploy/.ssh chmod 600 /home/deploy/.ssh/authorized_keys 2>/dev/null || true

加固SSH配置

sed -i s/#\?PermitRootLogin.*/PermitRootLogin no/ /etc/ssh/sshd_config sed -i s/#\?PasswordAuthentication.*/PasswordAuthentication no/ /etc/ssh/sshd_config sed -i s/#\?PubkeyAuthentication.*/PubkeyAuthentication yes/ /etc/ssh/sshd_config systemctl restart sshd

关键提示: 禁用root登录前,务必验证deploy用户能否SSH登录。在独立连接中测试。若用户未配置SSH密钥,请先协助配置。

2d. 防火墙(UFW)

bash apt install -y ufw ufw default deny incoming ufw default allow outgoing ufw allow 22/tcp # SSH ufw allow 80/tcp # HTTP ufw allow 443/tcp # HTTPS ufw --force enable

2e. 安装Docker

bash curl -fsSL https://get.docker.com | sh usermod -aG docker deploy

2f. 安装Docker Compose(v2)

bash apt install -y docker-compose-plugin

验证

docker compose version

第三阶段:应用部署

3a. 生成Dockerfile(如不存在)

检测技术栈并生成相应的多阶段Dockerfile:

Node.js / Next.js:
dockerfile
FROM node:22-alpine AS deps
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev

FROM node:22-alpine AS builder
WORKDIR /app
COPY --from=deps /app/nodemodules ./nodemodules
COPY . .
RUN npm run build

FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD [node, server.js]

Python(FastAPI/Flask):
dockerfile
FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD [uvicorn, main:app, --host, 0.0.0.0, --port, 8000]

根据项目检测结果进行调整。

3b. 生成docker-compose.yml

生成生产级compose文件。包含:

yaml
services:
app:
build: .
restart: unless-stopped
ports:
- 127.0.0.1:${APPPORT:-3000}:${APPPORT:-3000}
env_file: .env
healthcheck:
test: [CMD, curl, -f, http://localhost:${APP_PORT:-3000}/]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
deploy:
resources:
limits:
memory: 512M
cpus: 1.0
logging:
driver: json-file
options:
max-size: 10m
max-file: 3

# 根据检测结果添加数据库服务:
# postgres:
# image: postgres:16-alpine
# restart: unless-stopped
# volumes:
# - pgdata:/var/lib/postgresql/data
# environment:
# POSTGRESDB: ${DBNAME:-app}
# POSTGRESUSER: ${DBUSER:-app}
# POSTGRESPASSWORD: ${DBPASSWORD}
# healthcheck:
# test: [CMD-SHELL, pgisready -U ${DBUSER:-app}]
# interval: 10s
# timeout: 5s
# retries: 5

volumes:

pgdata:

关键规则:

  • - 始终将应用端口绑定到127.0.0.1(Nginx处理外部流量)
  • 始终包含健康检查
  • 始终包含资源限制
  • 始终包含日志限制
  • 始终使用restart: unless-stopped
  • 绝不向主机暴露数据库端口

3c. 传输文件到VPS

bash

创建应用目录


ssh deploy@ mkdir -p ~/apps/

复制项目文件(排除node_modules、.git等)

rsync -avz --exclude=node_modules --exclude=.git --exclude=.next \ ./ deploy@:~/apps//

3d. 构建并启动

bash
ssh deploy@ cd ~/apps/ && docker compose up -d --build

第四阶段:Nginx反向代理

bash
apt install -y nginx

生成站点配置

cat > /etc/nginx/sites-available/ << EOF server { listen 80; server_name ;

location / {
proxypass http://127.0.0.1:PORT>;
proxyhttpversion 1.1;
proxysetheader Upgrade $http_upgrade;
proxysetheader Connection upgrade;
proxysetheader Host $host;
proxysetheader X-Real-IP $remote_addr;
proxysetheader X-Forwarded-For $proxyaddxforwardedfor;
proxysetheader X-Forwarded-Proto $scheme;
proxycachebypass $http_upgrade;
proxyreadtimeout 86400;
}
}
EOF

ln -sf /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx

第五阶段:SSL证书(Let

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 vps-deploy-1775711580 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 vps-deploy-1775711580 技能

通过命令行安装

skillhub install vps-deploy-1775711580

下载

⬇ 下载 vps-deploy v1.0.0(免费)

文件大小: 4.41 KB | 发布时间: 2026-4-11 23:03

v1.0.0 最新 2026-4-11 23:03
vps-deploy 1.0.0

- Initial release: Deploy any full-stack app to any VPS in one streamlined command.
- Handles server hardening, firewall, Docker & Docker Compose setup automatically.
- Supports Node.js, Python, Go, and other stacks via Docker.
- Automatically generates Dockerfile and docker-compose.yml if needed.
- Configures Nginx as a reverse proxy and sets up Let's Encrypt SSL certificates.
- Performs automated health and verification checks after deployment.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部