Linux Shell 实现一键部署二进制go+caddy+filebrowser

news2024/12/25 9:33:16

 

 

filebrowser

filebrowser 是一个使用go语言编写的软件,功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件,或者是添加删除文件,甚至可以分享文件,是一个很棒的文件管理器,你甚至可以当成一个网盘来使用。总之使用非常简单方便,功能很强大。

caddy 

Caddy 2是一个强大的,企业就绪的开源Web服务器,具有用Go编写的自动HTTPS

go

使用 Go 构建简单、安全、可扩展的系统。

download

 gocaddyfilebrowser
downloaddownloaddownload

创建一键部署脚本

  • 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/releases

caddy 下载
https://github.com/caddyserver/caddy/releases
!

dir=/opt
go_url=https://golang.google.cn/dl/
go_gz=go1.20.3.linux-amd64.tar.gz

caddy_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/Caddyfile

filebrowser_url=https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/
filebrowser_gz=linux-amd64-filebrowser.tar.gz
filebrowser_new=".filebrowser"
filebrowser_data=filebrowser_data

install_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_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
}
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
EOF

systemctl daemon-reload
systemctl enable --now caddy.service

firewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reload

caddy 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"
  }
}
EOF

cat >>/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
EOF

systemctl daemon-reload
systemctl enable --now filebrowser.service

filebrowser 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,建议更改默认密码

进入系统 

语言切换

上传文件或者文件夹

文件共享

复制共享连接测试

 

访问共享,输入密码

点击下载软件 

 

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

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

相关文章

HCIE Datacom认证学什么内容

什么HCIE 什么是HCIE&#xff1f;HCIE的全称是Huawei Certified ICT Expert&#xff08;华为认证ICT技术专家&#xff09;。 华为认证是行业中最严谨的认证&#xff0c;含金量与行业认可度都较高。在众多的IT行业认证中&#xff0c;HCIE被誉为“网络界的博士”。 华为认证HCI…

深度学习 - 41.Word2vec、EGES 负采样实现 By Keras

目录 一.引言 二.实现思路 1.样本构建 2.Word2vec 架构 3.EGES 架构 4.基于 NEG 的 Word2vec 架构 三.Keras 实现 Word2vec 1.样本构建 2.模型构建 3.向量获取 四.keras 实现 EGES 1.样本构建 2.模型构建 3.Dot Layer 详解 3.1 init 方法 3.2 call 方法 3.3 完…

4月18号软件更新资讯合集

ModStartCMS v6.2.0&#xff0c;VIP 权益配置功能、界面 UI 优化升级 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.…

4月19号软件更新资讯合集....

JavaWeb 微服务前后端分离 EurekaEleVue 版 v1.5.0 发布 v1.5.0 更新如下&#xff1a; 1、解决 token 过期无法跳转至登录页的问题&#xff1b; 2、授权服务进行重构与优化&#xff1b; 一款 Java 语言基于 SpringCloud、SpringSecurity、OAuth2、Eureka、Vue、ElementUI、…

Docker实战笔记1-基础

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/130181636 本文出自【赵彦军的博客】 文章目录 官网下载安装安装Docker 镜像镜像分层存储 容器常用命令docker infodocker imagesdocker versiondocker ps &#xff1a;查看容器docker ps -a查看容…

如何检查设置的IP是否有效?Storm proxies动态代理IP好用吗?

检查设置的IP是否有效可以通过以下几种方式&#xff1a; 发起网络请求&#xff1a;可以使用HTTP客户端库&#xff08;例如Python的Requests库&#xff09;或者命令行工具&#xff08;例如curl&#xff09;来发起网络请求&#xff0c;使用设置的IP作为代理IP&#xff0c;然后查看…

读SQL进阶教程笔记12_地址与三值逻辑

1. SQL和数据库都在极力提升数据在表现层的抽象度&#xff0c;以及对用户隐藏物理层的概念 2. 关系模型是为摆脱地址而生的 2.1. “地址”不仅包括指针操作的地址&#xff0c;还包括数组下标等 3. 一个优雅的数据结构胜过一百行杂耍般的代码 3.1. 精巧的数据结构搭配笨拙的…

数据结构入门——顺序表(保姆级教程,增,删,改,查)

1.什么是顺序表 1.顺序表&#xff1a;可动态增长的数组&#xff0c;要求数据是连续存储的 2.顺序表的定义&#xff1a; 静态顺序表&#xff1a;使用定长数组存储元素&#xff08;缺点&#xff1a;小了不够用&#xff0c;大了还浪费&#xff09; 动态顺序表&#xff1a;可根…

