From 40ca8980fae749830a41bd63850b7ee2c7a7b316 Mon Sep 17 00:00:00 2001 From: okxlin Date: Sun, 10 Sep 2023 22:55:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0filecodebox=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/filecodebox/README.md | 266 +++++++++++++++++++++++ apps/filecodebox/beta/.env.sample | 3 + apps/filecodebox/beta/data.yml | 17 ++ apps/filecodebox/beta/docker-compose.yml | 18 ++ apps/filecodebox/data.yml | 20 ++ apps/filecodebox/logo.png | Bin 0 -> 7045 bytes 6 files changed, 324 insertions(+) create mode 100644 apps/filecodebox/README.md create mode 100644 apps/filecodebox/beta/.env.sample create mode 100644 apps/filecodebox/beta/data.yml create mode 100644 apps/filecodebox/beta/docker-compose.yml create mode 100644 apps/filecodebox/data.yml create mode 100644 apps/filecodebox/logo.png diff --git a/apps/filecodebox/README.md b/apps/filecodebox/README.md new file mode 100644 index 00000000..17f3b2ba --- /dev/null +++ b/apps/filecodebox/README.md @@ -0,0 +1,266 @@ +# 使用说明 + +- 后端地址:`/#/admin` + +- 后台密码:`FileCodeBox2023` + +# 原始相关 +*** +
+

文件快递柜-轻量

+

FileCodeBox-Lite

+

匿名口令分享文本,文件,像拿快递一样取文件

+

交流Q群:739673698,欢迎各位集思广益,项目构思重构中

