PowerShell install go+caddy+filebrowser+nssm 实现部署文件系统

 

filebrowser

filebrowser 是一个使用go语言编写的软件,功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件,或者是添加删除文件,甚至可以分享文件,是一个很棒的文件管理器,你甚至可以当成一个网盘来使用。总之使用非常简单方便,功能很强大。

caddy 

Caddy 2是一个强大的,企业就绪的开源Web服务器,具有用Go编写的自动HTTPS

go

使用 Go 构建简单、安全、可扩展的系统。

download

 gocaddyfilebrowsernssm
downloaddownloaddownload

download

命令使用参考

前提条件

  • 开启wmi,配置网卡,参考 

创建一键部署脚本

  • 实现在线下载,安装,解压,目录创建,环境变量设置,配置文件创建,启动服务创建,防火墙配置,删除软件包。
  • go 安装目录C:\Program Files\go
  • caddy 安装目录C:\Program Files\Caddy
  • caddy 配置文件目录C:\Caddy
  • caddy 端口80 ,反向代理filebrowser 82端口
  • filebrowser安装目录C:\Program Files\filebrowser
  • nssm 安装目录C:\Program Files\nssm
  • c:\filebrowser_data 此目录是filebrowser文件系统存储目录
  • c:\filebrowser 数据库目录,日志输出目录
  • filebrowser 默认用户名密码 admin/admin,建议更改默认密码,安全性考虑
.\powershell-install-filebrowser.ps1
<# Powershell Install filebrowser
+++++++++++++++++++++++++++++++++++++++++++++++++++++
+  _____                       _____ _          _ _ +
+ |  __ \                     / ____| |        | | |+
+ | |__) |____      _____ _ _| (___ | |__   ___| | |+
+ |  ___/ _ \ \ /\ / / _ \ '__\___ \| '_ \ / _ \ | |+
+ | |  | (_) \ V  V /  __/ |  ____) | | | |  __/ | |+
+ |_|   \___/ \_/\_/ \___|_| |_____/|_| |_|\___|_|_|+
+ +++++++++++++++++++++++++++++++++++++++++++++++++++
                                                                                                              
# Powershell Install filebrowser
# .\powershell-install-filebrowser.ps1
#> 

$drive="c:\"
$caddy_url="https://github.com/caddyserver/caddy/releases/download/v2.6.4/"
$caddy_zip="caddy_2.6.4_windows_amd64.zip"
$caddy_new="Caddy"
$system_site="C:\Program Files\"

$filebrowser_url="https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/"
$filebrowser_zip="windows-amd64-filebrowser.zip"
$filebrowser_new="filebrowser"
$filebrowser_data="filebrowser_data"

$go_url="https://golang.google.cn/dl/"
$go_zip="go1.20.3.windows-amd64.zip"

$nssm_url="https://nssm.cc/release/"
$nssm_zip="nssm-2.24.zip"
$nssm_catalogue="nssm-2.24"
$nssm_new="nssm"

Write-Host "download caddy" -ForegroundColor Green
Invoke-WebRequest -Uri $caddy_url\$caddy_zip -OutFile $drive\$caddy_zip
New-Item -ItemType Directory -Path $system_site\$caddy_new -Force
Expand-Archive -Path $drive\$caddy_zip -DestinationPath $system_site\$caddy_new -Force

Write-Host "download filebrowser" -ForegroundColor Green
Invoke-WebRequest -Uri $filebrowser_url\$filebrowser_zip -OutFile $drive\$filebrowser_zip
New-Item -ItemType Directory -Path $system_site\$filebrowser_new -Force
Expand-Archive -Path $drive\$filebrowser_zip -DestinationPath $system_site\$filebrowser_new -Force

Write-Host "download go" -ForegroundColor Green
Invoke-WebRequest -Uri $go_url\$go_zip -OutFile $drive\$go_zip
Expand-Archive -Path $drive\$go_zip -DestinationPath $system_site -Force

Write-Host "download nssm" -ForegroundColor Green
Invoke-WebRequest -Uri $nssm_url\$nssm_zip -OutFile $drive\$nssm_zip
Expand-Archive -Path $drive\$nssm_zip -DestinationPath $system_site -Force
Rename-Item -Path $system_site\$nssm_catalogue -NewName $nssm_new

Write-Host "Create caddy go filebrowser nssm environment variables" -ForegroundColor Green
$env:path += ";C:\Program Files\Caddy"
$env:path += ";C:\Program Files\filebrowser"
$env:path += ";C:\Program Files\go"
$env:path += ";C:\Program Files\go\bin"
$env:path += ";C:\Program Files\nssm\win64"
setx PATH $env:path /M

Write-Host "create directory caddy filebrowser filebrowser_data" -ForegroundColor Green
New-Item -ItemType Directory -Path $drive$caddy_new -Force
New-Item -ItemType Directory -Path $drive\$filebrowser_new -Force
New-Item -ItemType Directory -Path $drive\$filebrowser_data -Force

