🆒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进行安全验证。

可以非常高效的部署静态网站服务。当然,我这么搞可能并不是最好的,但是对我来说是比较方便的。如果您知道更简单便捷的部署管理方式,可以在下放留言一起探讨。

DeployTar在服务器上快速上传部署静态网站服务

使用方式 #

使用极其简单,服务分为服务端和客户端。

服务端 #

服务端推荐使用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 代码链接到此工具。只需将其复制并粘贴到您的页面中: