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

news/2024/12/29 23:13:31/

 

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 -ForceWrite-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 -ForceWrite-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 -ForceWrite-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_newWrite-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 /MWrite-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 -ForceWrite-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.logWrite-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 FilebrowserWrite-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.FileVersionWrite-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 AllowWrite-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 端口代理访问

言语切换,密码重置


http://www.ppmy.cn/news/50547.html

相关文章

微软的“牛头怪时刻”

2014年&#xff0c;当萨提亚纳德拉接任微软CEO时&#xff0c;他面对的是一家停滞且难以在快速发展的技术领域保持竞争优势的公司。自那以后&#xff0c;纳德拉将其重点从传统操作系统和生产力软件&#xff0c;转向云计算和人工智能&#xff0c;被认为重振了微软。​ 让我们以O…

WuThreat身份安全云-TVD每日漏洞情报-2023-04-25

漏洞名称:PaperCut NG 访问控制错误漏洞 漏洞级别:严重 漏洞编号:CVE-2023-27350,CNNVD-202304-1720 相关涉及:Sonos One Speaker 漏洞状态:在野 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-10011 漏洞名称:LIBTIFF TIFFCROP 基于堆的溢出 漏洞级别:中危…

k8s部署Pyroscope并分析golang性能瓶颈

Pyroscope是什么 Pyroscope是一种开源的应用程序性能分析工具&#xff0c;它可以帮助我们发现和解决应用中的性能问题。Pyroscope支持多种编程语言并提供了丰富的性能数据&#xff0c;可以帮助我们跟踪应用程序的执行情况&#xff0c;并根据收集到的数据来识别性能瓶颈。 Pyros…

docker 离线安装

目录 服务介绍 软件下载 服务配置 二进制安装docker与docker-compose 服务管理命令 服务介绍 docker 是一个供开发和运维人员开发、测试、部署和运行应用的容器平台。 docker compose 是一个用于运行和管理多个容器的自动化编排工具。 软件下载 下载最新版本离线软件包地址…

Java基础——多线程创建

&#xff08;1&#xff09;什么是线程&#xff1f; 线程(thread)是一个程序内部的一条执行路径。程序中只有一条执行路径&#xff0c;那么这个程序就是单线程的程序。 &#xff08;2&#xff09;多线程是什么&#xff1f; 多线程是指从软硬件上实现多执行流程的技术。 &…

轻松掌握k8s的kubectl使用命令行操作Service知识点02

1、Service将同类型一组应用统一IP访问 将一组 Pods 网络服务的抽象方法。统一Ip后&#xff0c;默认就实现了负载均衡。 1、只在Pod内部任意机器访问的ClusterIp类型 在命令行操作生成一个ClusterIp地址。这种ClusterIp只能在Pod内部访问。 生成了ClusterIp之后&#xff0…

Vue CLI CSS 相关

Vue CLI 项目天生支持 PostCSS、CSS Modules 和包含 Sass、Less、Stylus 在内的预处理器。 引用静态资源 所有编译后的 CSS 都会通过 css-loader 来解析其中的 url() 引用&#xff0c;并将这些引用作为模块请求来处理。这意味着你可以根据本地的文件结构用相对路径来引用静态…

《Spring MVC》 第六章 MVC类型转换器、格式化器

前言 介绍MVC类型转换器、格式化器 1、使用场景 <form th:action"{/user/register}" method"post">用户名&#xff1a;<input type"text" name"userName"/><br/>密码&#xff1a;<input type"password&q…