> 文章列表 > Linux Shell 实现一键部署二进制go+caddy+filebrowser

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

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

进入系统 

语言切换

上传文件或者文件夹

文件共享

复制共享连接测试

 

访问共享,输入密码

点击下载软件