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/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,建议更改默认密码
进入系统
语言切换
上传文件或者文件夹
文件共享
复制共享连接测试
访问共享,输入密码
点击下载软件