Write-Host "caddy config Caddyfile" -ForegroundColor Green
@"
:80 {
# Set this path to your site's directory.
root * C:\filebrowser

# Enable the static file server.
file_server
encode gzip

# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
reverse_proxy localhost:82

# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
"@ | Out-File -Encoding utf8 "C:\Caddy\Caddyfile"

Write-Host "Create a system service for Caddy" -ForegroundColor Green
New-Service -Name Caddy -BinaryPathName "C:\Program Files\Caddy\caddy.exe run --environ --config C:\Caddy\Caddyfile" -DisplayName "Caddy" -Description "Caddy Engine - Enterprise Edition"
Start-Service "Caddy"

#手动启动Filebrowser服务,创建多个目录就可以实现多个Filebrowser服务产生
#& 'C:\Program Files\filebrowser\filebrowser.exe' -r C:\filebrowser_data -d C:\filebrowser\filebrowser.db --port 82 --log C:\filebrowser\filebrowser.log

Write-Host "Example Create a system startup service filebrowser" -ForegroundColor Green
nssm install Filebrowser "C:\Program Files\filebrowser\filebrowser.exe"
nssm set Filebrowser Application C:\Program Files\filebrowser\filebrowser.exe
nssm set Filebrowser AppDirectory C:\Program Files\filebrowser
nssm set Filebrowser AppParameters -r C:\filebrowser_data -d C:\filebrowser\filebrowser.db --port 82 --log C:\filebrowser\filebrowser.log
Start-Service Filebrowser

Write-Host "check Caddy go filebrowser nssm version" -ForegroundColor Green
go version
filebrowser version
caddy version
(Get-Item "C:\Program Files\nssm\win64\nssm.exe").VersionInfo.FileVersion

Write-Host "firewall caddy port" -ForegroundColor Green
New-NetFirewallRule -DisplayName "caddy" -Direction Outbound -profile any -LocalPort 80 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "caddy" -Direction Inbound -profile any -LocalPort 80 -Protocol TCP -Action Allow

Write-Host "delete all software package" -ForegroundColor Green
Remove-Item c:\*.zip -Recurse -Force -Verbose
Remove-Item c:\*.ps1 -Recurse -Force -Verbose

执行安装

.\powershell-install-filebrowser.ps1

输出结果

登录系统

  • http://you_ip
  • 默认用户名密码 admin/admin,建议登录更改默认密码
  • 默认filebrowser 82,禁止外部直接访问,只允许通过caddy 80 端口代理访问

言语切换,密码重置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/13987.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

光流法Optical Flow,Lucas-Kanade方法,CV中光流的约束分析

光流法Optical Flow&#xff0c;Lucas-Kanade方法&#xff0c;CV中光流的约束分析 Multiple View Geometry1. Optical Flow Estimation2. The Lucas-Kanade Method2.1 Brightness Constancy Assumption2.2 Constant motion in a neighborhood2.3 Compute the velocity vector2.…

excel数据分析比赛

基础 sql:百度网盘 请输入提取码 excel函数 <

什么是VBST和PVST?两者有啥区别?

在计算机网络中&#xff0c;VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种将局域网划分为多个逻辑上独立的子网的技术&#xff0c;它可以帮助网络管理员更好地管理网络资源。 在VLAN技术中&#xff0c;STP&#xff08;Spanning Tree P…

生成树协议三姐妹:STP、RSTP 和 MSTP,附思科和华为双厂商命令示例

在计算机网络中&#xff0c;为了保证网络拓扑结构的稳定性和可靠性&#xff0c;需要采用一些协议进行网络的管理和控制。其中&#xff0c;STP、RSTP 和 MSTP 是三种常用的网络管理协议。本文将分别介绍这三种协议&#xff0c;并且使用华为、思科两家厂商作为案例给出相应的命令…

全网抓包天花板教程,CSDN讲的最详细的Fiddler抓包教程。2小时包你学会

目录 前言 一、安装 Fiddler 二、打开 Fiddler 并设置代理 三、抓取 HTTP/HTTPS 流量 四、流量分析和调试 五、应用场景 六、注意事项 七、实际案例 八、拓展阅读 九、结论 前言 Fiddler 是一款功能强大的网络调试工具&#xff0c;可以用于捕获和分析 HTTP 和 HTTPS …

QT QPainter 绘制基本图形元件简介

1.基本图形元件 QPainter 提供了很多绘制基本图形的功能&#xff0c;包括点、直线、椭圆、矩形、曲线等&#xff0c;由这些基本的图形可以构成复杂的图形。QPainter 中提供的绘制基本图元的函数如下表所示。每个函数基本上都有多种参数形式&#xff0c;这里只列出函数名&#x…

微信小程序php+vue 校园租房指南房屋租赁系统

本着诚信的原则&#xff0c;平台必须要掌握出租方必要的真实可信的信息&#xff0c;这样就可以防止欺诈事件的发生&#xff0c;事后也可以联系找到出租方。并且租金等各方面规范标准化&#xff0c;在这易租房诚信可信的平台让承租方与出租方充分有效对接&#xff0c;既方便了承…

ConcurrentHashMap是如何保证线程安全的

ConcurrentHashMap是如何保证线程安全的 定义和问题解决JDK 1.7实现原理JDK 1.8性能优化总结 定义和问题解决 ConcurrentHashMap相当于HashMap的多线程版本。 它的功能本质上和HashMap没有什么区别&#xff0c;因为HashMap在并发操作的时候会出现各种问题&#xff0c;比如&am…

YOLOv1代码复现1:辅助功能实现

YOLOv1代码复现1&#xff1a;辅助功能实现 前言 ​ 在经历了Faster-RCNN代码解读的摧残后&#xff0c;下决心要搞点简单的&#xff0c;于是便有了本系列的博客。如果你苦于没有博客详细告诉你如何自己去实现YOLOv1&#xff0c;那么可以看看本系列的博客&#xff0c;也许可以帮助…

大屏开发需要知道哪些知识

大屏 大屏是什么呢&#xff1f;再我前几年刚接触这个词得时候很新颖&#xff0c;全名叫态势感知大屏&#xff0c;大屏得特点是炫酷、好看&#xff0c;给用户满满得科技感。 听一位前辈说当年再招标会上&#xff0c;再都用exel、word做界面图表文档得时候&#xff0c;有一家公司…

打包后dist包中app.**.js文件暴露大量接口信息,webpack-obfuscator对打包后的js代码混淆加密

问题描述 打包后dist包中app.**.js文件暴露大量接口信息&#xff0c;而webpack-obfuscator可以对打包后的js代码混淆加密 版本信息 webpack: 4.x.x node: 14.18.0 webpack4环境下使用webpack-obfuscator不能使用最新版本 我的下载版本是&#xff1a; npm install --save-de…

玩转ChatGPT:论文翻译润色

一、写在前面 首先还是让小Chat推销下自己&#xff1a; 嘿&#xff01;你是否在写论文的过程中感到头疼&#xff0c;无从下手&#xff1f;你是否在担心自己的语言表达不够专业、不够流畅&#xff0c;影响了论文的质量&#xff1f;不要担心&#xff0c;ChatGPT的润色服务可以帮…

Redis 持久化八股文

目录 Redis的持久化机制 持久化方式对比 RDB RDB 持久化 RDB 的优缺点 优点 缺点 RDB 快照时运行修改数据吗 RDB 快照时修改数据过程 写时复制技术 RDB 的执行频率 增量快照 AOF 如何开启AOF AOF 为什么要采用后写日志呢&#xff1f; 后写日志的弊端 AOF 的优…

pdf转成word | ppt | jpg图片,免费一键转换教程

我不允许真的还有人不知道如何免费将pdf转成 ppt、word 或者 jpg图片&#xff01; 职场小伙伴是不是会经常遇到pdf怎么转成word&#xff0c;pdf怎么转成word&#xff0c;pdf怎么jpg图片等问题&#xff1f;别再为pdf转化格式难、而且还要付费而发愁了&#xff01;这份pdf免费一…

Python OpenCV3 计算机视觉秘籍:6~9

原文&#xff1a;OpenCV 3 Computer Vision with Python Cookbook 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&…

IDAPython入门基础语法

文章目录 参考文章IDAPython简介常用函数获取界面地址的函数数值获取函数数值判断函数patch操作函数去除花指令实例 参考文章 IDAPython入门教程 基于IDA7.5_Python3 第一讲 简介与地址获取 IDAPython简介 IDAPython拥有强大的功能,在使用IDA分析程序时非常有用,可以简化许多…

QT 插件通信接口调用 CTK开发(四)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而不会增加现有任务的负担;整合并适应成功的解决方案。 本专栏文章较为全面…

信息安全复习三:古典密码之设计好的密码算法

一.章节梗概 讨论以下算法&#xff0c;理解怎么设计好的密码算法的关键问题 1.Caesar cipher 2.单字母表密码 3.Playfairmima 4.维吉尼亚密码 5.自动生成密码 二.Caesar cipher 2.1 穷举攻击 穷举攻击定义&#xff1a;尝试所有密钥直到有一个合法密钥能够把密文还原成明文&…

Docker私有仓库Harbor搭建及使用

文章目录 一、Harbor简介二、Harbor仓库部署三、Harbor仓库使用 一、Harbor简介 官网地址&#xff1a;https://github.com/goharbor/harbor Docker容器应用的开发和运行离不开可靠的镜像管理&#xff0c;虽然Docker官方也提供了公共的镜像仓库&#xff0c;但是从安全和效率等…

如何在Web上实现激光点云数据在线浏览和展示?

无人机激光雷达测量是一项综合性较强的应用系统&#xff0c;具有数据精度高、层次细节丰富、全天候作业等优势&#xff0c;能够精确测量三维现实世界&#xff0c;为各个行业提供了丰富有效的数据信息。但无人机激光雷达测量产生的点云数据需要占用大量的存储空间&#xff0c;甚…