744. 寻找比目标字母大的最小字母

给你一个字符数组 letters&#xff0c;该数组按非递减顺序排序&#xff0c;以及一个字符 target。letters 里至少有两个不同的字符。 返回 letters 中大于 target 的最小的字符。如果不存在这样的字符&#xff0c;则返回 letters 的第一个字符。 示例 1&#xff1a; 输入: le…

3. VBA术语

在本章中&#xff0c;将介绍常用的Excel VBA术语。这些术语将在很多的模块中使用&#xff0c;因此理解其中的每一个术语都很重要。 3.1 模块 模块是编写代码的区域。如下图中&#xff0c;这是一个新的工作簿&#xff0c;因此没有任何模块。 要插入模块&#xff0c;请导航到插…

Cell--瘤内微生物将开辟新疗法

2023年4月13日&#xff0c;弗雷德哈钦森癌症中心的微生物学家Susan Bullman教授在《Cell》杂志发表了关于肿瘤内微生物群的评论。 微生物群是肿瘤微环境的一个组成部分 在患者的肿瘤内部&#xff0c;恶性细胞处在一个复杂的生态系统中&#xff0c;周围是正常细胞的网络&#xf…

socks5与http代理如何转化?stormproxies怎么解决?

Socks5和HTTP代理之间可以通过一些工具或软件进行转化&#xff0c;具体的方法如下&#xff1a; 使用ProxyCap&#xff1a;ProxyCap是一款常用的代理工具&#xff0c;可以将Socks5代理转化为HTTP代理。在ProxyCap中设置Socks5代理的服务器地址和端口&#xff0c;然后在本地设置H…

Java应用高性能的方法和思路

Java应用高性能的方法和思路 目录概述需求&#xff1a; 设计思路实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge …

软件测试基础概念

1.软件测试的生命周期 需求分析-》测试计划-》测试设计-》测试开发-》测试执行-》测试评估 需求分析&#xff1a;分析需求是否合理和正确 计划:确定软件由谁测试&#xff1f; 什么时候开始测试&#xff0c;什么时候结束测试 测试那些模块 测试设计和测试开发阶段&#xff1a;…

4.19~20(总结)

项目越到后面&#xff0c;推进越难&#xff0c;已经到了发送消息这里了&#xff0c;这个做完&#xff0c;基本上也就完成得七七八八了&#xff0c;后面只需要优化了&#xff0c;但是现在卡在这里就还是有点难搞。 首先&#xff0c;我的界面已经成这样了。 我的打算是这样可以搜…

C++基础知识-2

本期我们接着来讲C的基础知识&#xff0c;没有看过的朋友可以先看看上一期 (16条消息) C基础知识-----命名空间_KLZUQ的博客-CSDN博客 目录 4.缺省参数 5.函数重载 6.引用 7.内联函数 8.auto关键字&#xff08;C11&#xff09; 9. 基于范围的for循环(C11) 10.指针空值nul…

算法记录 | Day37 贪心算法

738.单调递增的数字 思路&#xff1a; 1.一旦出现strNum[i - 1] > strNum[i]的情况&#xff08;非单调递增&#xff09;&#xff0c;首先想让strNum[i - 1]–&#xff0c;然后strNum[i]给为9&#xff0c;这样这个整数就是89&#xff0c;即小于98的最大的单调递增整数。 2…

初始VUE

目录 什么是vue vue的特点 前置js基础知识 vue2 安装vue devtools 搭建开发环境 Vue对象的el及data写法 el的处理 data的处理 特点 什么是js表达式&#xff0c;js代码&#xff08;语句&#xff09; vue脚手架&#xff08;vue cli&#xff09; 使用说明 具体步骤 …

瑞吉外卖:软件开发基础和项目介绍

文章目录 软件开发基础软件开发流程角色分工软件环境 瑞吉外卖项目介绍项目介绍开发流程技术选型功能架构角色 软件开发基础 软件开发流程 需求分析&#xff1a;产品原型&#xff08;大体结构、页面、功能等&#xff09;和需求规格说明书设计&#xff1a;产品文档、UI界面设计…

计算机组成原理——第五章中央处理器(上)

半生风雨半生伤&#xff0c;半醉半醒半心凉 文章目录 前言5.1 CPU的功能和基本结构5.2 指令周期的数据流5.3.1 单总线结构5.3.2 专用通路结构 前言 之前我们就说过CPU主要包括两个部分&#xff0c;运算器和控制器&#xff0c;运算器主要是实现算数运算.逻辑运算&#xff0c; 运…