Surgio
Changelog
GitHub
Changelog
GitHub
  • 指南

    • 介绍
    • 快速上手
    • 自定义

      • 配置文件
      • Provider 服务提供者
      • Template 模板
      • Artifact 产品
    • 客户端规则维护指南

      • sing-box
      • Clash
      • 代码示例
    • 托管 API 功能
    • 命令行功能
    • 常见问题
    • v2 升级指南
    • v3 升级指南
    • 社区学习资源
  • 进阶

    • Surge 进阶 - 生成 SSR 订阅
    • 自定义过滤器
    • 编写更复杂的自定义 Provider
    • 自动化更新规则仓库
    • 快速搭建托管 API

      • 前言
      • 部署 - Zeabur
      • 部署 - Netlify Functions
      • 部署 - Railway
      • 部署 - Vercel
      • 部署 - Docker
    • 开启 Redis 缓存
    • 苹果服务的连接策略推荐
Deployed on Zeabur

部署 - Docker

  • 准备
    • 开启接口鉴权
  • Docker 部署
    • 增加 Docker 配置
    • 构建镜像
  • 使用
    • Docker 运行
    • Docker Compose
  • 在公开网络中使用
    • 如果你有 Traefik 部署
    • 如果你有 Nginx
    • 更新 url

如果你有一定编程经验(会 Docker 以及基本的运维操作)并且有自己的服务器,也可以选择 Docker 的部署方式。

准备

在你的服务器上安装 Docker。具体的可以参考 Docker 官方文档

开启接口鉴权

注意

不建议关闭鉴权!

请阅读 这里。

Docker 部署

增加 Docker 配置

在代码库的根目录新建文件 Dockerfile,内容如下:

FROM node:lts

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

构建镜像

提示

下方的 surgio 可以替换为你喜欢的映像名

在项目的根目录运行:

docker build -t surgio:latest .

使用

Docker 运行

在任意目录运行:

docker run --name surgio -p 3000:3000 -d surgio:latest

Docker Compose

在希望运行的目录创建文件 compose.yml

name: 'surgio'

services:
  ladder:
    image: surgio:latest
    ports:
      - 3000:3000

运行 docker compose up -d 即可

在公开网络中使用

注意

为了你自己的服务器安全,在公开网络(所有人都可能会访问到的情况下)中请勿使用 IP:端口 的方式进行访问。

另外,请为自己的服务器申请证书并通过后端代理进行 HTTPS 访问。

以下提供了简单的反向代理配置,更复杂的请自行研究。

如果你有 Traefik 部署

那么你的 compose.yml 文件可以按以下方式编写:

name: 'surgio'

services:
  ladder:
    image: surgio:latest
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik
      - traefik.http.routers.surgio.rule=Host(`你的域名`)
      - traefik.http.routers.surgio.tls=true
    networks:
      - traefik

如果你有 Nginx

可以在你的站点配置下新增 surgio.conf:

server {
    listen 80;
    server_name 你的域名;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

然后重新加载 Nginx 配置

sudo nginx -s reload

更新 url

你可能还需要更新 surgio.conf.js 内 urlBase 的值,它应该类似:

https://你的域名/get-artifact/

移步至

托管 API 的功能介绍

帮助我们改善此页面!
Last Updated:
Contributors: Roy Li
Prev
部署 - Vercel