# DiyFile

![DiyFile](doc/images/diyfile.png)

一款好看的在线文件列表程序,由 Spring Boot 3 和 Vue 驱动。 [![](https://img.shields.io/badge/%E5%BC%80%E5%8F%91%E8%BF%9B%E5%BA%A6-%E5%BC%80%E5%8F%91%E4%B8%AD-brightgreen?style=flat-square)]() [![](https://img.shields.io/github/license/besscroft/diyfile?style=flat-square)](https://github.com/besscroft/diyfile/blob/master/LICENSE) ![GitHub repo size](https://img.shields.io/github/repo-size/besscroft/diyfile?style=flat-square&color=328657) ### 预览 ![DiyFile](doc/images/diyfile-demo.png) [Demo](https://demo.besscroft.com/) ### 文档 [DiyFile 的文档](https://doc.diyfile.besscroft.com/) ,在这里你可以找到大部分问题的解答。 ## 部署 ### 容器化部署 你可以用我打包好的 Docker 镜像进行部署,latest 版本对应最新版本的代码,你也可以根据自己的需求来选择对应的版本。 * 示例命令: ```shell docker run -d --name diyfile \ -p 8080:8080 \ -e SPRING_PROFILE="sqlite" \ -e JAVA_OPTS="-Xms512m -Xmx512m -Duser.timezone=GMT+08 -Dfile.encoding=UTF8" \ -v /root/data:/data \ besscroft/diyfile:latest ``` `-v /root/data:/data \` 是为了将容器内目录映射到宿主机,这样你就可以在宿主机上看到数据库文件了。`:` 号左边的为宿主机目录,右边的为容器内目录。 > 注意,这个镜像是支持 sqlite 数据库版本的镜像,如果你需要使用 mysql,可以 [点击此处](https://doc.diyfile.besscroft.com/diyfile/deploy/backend.html) 查看。 - Docker Compose 示例: ```yaml version: '3' services: diyfile: container_name: diyfile image: besscroft/diyfile:latest ports: - "8080:8080" environment: SPRING_PROFILE: "sqlite" JAVA_OPTS: "-Xms512m -Xmx512m -Duser.timezone=GMT+08 -Dfile.encoding=UTF8" volumes: - /root/data:/data diyfile-web: container_name: diyfile-web image: besscroft/diyfile-web:latest ports: - "80:80" ``` > 注意,请根据实际情况修改配置。比如端口,数据库版本以及其它配置等。 > Docker Compose 示例默认为前后端一起部署了,更多请查看文档!!! | 名称 | 说明 | 默认值 | | ------------- |--------------------------------------------------------------------|--------| | SPRING_PROFILE | 配置文件版本,可选项为 mysql 和 sqlite | sqlite | | FLYWAY_ENABLE | 是否进行数据库自动初始化,只支持 sqlite、mysql 8.x 版本,或者 mariadb 跟 mysql 8.x 对应的版本。 | true | | DOC_ENABLE | api 文档启用 | false | | DOC_UI_ENABLE | swagger ui 启用 | false | > 端口可以自定义,docker 容器内的程序端口为 8080,你可以自定义对应的宿主机的端口,以及网络类型。请注意,容器内连接主机端口,可以使用 ip 172.17.0.1。 ### 代码贡献 [提出新想法 & 提交 Bug](https://github.com/besscroft/diyfile/issues/new) | [Fork & Pull Request](https://github.com/besscroft/diyfile/fork) DiyFile 欢迎各种贡献,包括但不限于改进,新功能,文档和代码改进,问题和错误报告。 ### 在线开发 你可以使用 Gitpod 进行在线开发:

Open in Gitpod

或者克隆到本地开发: ```shell git clone https://github.com/besscroft/diyfile.git ``` ### 前端项目 [diyfile-web](https://github.com/besscroft/diyfile-web) 如果您有任何建议,欢迎反馈! 您可以将服务部署在 `DigitalOcean` ,如果你愿意走我的邀请链接注册,可以获得100美元的信用额度。 DigitalOcean Referral Badge ### 感谢 本项目使用 JetBrains 的开源许可证,基于 IntelliJ IDEA 开发,感谢! ![JetBrains 徽标(主要) logo](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg) ![IntelliJ IDEA logo](https://resources.jetbrains.com/storage/products/company/brand/logos/IntelliJ_IDEA.svg)