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 总结排查 在上篇文章中,我们介绍了 链接器基本概念,我们知道所有的应用程序否是连接器将所…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...