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

news2024/10/7 10:15:52

 

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 端口代理访问

言语切换,密码重置

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

找高清视频素材,就上这6个网站。

推荐6个高清视频素材库&#xff0c;免费下载&#xff0c;建议收藏~ 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有上千个&#xff0c;全部都很高清&#xff0c;站内可以按标签分类查找…

某医院访问医保系统慢流量分析案例

背景 我们已将NetInside流量分析系统部署到某市人民医院的机房内&#xff0c;使用流量分析系统提供实时和历史原始流量。本次分析重点针对访问外网医保系统性能进行分析&#xff0c;以供安全取证、性能分析、网络质量监测以及深层网络分析。 分析时间 报告分析时间范围为&am…

【Linux】进程间通讯

前提知识 进程间具有独立性 &#xff0c;现在我们要打破独立性&#xff0c;去通讯&#xff0c;所以 通讯的成本一定很高。 又时候又需要多进程协同完成某种业务内容 &#xff0c;例如以前&#xff1a; cat file | grep “hello",这就是两个进程之间的通讯。 通讯的本质就是…

【一文学会MQTT协议和mosquitto】

一文学会MQTT协议和mosquitto 一.、MQTT的基本概念二、mosquittomosquitto基本概念常用API 三、MQTT测试EMQX 一.、MQTT的基本概念 MQTT是一种基于发布/订阅模式的协议&#xff0c;其中发布者发布消息&#xff0c;订阅者订阅感兴趣的主题&#xff08;topic&#xff09;&#x…

QGIS--开发OpenSCENARIO动态场景(二)--安装插件

1.下载并安装ad_map&#xff08;无需构建&#xff09;&#xff1a; 1&#xff09;ad_map插件&#xff1a; https://github.com/carla-simulator/map/releases 下载第一个&#xff1a;ad_map_access_qgis.zip 2&#xff09;导入插件&#xff1a; 从MenuBar的Plugins >…

YOLOv8 更换主干网络之 FasterNet

论文地址:https://export.arxiv.org/pdf/2303.03667v1.pdf 为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。并且,如此低的FLOPS主要…

ThreadLocal InheritableThreadLocal TransmittableThreadLocal的使用以及原理

ThreadLocal 每个线程向ThreadLocal设置值&#xff0c;再取值&#xff0c;实现线程之间的隔离 public class ThreadLocalCase1 {private static ThreadLocal<Integer> threadLocal new ThreadLocal<>();public static void main(String[] args) {Random random …

Postman接口与压力测试实例

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。 1、环境变量和全局变量设置 环境变量可以使用在以下地方&#xff1a; URLURL paramsHeader valuesform-data/url-encoded valuesRaw body contentHelper f…

MySQL学习笔记第一天

第02章 MySQL环境搭建 1.MySQL的卸载 步骤1&#xff1a;停止MySQL服务 在卸载之前&#xff0c;先停止MySQL8.0的服务。按键盘上的“Ctrl Alt Delete”组合键&#xff0c;打开“任务管理器”对话框&#xff0c;可以在“服务”列表找到“MySQL8.0”的服务&#xff0c;如果现…

AIGC: Midjourney和Stable Diffusion在大厂中的应用

AIGC: Midjourney和Stable Diffusion在大厂中的应用和教程​http://www.webhub123.com/#/home/detail?projectHashid51631966&ownerUserid21336964 收录效果如下 登录后即可一键拥挤收藏以下所有文章网址到我的收藏夹&#xff0c;网站帮你简单高效地管理你的网络收藏&…

Memtiter-benchmark源码解析4memtier_benchmark.cpp源代码解读

run_benchmark 程序入口 First , create the cg_thread instances in the vector threads and then call each cg_thread’s prepare() function of them. Subsequently, launch each thread in the vector threads cg_thread m_base event_base_new() // line 528 一个cli…

移动端手机网页适配iPad与折叠屏设备

采用的网页适配方案&#xff1a;移动端页面px布局适配方案&#xff08;viewport&#xff09; 产生此问题的原因 由于手机与平板等设备宽高比差异导致页面展示不全或者功能按钮展示在视口之外点击不到。 简单来说就是我们的页面都是瘦长(即高大于宽)的&#xff0c;而折叠屏等设…

【计算机专业应届生先找培训还是先找个工作过渡一下?】

计算机专业应届生先找培训还是先找个工作过渡一下&#xff1f; 计算机应届生是先培训还是先工作&#xff0c;这个问题应该困扰了很多专业技能一般的同学&#xff0c;尤其是学历方面还没有优势的普通本专科院校。都说技术与学历优秀的人进大厂&#xff0c;技术一般学历优秀的人能…

@ComponentScan自动扫描组件并指定扫描规则

1.使用注解配置包扫描 1.1.创建相关类 分别创建BookDao、BookService、BookServiceImpl以及BookController这三个类&#xff0c;并在这三个类中分别添加Repository、Service、Controller注解 BookDaopackage com.tianxia.springannotation.dao;import org.springframework.s…

【社区图书馆】如何唤醒数学脑

如何唤醒数学脑 内容简介 每个人天生都有数学力&#xff0c;有着内建的“数学式思维模式”&#xff0c;若能有效发挥&#xff0c;就能在学校、职场、人际关系中表现出来&#xff0c;从容不迫地获得更好的效率及成就感。 但这种思维模式会受到周围情境、心理状态等因素的影响&…

思必驰闯关科创板:对标科大讯飞,发展阶段落后逾10年

4月17日&#xff0c;人机对话解决方案提供商——思必驰科技股份有限公司&#xff08;下称“思必驰”&#xff09;已更新提交相关财务资料&#xff0c;根据相关规定&#xff0c;上交所恢复了其发行上市审核。 2022年7月15日&#xff0c;思必驰向科创板递交IPO申请。今年3月底&am…

贵金属期货交易平台排行榜是真的还是假的?如何选择?

贵金属期货交易是一种非常常见的投资形式&#xff0c;其市场容量非常大&#xff0c;因此有各种各样的期货交易平台。这导致许多投资者不知道如何选择这些平台。对于投资者来说&#xff0c;只有选择一个高质量的期货交易平台&#xff0c;他们才能更好地进行后续的交易。如何选择…

BloomFilter在Drois中的应用

1.简介&#xff1a; BloomFilter是一种多哈希函数映射的快速查找算法&#xff0c;它实际上是由一个超长的二进制位数组和一系列的哈希函数组成的。初始时二进制位数组全部为0&#xff0c;当给定一个待查询的元素时&#xff0c;这个元素会被一系列哈希函数计算映射出一系列的值…

【redis】布隆过滤器BloomFitter

【redis】布隆过滤器BloomFitter 文章目录 【redis】布隆过滤器BloomFitter前言一、面试题二、是什么1、设计思想&#xff1a; 本质就是判断具体数据是否存在于一个大的集合当中 三、布隆过滤器特点1、重点 有&#xff0c;是可能有&#xff0c;无是一定无2、小总结 四、原理1、…

Node【包】

文章目录 &#x1f31f;前言&#x1f31f;Nodejs包&#x1f31f;什么是包&#xff1f;&#x1f31f;自定义包&#x1f31f;包配置文件&#x1f31f;示例&#x1f31f;Package.json 属性说明&#x1f31f;语义化版本号&#x1f31f;package.json示例 &#x1f31f;符合CommonJS规…