+
+ +![banner](https://fastly.jsdelivr.net/gh/vastsa/FileCodeBox@V1.6/static/banners/img_1.png) + +--- + +[简体中文](https://github.com/vastsa/FileCodeBox/blob/master/readme.md) | [English](https://github.com/vastsa/FileCodeBox/blob/master/readme_en.md) + +## 主要特色 + +- [x] 轻量简洁:Fastapi+Sqlite3+Vue2+ElementUI +- [x] 轻松上传:复制粘贴,拖拽选择 +- [x] 多种类型:文本,文件 +- [x] 防止爆破:错误次数限制 +- [x] 防止滥用:IP限制上传次数 +- [x] 口令分享:随机口令,存取文件,自定义次数以及有效期 +- [x] 国际化:支持中文和英文 +- [x] 匿名分享:无需注册,无需登录 +- [x] 管理面板:查看所有文件,删除文件 +- [x] 一键部署:docker一键部署 +- [x] 自由拓展:S3协议、本地文件流,可根据需求在storage文件中新增存储引擎 +- [x] 简单明了:适合新手练手项目 + +## 部署方式 + +### Docker一键部署 + +#### 2.0版本,开发中 + +默认信息 + +后端地址:`/#/admin` + +后台密码:`FileCodeBox2023` + +AMD & ARM + +一键安装 + +```bash +docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta + +``` + +一键更新 + +```bash +docker pull lanol/filecodebox:beta && docker stop filecodebox && docker rm filecodebox && docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta +``` + +#### 1.6版本AMD + +```bash +docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:latest +``` + +#### 1.6版本ARM + +```bash +docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:arm +``` + +### 宝塔部署 + +https://www.yuque.com/lxyo/work/lc1oe0xqk8t9b976 + +### 更新方式 + +```bash +// 更新 +docker pull lanol/filecodebox:beta +// 停止容器并删除 +docker stop filecodebox && docker rm filecodebox +// 重新运行容器 +docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:latest +``` + +### 1.6版本注意 + +这一版改变比较大,如果出现问题可以尝试清空/opt/FileCodeBox目录,有问题欢迎反馈留言 +注意,如果是第一次安装,请查看docker日志获取初始密码和后台地址,参考指令 +后台本地文件列表,需要将服务器文件移动至目录/opt/FileCodeBox/data/locals,这样就可以显示了。 + +```bash +docker logs filecodebox + +``` + +### 其他方式 + +仅供参考,历史版本->[部署文档](https://www.yuque.com/lxyo/work/zd0kvzy7fofx6w7v) + +## 预览 + +### 例站 + +[https://share.lanol.cn](https://share.lanol.cn) + +### 暗黑模式 + + + + + + + +
+寄文件 + + +寄文件 + +
+ +### 寄件 + + + + + + + + + +
+寄文件 + +寄文本 +
+寄文本 +
+ +### 取件 + + + + + + + + + +
+取件 + +取件码错误 +
+取文件 +
+ +### 管理 + + + + + + + + + +
+admin + +admin +
+admin +
+ +## 配置文件(1.7及以下版本才需要) + +如果需要修改配置,可以将该文件放在`/opt/FileCodeBox/`目录下,并命名为`.env`,然后重启容器即可。 +如果不是Docker,则需要在项目同目录下新建一个`data`文件夹,然后在创建`.env`文件 + +```dotenv +# 端口 +PORT=12345 +# Sqlite数据库文件 +DATABASE_URL=sqlite+aiosqlite:///database.db +# 静态文件夹 +DATA_ROOT=./static +# 静态文件夹URL +STATIC_URL=/static +# 开启上传 +ENABLE_UPLOAD=True +# 错误次数 +ERROR_COUNT=5 +# 错误限制分钟数 +ERROR_MINUTE=10 +# 上传次数 +UPLOAD_COUNT=60 +# 上传限制分钟数 +UPLOAD_MINUTE=1 +# 删除过期文件的间隔(分钟) +DELETE_EXPIRE_FILES_INTERVAL=10 +# 管理地址 +ADMIN_ADDRESS=admin +# 管理密码 +ADMIN_PASSWORD=admin +# 文件大小限制,默认10MB +FILE_SIZE_LIMIT=10 +# 网站标题 +TITLE=文件快递柜 +# 网站描述 +DESCRIPTION=FileCodeBox,文件快递柜,口令传送箱,匿名口令分享文本,文件,图片,视频,音频,压缩包等文件 +# 网站关键词 +KEYWORDS=FileCodeBox,文件快递柜,口令传送箱,匿名口令分享文本,文件,图片,视频,音频,压缩包等文件 +# 存储引擎 +STORAGE_ENGINE=filesystem +# 如果使用阿里云OSS服务的话需要额外创建如下参数: +# 阿里云账号AccessKey +KeyId=阿里云账号AccessKey +# 阿里云账号AccessKeySecret +KeySecret=阿里云账号AccessKeySecret +# 阿里云OSS Bucket的地域节点 +OSS_ENDPOINT=阿里云OSS Bucket的地域节点 +# 阿里云OSS Bucket的BucketName +BUCKET_NAME=阿里云OSS Bucket的BucketName +``` + +## 状态 + +![Alt](https://repobeats.axiom.co/api/embed/7a6c92f1d96ee57e6fb67f0df371528397b0c9ac.svg "Repobeats analytics image") + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=vastsa/FileCodeBox&type=Date)](https://star-history.com/#vastsa/FileCodeBox&Date) + +## 赞赏 + + + + + + +
+支付宝 +支付宝 + +微信 +微信 +
+ +## 常见问题 + +1. 413 Request Entity Too Large + Nginx限制: + 找到自己主机的nginx.conf配置文件,打开 + 在http{}中加入 client_max_body_size 10m; + 然后重启nginx + +## 免责声明 + +本项目开源仅供学习使用,不得用于任何违法用途,否则后果自负,与本人无关。使用请保留项目地址谢谢。 diff --git a/apps/filecodebox/beta/.env.sample b/apps/filecodebox/beta/.env.sample new file mode 100644 index 00000000..be23ecc7 --- /dev/null +++ b/apps/filecodebox/beta/.env.sample @@ -0,0 +1,3 @@ +CONTAINER_NAME="filecodebox" +PANEL_APP_PORT_HTTP="40157" +DATA_PATH="./data" diff --git a/apps/filecodebox/beta/data.yml b/apps/filecodebox/beta/data.yml new file mode 100644 index 00000000..9435884d --- /dev/null +++ b/apps/filecodebox/beta/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 40157 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text diff --git a/apps/filecodebox/beta/docker-compose.yml b/apps/filecodebox/beta/docker-compose.yml new file mode 100644 index 00000000..cc3ba073 --- /dev/null +++ b/apps/filecodebox/beta/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3' +services: + filecodebox: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:12345" + volumes: + - "${DATA_PATH}:/app/data" + image: lanol/filecodebox:beta + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/filecodebox/data.yml b/apps/filecodebox/data.yml new file mode 100644 index 00000000..901b4ca4 --- /dev/null +++ b/apps/filecodebox/data.yml @@ -0,0 +1,20 @@ +name: 文件快递柜-轻量 (FileCodeBox-Lite) +tags: + - 工具 +title: 匿名口令分享文本,文件,像拿快递一样取文件 +type: 工具 +description: 匿名口令分享文本,文件,像拿快递一样取文件 +additionalProperties: + key: filecodebox + name: 文件快递柜-轻量 (FileCodeBox-Lite) + tags: + - Tool + shortDescZh: 匿名口令分享文本,文件,像拿快递一样取文件 + shortDescEn: Anonymous Passcode Sharing Text, Files, Like Taking Express Delivery for Files + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://share.lanol.cn + github: https://github.com/vastsa/FileCodeBox + document: https://github.com/vastsa/FileCodeBox diff --git a/apps/filecodebox/logo.png b/apps/filecodebox/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1313c0a1730bc3a3a60879da88ea085ea9d65d GIT binary patch literal 7045 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 literal 0 HcmV?d00001