🆒DeployTar在服务器上快速上传部署静态网站服务
介绍 #
DeployTar 基于Golang编写的开源静态网站(例如:Hugo, Hexo, Astro, Jekyll, VuePress…)部署程序,可自行部署测试或重新DIY编译实现自己的自定义需求。
灵感来源于basecamp出品的 kamal-skiff。所不同的是 kamal-skiff 走的是ssh管理的路线。我发现ssh在terminal中是单独管理的,每次我要连接到远程的机器都要重新执行一遍 ssh-add /root/.ssh/xxx
好难受。
所以我没有走这个条路,而是在服务器上部署了一个非常小的web服务,可以隐藏到nginx配置的网站后面,docker镜像只有10M大小,通过前后端配置一个apiKey进行安全验证。
可以非常高效的部署静态网站服务。当然,我这么搞可能并不是最好的,但是对我来说是比较方便的。如果您知道更简单便捷的部署管理方式,可以在下放留言一起探讨。
使用方式 #
使用极其简单,服务分为服务端和客户端。
服务端 #
服务端推荐使用docker-compose部署,docker-compose.yaml 代码如下👇:
version: '3'
services:
deploy-tar:
image: yestool/deploy-tar:v1.0
ports:
- "8081:8080"
environment:
APP_APIKEY: 11111111
APP_KEEPFILES: 3
volumes:
- ./tars:/uploadfiles
- ./webs:/www/wwwroot
默认配置文件 config.yaml, 也可以环境变量覆盖默认配置或者docker外部构建config.yaml通过volumes挂在到内部路径 /config.yaml
:
apiKey: 123456
serverPort: 8080
keepFiles: 3
maxUploadSize: 104857600
funcHandle: /upload
uploadfiles 为默认保存上传的tar.gz文件的地方。通过 keepFiles 参数可以设置保留最近上送的文件个数。
客户端 #
客户端是一个命令行程序,可以直接下载到静态网站根目录:
wget https://mirror.ghproxy.com/https://raw.githubusercontent.com/yestool/deploy-tar/main/client/bin/deploy-tar
创建一个配置文件: touch .deploy-tar.yaml
apiKey: 1111111111
server: http://127.0.0.1:8081/upload
webPath: /www/wwwroot/test123.com/
tarPath: /root/go-code/deploy-tar/test/
webSite: test123.com
deplay-tar –config ./.deploy-tar.yaml # 这里是 - -config 有两个杠
apiKey: 与服务端的apiKey对应,保证系统安全,防止别人上传覆盖文件。
server: 服务上送文件的地址,配合nginx反向代理 location 也可以当作一个key,加强安全。
webPath: 解压tar.gz到服务器哪个目录,如果用的是docker,那么只需要将宿主机的web网站路径与docker内部的这个地址进行挂载即可。
tarPath: 可以是一个 xxx.tar.gz 文件也可以是一个 目录, 如果是目录会自动先进行打包,再进行上传。
webSite: 网站标识,用于服务器上保存原始上送tar.gz文件区分管理.
Nginx 配置 #
可以将该服务隐藏到web网站后面
location /upxyz123/ {
client_max_body_size 1024m;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 99999;
proxy_pass http://127.0.0.1:8081/;
}
in this config, the client config server is : https://xxxx.com/upxyz123/upload
开源 #
本项目完全开源,项目地址是: https://github.com/yestool/deploy-tar
喜欢的话给点个 star🌟呗 👍😘
另外:本人开发的 https://webviso.yestool.org 在线网站访客计数工具也同样值得参考学习。
如果您觉得工具对您有帮助的话,有能力的可以请我喝杯汽水或咖啡。
链接到这个页面:"DeployTar在服务器上快速上传部署静态网站服务"
您可以使用此 HTML 代码链接到此工具。只需将其复制并粘贴到您的页面中:
<a href="https://yestool.org/deploy-tar/">🆒DeployTar在服务器上快速上传部署静态网站服务</a>