# PasteSpider **Repository Path**: pastecode/PasteSpider ## Basic Information - **Project Name**: PasteSpider - **Description**: PasteSpider社区开源版,如果你的服务器是小内存的,比如才2GB,那么这一款从开发角度触发的容器部署工具绝对适合你! 支持一键部署,Nginx路由同步,多环境发布,账号多角色,私有仓库,GIT/SVN源码发布等! - **Primary Language**: C# - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 3 - **Created**: 2023-10-26 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## **基本介绍** ![](https://soft.pastecode.cn/upload/bookmark/202505/c25c271072f201780b6341e6cdc3724e.webp) 部署工具,可以说非常多,比如最庞大的应该属于K8S了,还有另外一种的就是宝塔等,为啥还要介绍PasteSpider呢? PasteSpider是一款使用NET8.0开发的部署工具,她可以把你的项目部署到Windows服务器或者Linux服务器上! 你的服务可以以**容器**(docker/podman),**Systemd**(linux服务),**Service**(windows服务),甚至是**IIS**(Windows)在服务器上运行! 而需要驾驭这个工具,你只要5分钟即可上手,你也不用担心相关知识没有地方找寻! - 我们提供了操作文档(最直观的操作文档,在表单中哪里不懂点哪里那种) [PasteSpider操作文档](https://soft.pastecode.cn/doc/spider/projectInfo/index "PasteSpider操作文档") - 提供了各种概念的专题介绍,可以了解一些规则和使用案例等 [PasteSpider专题介绍](https://soft.pastecode.cn/Home/Docs/spider/13 "PasteSpider专题介绍") ## **PasteSpider** - PasteSpider是一个开发者专属部署工具 - 5分钟即可上手,图形操作! - 适用于任何语言,比如Net,Java,Php,Rust,Go,Vue等 - 旁载模式,你的服务运行否和PasteSpider停止没停止没有关系 ## **部署案例** 说一堆不如拿一个实际案例来说明下,就以贴代码网站为例,我们都知道做开发的,特别是测试服,那升级频率,可以说是非常高的!那么有人说了,为啥不弄CI/CD,就是那种推送代码上去,自动部署的!PasteSpider也是支持CI/CD的,只是需要配置下,这里先不讨论这种情况! 拿贴代码网站的案例来说,我的开发习惯是在开发机子上修改代码,然后发布(本地文件夹),然后把发布文件夹的文件上传到服务器,然后运行(docker),之前的大致流程就是上传文件后,比如执行run.sh,其实这里是有很多问题的 - 可能由于新引入一个dll没有上载上去,也就是差量上传丢失文件 - 全量覆盖,一来消耗的网络和时间更多,二来可能覆盖你服务器上的配置文件 - 可能张冠李戴,项目A的上传覆盖到项目B的文件夹了 - 没法做版本回滚,或者说版本回滚很麻烦 - 没法做到平滑升级,就是当前服务会中断一会 一起来看看我用PasteSpider是如何发布的 ### 一键发布 当我们把需要修改的地方修改完成后,保存所有文件,然后按照下图 ![图片alt](https://soft.pastecode.cn/upload/bookmark/202505/f5265dae72a794c05144f5ace2fb2838.webp) 也就是在本地执行发布(发布到文件夹),因为有经验说明,运行成功和发布成功是两码事,我采用的是发布模式! 等待开发机运行发布结果,成功后,你只要点击PasteSpiderFile的“一键发布” 然后就是等待发布的结果的通知了,比如我的WebHook ![图片alt](https://soft.pastecode.cn/upload/bookmark/202505/05b5a244819de285706a7e1300e872f4.webp) 这就发布成功了!!! ### 管理端发布 如果是静态页面的,比如html的,或者是vue的发布文件的,其实对于服务器来说这些是静态文件,只要存放到服务器的某些目录,然后nginx配置过去即可访问,对于这样的,可能用发布不太贴切,我称为同步! ![图片alt](https://soft.pastecode.cn/upload/bookmark/202505/89aa29bf7784bf88331691b5f6ee399b.webp) 其实这样的,也可以参考API的发布使用一键发布,只是后面创建任务的时候会被系统阻断而已,但是文件是已经同步到服务器了的! 你也可以点击“对比差异”,然后点击“同步”,这样也是把你开发机的文件同步到服务器上了! 是不是非常简单!!! ### 流程解析 要说到流程,也就是PasteSpider如何运行的,有几个概念不得不先说明下,还是以贴代码官网为例! 贴代码官网这个我称为“项目”,关键点就是所有的服务都是通过一个域名来访问的! 项目的下一级就是服务,可以理解为,比如后端,管理端,用户端,也可以按照开发划分,独立开发的为服务! 上面的API的发布流程 - 1.对比文件,对比开发机发布文件夹的文件和服务器的文件对比,哪些需要上传到服务器,哪些忽略,哪些是必传的,上传到服务文件夹 - 2.基于这个服务对应的文件夹,构建镜像(docker build),这里需要计算出新的镜像版本,用于后续的版本回滚 - 3.按照需要,是否对当前运行的服务拆分多次,或者一次,停止服务,同时更新对应的nginx配置 - 4.拉取镜像,然后查看是否有配置key-value组合成启动运行命令(docker run),也会针对项目看看是否配置了项目网关,设定特定的IP或者端口监听等! - 5.检查运行状态,更新nginx的配置,如果有多次分拆的,则进入下一个周期 - 6.完成整个流程,发送通知(webhook)报告升级结果! 上面是大概的流程,其实在整个流程中还有其他的考量,比如是否部署到多台服务器,比如当前服务器的内存是否富足,比如当前服务设定运行数量限定等! ## **功能介绍** 一起来看看PasteSpider都有哪些特点 #### 旁载模式 作为一个工具,我把这个拿到首要来说,是因为我的原则就是工具就是工具不能喧宾夺主了,旁载模式的意思是,在没有发布任务的时候,你把PasteSpider直接停止,你自己的服务不会受影响,能继续运行! #### 节省资源 以我几台服务器的运行状态来看,PasteSpider运行后的内存占用大概在200MB左右!对于小内存的服务器来说,工具吃得多少意味着主服务是否能够自由的伸展! #### 操作简单 3分钟上手,你不需要学习其他的语言,比如yaml等,PasteSpdier的操作都是通过表单,图形操作的,也就是点点点就行了,遇到不懂得,你只要点击表单或者表格中对应得点就行,会跳转到在线文档进行解说和案例说明等! #### 权限细化 可以基于账号,为不同账号分配不同权限,比如张三只能发布哪个服务的,李四只能发布她负责的项目等,还可以基于环境划分! #### 多环境模式 内置环境隔离,比如开发环境,生产环境,所有的操作几乎都是和环境相关的,比如当前升级,是升级到测试环境还是生成环境!再比如项目路由也是按照环境隔离的! #### 平滑升级 内部采用nginx实现路由,也就是你的服务得使用nginx进行转发,可以实现升级得时候用户无感知,也就是他们说的平滑升级,或者是滚动式升级 #### CI/CD 支持CI/CD,也就是从源码服务器拉取源码,然后在服务器上进行编译,然后发布升级,不过需要对应得配置,比如NET或者JAVA,这个时候服务器得配置是不一样得,主要在编译发布这个环节! #### key/val 键值配置,或者说是配置模式,可以基于不同环境实现key-value模式,这样可以实现不同得启动参数等! #### 自动伸缩 支持按照当前负载,是否自动扩容,我们都知道服务瓶颈有很多情况,有时候就是多启动一个容器就行了,比如经典得rabbit消费者,很多时候就是多开一个消费者就行了! #### 技术栈原生 遇到问题不用慌,遇到问题找对应的知识即可,比如docker的问题,你就找docker的即可,如果是nginx的,你找nginx的信息即可,记住PasteSpider其实做的只是把命令程序化而已,没有引入新的概念啥的,所以遇到问题的时候,可以手动试试,看看是否能执行! #### 丰富支持 从最初的只支持docker到后面的podman,iis,service,systemd等,可以说通过PasteSpider可以很好的把你的服务部署到服务器上! #### 配套丰富 PasteSpider中主要有2个数据库,一个是系统的,另外一个就是日志,2个数据库你都可以自己配置使用哪些数据库,目前支持mysql,mariadb,postgresql,sqlite,sqlserver等 #### 审计日志 新版重写了审计日志,通过查询,你可以查询某一个字段的变更记录,比如张三的账号是否修改过密码,比如谁在今天某一点发布了哪个项目等! #### 运行状态 可以说是数据报表,支持分钟,小时,天模式查看服务器和服务的运行状态,对于我来说主要的作用就是看看某一个项目是否有内存泄漏! #### 预警通知 通过配置,可以第一时间发现问题,比如硬盘即将占满等,让很多潜在的问题灭杀在萌芽阶段! #### 分级开源 个人免费使用,企业版采用买断机制,企业版可以获取最新专业版的源码,基础班的代码直接公开开源,所以PasteSpider也是一个开源项目! #### 源码地址 [访问PasteSpider开源代码](https://gitee.com/pastecode/PasteSpider "访问PasteSpider开源代码")