您现在的位置是:首页 >技术交流 >PowerShell install go+caddy+filebrowser+nssm 实现部署文件系统网站首页技术交流
PowerShell install go+caddy+filebrowser+nssm 实现部署文件系统
简介PowerShell install go+caddy+filebrowser+nssm 实现部署文件系统
filebrowser
filebrowser 是一个使用go语言编写的软件,功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件,或者是添加删除文件,甚至可以分享文件,是一个很棒的文件管理器,你甚至可以当成一个网盘来使用。总之使用非常简单方便,功能很强大。
caddy
Caddy 2是一个强大的,企业就绪的开源Web服务器,具有用Go编写的自动HTTPS
go
使用 Go 构建简单、安全、可扩展的系统。
download
go | caddy | filebrowser | nssm | ||
download | download | download | 命令使用参考 |
前提条件
- 开启wmi,配置网卡,参考
创建一键部署脚本
- 实现在线下载,安装,解压,目录创建,环境变量设置,配置文件创建,启动服务创建,防火墙配置,删除软件包。
- go 安装目录C:Program Filesgo
- caddy 安装目录C:Program FilesCaddy
- caddy 配置文件目录C:Caddy
- caddy 端口80 ,反向代理filebrowser 82端口
- filebrowser安装目录C:Program Filesfilebrowser
- nssm 安装目录C:Program Files ssm
- 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 FilesCaddy"
$env:path += ";C:Program Filesfilebrowser"
$env:path += ";C:Program Filesgo"
$env:path += ";C:Program Filesgoin"
$env:path += ";C:Program Files
ssmwin64"
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:CaddyCaddyfile"
Write-Host "Create a system service for Caddy" -ForegroundColor Green
New-Service -Name Caddy -BinaryPathName "C:Program FilesCaddycaddy.exe run --environ --config C:CaddyCaddyfile" -DisplayName "Caddy" -Description "Caddy Engine - Enterprise Edition"
Start-Service "Caddy"
#手动启动Filebrowser服务,创建多个目录就可以实现多个Filebrowser服务产生
#& 'C:Program Filesfilebrowserfilebrowser.exe' -r C:filebrowser_data -d C:filebrowserfilebrowser.db --port 82 --log C:filebrowserfilebrowser.log
Write-Host "Example Create a system startup service filebrowser" -ForegroundColor Green
nssm install Filebrowser "C:Program Filesfilebrowserfilebrowser.exe"
nssm set Filebrowser Application C:Program Filesfilebrowserfilebrowser.exe
nssm set Filebrowser AppDirectory C:Program Filesfilebrowser
nssm set Filebrowser AppParameters -r C:filebrowser_data -d C:filebrowserfilebrowser.db --port 82 --log C:filebrowserfilebrowser.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
ssmwin64
ssm.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 端口代理访问
言语切换,密码重置
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。