Linux Shell 实现一键部署二进制go+caddy+filebrowser
filebrowser
filebrowser 是一个使用go语言编写的软件,功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件,或者是添加删除文件,甚至可以分享文件,是一个很棒的文件管理器,你甚至可以当成一个网盘来使用。总之使用非常简单方便,功能很强大。
caddy
Caddy 2是一个强大的,企业就绪的开源Web服务器,具有用Go编写的自动HTTPS
go
使用 Go 构建简单、安全、可扩展的系统。
download
go | caddy | filebrowser |
download | download | download |
创建一键部署脚本
- go 安装目录 /opt/go
- caddy 安装目录 /opt/caddy
- caddy 端口80
- caddy 网站位置目录,/var/www/html
- filebrowser 安装目录/opt/.filebrowser 隐藏目录
- filebrowser 数据存储目录opt/filebrowser_data
- filebrowser 默认用户名密码 admin/admin
- filebrowser 端口 82 caddy 80 端口反向代理,82 不允许直接访问
vi /go_caddy_filebrowser_install.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/04/20<<!
██████╗ ██████╗
██╔════╝ ██╔═══██╗
██║ ███╗██║ ██║
██║ ██║██║ ██║
╚██████╔╝╚██████╔╝╚═════╝ ╚═════╝
!<<!
国内代理地址
https://goproxy.cn/下载go源码包
https://golang.google.cn/dl/go官网,需要梯子
https://golang.org/文件管理器
https://filebrowser.org/installation
https://github.com/filebrowser/filebrowser/releasescaddy 下载
https://github.com/caddyserver/caddy/releases
!dir=/opt
go_url=https://golang.google.cn/dl/
go_gz=go1.20.3.linux-amd64.tar.gzcaddy_url=https://github.com/caddyserver/caddy/releases/download/v2.6.4/
caddy_gz=caddy_2.6.4_linux_amd64.tar.gz
caddy_new=caddy
caddy_Caddyfile=/etc/caddy/Caddyfilefilebrowser_url=https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/
filebrowser_gz=linux-amd64-filebrowser.tar.gz
filebrowser_new=".filebrowser"
filebrowser_data=filebrowser_datainstall_go (){
#此目录用于此处go项目开发查询
mkdir -p /opt/go_path#安装go 依赖环境和基础工具包
yum install -y gcc gcc-c++ glibc-devel git make cmake zip gzip bzip2 lrzsz wget nmap-ncat net-tools#download go
wget -N -P $dir $go_url/$go_gz
tar -zxf $dir/$go_gz -C $dir#go环境变量设置
echo 'export GO111MODULE=on' >> /etc/profile
echo 'export GOROOT=/opt/go' >> /etc/profile
echo 'export GOPATH=/opt/go_path' >> /etc/profile
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> /etc/profile
echo "export GOPROXY=https://goproxy.cn" >> /etc/profile
source /etc/profile#查看环境变量是否设置
echo $GOROOT
echo $GOPATH#查看go 版本
go version | awk '{print $3}'
}install_caddy (){
wget -N -P $dir $caddy_url/$caddy_gz
mkdir -p $dir/$caddy_new
tar -zxf $dir/$caddy_gz -C $dir/$caddy_new
ln -s $dir/$caddy_new/caddy /usr/bin/
ln -s $dir/$caddy_new/caddy /usr/local/bin/mkdir -p /var/www/html
mkdir -p /etc/caddy/
cat >>$caddy_Caddyfile<<EOF
:80 {
# Set this path to your site's directory.
root * /var/www/html# Enable the static file server.
file_serverencode gzip# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080reverse_proxy localhost:82# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
EOF#测试页面
echo "<h1>Hello World</h1>" > /var/www/html/index.html#创建caddy用户用户组
useradd -r -s /usr/sbin/nologin caddy#Caddy服务创建存放证书的目录
mkdir /opt/caddy/ssl/
chown -R caddy:root /opt/caddy/ssl/
chmod o-rwx /opt/caddy/ssl/#创建启动服务脚本
cat >>/usr/lib/systemd/system/caddy.service<<EOF
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable --now caddy.servicefirewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reloadcaddy version | awk '{print $1}'
}install_filebrowser (){
wget -N -P $dir $filebrowser_url/$filebrowser_gz
mkdir -p $dir/$filebrowser_new
mkdir -p $dir/$filebrowser_data
tar -zxf $dir/$filebrowser_gz -C $dir/$filebrowser_new
ln -s /opt/.filebrowser/filebrowser /usr/local/bin/cat >>/opt/.filebrowser/config.json<<EOF
{"port": 82,"root": "/","address":"0.0.0.0","database":"/opt/.filebrowser/filebrowser.db","log":"/var/log/filebrowser.log","auth": {"method": "json","users": [{"username": "admin","password": "admin"}],"default_user": "admin","json": "/opt/.filebrowser/users.json"}
}
EOFcat >>/usr/lib/systemd/system/filebrowser.service<<EOF
[Unit]
Description=Filebrowser
After=network.target[Service]
User=root
Group=root
ExecStart=/usr/local/bin/filebrowser -r /opt/filebrowser_data -c /opt/.filebrowser/config.json
Restart=always[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable --now filebrowser.servicefilebrowser version | awk '{print $3}'<<!
默认用户名密码,建议重置密码
admin/admin创建配置数据库:
filebrowser -d /opt/.filebrowser/filebrowser.db config init设置监听地址:
filebrowser -d /opt/.filebrowser/filebrowser.db config set --address 0.0.0.0设置监听端口:
filebrowser -d /opt/.filebrowser/filebrowser.db config set --port 83设置语言环境:
filebrowser -d /opt/.filebrowser/filebrowser.db config set --locale zh-cn设置日志位置:
filebrowser -d /opt/.filebrowser/filebrowser.db config set --log /var/log/filebrowser.log添加一个用户:
filebrowser -d /opt/.filebrowser/filebrowser.db users add root password --perm.admin
!
}man () {
install_go
install_caddy
install_filebrowser
}man
执行安装
sh /go_caddy_filebrowser_install.sh
访问页面
- http://You_ip
- 默认用户名密码admin/admin,建议更改默认密码
进入系统
语言切换
上传文件或者文件夹
文件共享
复制共享连接测试
访问共享,输入密码
点击下载软件
相关文章:

Linux Shell 实现一键部署二进制go+caddy+filebrowser
filebrowser filebrowser 是一个使用go语言编写的软件,功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件,或者是添加删除文件,甚至可以分享文件,是一个很棒的文件管理器,你甚至可以当成一个网盘来使用。…...

无人机巡检智能一体化解决方案
随着无人机技术的不断发展,无人机应用领域已经越来越生活化,其产品不仅在军事、商业等领域得到了广泛应用,也在普通人的生活中得到了广泛应用。无人机的自动巡检是无人机应用的一个重要方向,具有广阔的发展前景,本文将…...
2023-2029全球粘结剂喷射技术行业调研及趋势分析报告
2022年全球粘结剂喷射技术市场规模约5.8亿元,2018-2022年年复合增长率CAGR约为 %,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近12亿元,未来六年CAGR为11.3%。 本文调研和分析全球粘结剂喷射技术发展现状及未来趋势&a…...

Python每日一练(20230420)
目录 1. 数组逐位判断 🌟 2. 交错字符串 🌟🌟 3. 二进制求和 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 数组逐位判断 比如…...

【社区图书馆】读《悲惨世界》有感
文章目录 故事简介经典重现价值取向我的思想 故事简介 《悲惨世界》是一部充满了悲剧的小说,故事首先由教堂展开,然后主要围绕着主人公冉阿让进行一系列的生动形象的描写,讲述了冉阿让悲惨的一生。 主人公冉阿让是一个诚实、善良的工人&…...

随机蛙跳算法 (SFLA)简单实现(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨💻4 Matlab代码 💥1 概述 随着计算机科学与技术的迅速发展,人类生存空间的扩大以及认识与改造世界范围的拓宽,人们对科学技术提出了新的和更高的要求,其…...

【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令
【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令 目录 【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令 一、上讲回顾 二、ROS2核心命令讲解 1、daemon-各种守护进程相关的子命令 2、node-各种节点进程相关的子命令 3、pkg-各种包进程相关的子命令 4、run运行特定软…...

如何训练个人的ChatGpt4
如何在自己的计算机上安装类似 ChatGPT 的个人 AI 并在没有互联网的情况下运行它 个人 AI 的“第一台 PC”时刻 这是个人AI的“第一台PC”时刻,随之而来的是限制,就像在车库里生产第一台Apple 1一样。你是先驱。今天,任何人都可以使用私人和…...

Rabbit与springboot整合-1
目录 1、整体结构 2、pom引入 3、配置文件 4、代码 公共类 controller类 JSON转换类 监听-接收发送消息类 1、整体结构 2、pom引入 <!--rabbitmq--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-st…...

项目沟通管理5大技巧 第4个很重要
1、充分使用twitter管理沟通模型 项目沟通会议可以充分使用witter的管理沟通模型,提高会议沟通效率。使用此模型,主要是有三步: 第一步:倾听,项目经理需要保持中立的立场,不先表态,让团队成员畅…...

vector(入门知识点)
目录 vector的介绍 编辑 例:遍历 拷贝: 初始化: 反向迭代器: 扩容: insert与erase vector的介绍 例:遍历 拷贝: 初始化: (10个1) vector<int>注意…...
成人高考专业怎么选?看这三点
专业选得好,以后学习、考试和就业都会走得更加顺畅。 想简单拿个大专或者本科学历文凭,最好选择容易毕业的,比如工商管理、行政管理文史类专业,相对简单容易。 为了满足考证需要的,选对口的专业,比如要考一…...

设计模式:UML中的类图(6种关系)
一.UML图介绍 统一建模语言是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 二.类图…...

00后卷王的自述,我真有同事口中说的那么卷?
前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从14k涨到了20k,对于工作都还没几年的我来说,还是比较满意的,毕竟一些工作5、6年的可能还没我高。 我可能就是大家口中的卷王,感觉自己年轻…...

VS2022配置OpenGL+GLAD
Glew(The OpenGL Extension Wrangler Library)是对底层OpenGL接口的封装,可以让你的代码跨平台。Glad与Glew作用相同,可以看作它的升级版。 Freeglut(OpenGL Utility Toolkit)主要用于创建并管理窗口和Ope…...
javascript for循环的定义
循环代码可以执行指定的次数 不同类型的循环: javascript支持不同类型的循环 for-循环代码块的一定次数 for/in-循环遍历对象的属性 while-当指定的条件为true时循环指定的代码块 do/while-当指定的条件为true时循环指定的代码块 for循环的语法: …...
【安全与风险】安全研究的新课题
安全研究的新课题 第一部分 主题概述和普适计算目的两种类型的研究人员从事安全和隐私研究关注重点更大的愿景:普适计算什么是普适/泛在计算?普及计算推动者第一个推动者:传感器/执行器例1:无线电传感器例2:RFIDs(“智能标签”)例3:Crowdsensing:实现大规模泛在感知 第二个推动…...

4核8G云服务器腾讯云CVM S5和轻量应用服务器性能差异?
腾讯云4核8G云服务器可以选择轻量应用服务器或CVM云服务器标准型S5实例,轻量4核8G12M服务器446元一年,CVM S5云服务器935元一年,相对于云服务器CVM,轻量应用服务器性价比更高,轻量服务器CPU和CVM有区别吗?性…...

【对比】文心一言对飚ChatGPT实操对比体验
前言 🍊缘由 百度【文心一言】体验申请通过 本狗中午干饭时,天降短信,告知可以体验文心一言,苦等一个月的实操终于到来。心中这好奇的对比心理油然而生,到底是老美的【ChatGPT】厉害,还是咱度娘的【文心一…...

C++:Article:链接器(二):符号决议
链接器 1. C源文件都有些什么1.1 . 目标文件里有什么 2. 符号表 Symbol table2.1. 符号表的位置2.2. 符号的决议2.3. 符号决议过程 3. 实例说明3.1. 意外出现3.2 总结排查 在上篇文章中,我们介绍了 链接器基本概念,我们知道所有的应用程序否是连接器将所…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...