Hellohao图像托管程序(图床)这是一个由JAVA语言编写SpringBoot框架开发的开源图像托管程序。具备多对象存储源对接,采用前后端分离
式设计的一款专门托管图像的程序,支持多种格式的图像 多功能的图床系统。该程序支持除了web端
之外,同时支持客户端(win/mac)
,移动端(小程序)
等常用全平台支持。

存储源支持:
开源版:本地
,阿里OSS
,又拍USS
,七牛KODO
,腾讯COS
,网易NOS
,,U-File
FTP
Core版:本地
,阿里OSS
,又拍USS
,七牛KODO
,腾讯COS
,网易NOS
,,U-File
FTP
,Backblaze(B2)
,百度云BOS
,青云Qingstor
,Ucloud US3
,Minio
,AWS S3
等通用S3协议
主要功能
- 全端支持,不限于(
web端
/桌面端Windows/Mac
/移动端小程序
) - 前后端分离式架构设计,部署更方便
- 个人相册浏览,图像详细资料展示卡片
- 支持 图片拖拽、截图直接(Ctrl+V)
- 支持URL地址批量上传
- 一键复制嵌入式链接代码,也可以自定义嵌入式代码格式
- 对接邮箱服务,注册/找回密码等功能
- 违规图像实时多线程鉴别
- 图片定期暂存
- 图片名称记录/修改
- 支持常见多种图像格式如:
webp
,ico
,svg
等等 - 支持画廊批量分享模式
- 账户图像查重上传
- 配置IP黑名单操作
- 站点上传可控API接口
- 设置用户可用容量
- 账户扩容码批量生成
- 细致的上传分发配置,分发群组功能
- 游客、用户的上传管理
- 图像直链二维码生成
运行环境
- JDK 1.8
- MySQL5.5+
- Redis
所用技术
前端主要技术
- vue
- iview
- vuex
- axios
后端主要技术
- SpringBoot
- MyBatis
- MySQL
- Maven
- JWT认证
- Shiro
部署
部署方式分为两种: 1.一键脚本部署:
Tbed-together.zip
(操作简单) 2.自定义部署 前后端分离式部署:Tbed.zip
(拓展性高适合有一定java前后端分离部署经验的人) 需要注意:一键部署的端口为:服务器:10088
前端:10089
安装前注意
搭建方式分为两种:
- 一键安装包(强烈推荐*)一键安装包已经整合JDK+Redis环境,不会调用和影响系统的环境配置。安装者只需准备MySQL数据库和Nginx就可以轻松安装程序。优点:深度优化,大大减少内存占用,支持一键更新/一键重启等多个效率功能。
- 手动分离安装包具备更高的自定义部署性适合对SpringBoot原生安装和Linux服务器有一定了解的人参考使用,安装者需要提前自行准备
JDK1.8
、MySQL5.6+
、Redis
、Nginx
的环境,并且需要手动修改配置文件进行相关配置。安装过程繁琐复杂,不推荐使用。
先自行准备环境:Mysql5.6+
,JDK1.8
,Nginx
一键安装程序包无需自备JDK和Redis环境,程序已全部集成,不会使用系统JDK和Redis环境。
数据库名必须为:tbed,否则程序启动报错
域名准备
架构展示简易图

程序采用前后端分离式架构开发,所以需要提前准备两个同主域的域名。
受Chrome新版内核的安全限制,切记两个域名要保持同主域,如果域名加证书,前后端域名要加都加,要么都不加!
如:
前端域名:aaa.example.com(此域名是你程序页面的访问域名)
如果是采用一键安装包方式,前端域名反向代理的端口为:10089
如采用手动分离式安装方式,则自行根据自己定义的端口进行反向代理
后端域名:bbb.example.com(此域名是供前端页面调用后端接口所用)
如果是采用一键安装包方式,后端域名反向代理的端口为:10088
如采用手动分离式安装方式,则自行根据自己定义的端口进行反向代理
一键安装启动(推荐)
- 下载程序包:Tbed一键安装包
Tbed-together.zip
下载源为Github,具体下载方式因人而异,可手动下载解压操作,也可以自行提取附件的直连使用wget方式直接下载到服务器上。#程序包内目录结构(一键部署包切勿自行修改,出现问题后果自负) ├──tbed.sql └──tbed # 程序包目录 此目录移到服务器上 ├─bin ├─conf ├─lib ├─logs ├─server #服务端所在目录 │ ├─jre │ ├─redis │ ├─template │ ├─application.properties #程序配置文件 自动部署切勿修改 │ └─Tbed.jar #程序相关文件 │ ├─webapps #前端所在目录 │ ├─css │ ├─fonts │ ├─hellohao │ ├─img │ ├─js │ ├─WEB-INF │ ├─favicon.ico #前端站点图标 │ └─index.html #前端站点首页 可配置SEO和js统计 │ ├── start.sh # 启动脚本 └── stop.sh # 停止脚本
- 创建数据库
tbed
(字符集:utf8
排序规则:utf8_general_ci
) - 将程序整合包解压后目录里的
tbed.sql
导入步骤二新建的数据库中。 - 将解压目录下的
tbed
目录上传到服务器上,修改目录下start.sh
和stop.sh
权限为777
- 运行
strat.sh
脚本部署并启动:./start.sh
- 服务端域名:你购买Core版本时所绑定的后端api域名,并非你网站的前端访问域名。(Nginx反代10088的域名)
- 前端页面地址:你网站的前端访问域名(Nginx反代10089的域名)
- 防火墙放行 服务端:
10088
和前端:10089
两个端口(一键安装的程序包不支持修改端口)。放行后自行Nginx反向代理域名即可。管理员默认账号:admin
密码:admin
手动分离安装包(不推荐)
自定义部署修改行高,任意修改端口,并且可前后端分离式部署(比如:服务端部署在服务器A,前端部署在服务器B)
当然 你想部署在同一台服务器上也是可以的,任你发挥。
提前安装好JDK1.8
环境:
yum install java-1.8.0-openjdk*
- 下载程序包:Tbed手动分离安装包
Tbed-separate.zip
#程序包内目录结构 ├──tbed.sql ├── server #服务端所在目录 │ ├── application.properties #服务端配置文件 │ └── Tbed.jar # 程序文件 │ └───web #前端页面所在目录 ├─start.sh #前端服务启动脚本 ├─stop.sh #前端服务停止脚本 ├─bin ├─conf │ └─server.xml #前端页面端口相关配置 │ ├─lib ├─logs ├─webapps #前端页面目录 │ ├─css │ ├─fonts │ ├─hellohao │ │ └─config.json #域名配置文件 │ │ │ ├─img │ ├─js │ ├─WEB-INF │ ├─favicon.ico #前端站点图标 │ └─index.html #前端站点首页 可配置SEO和js统计 │ │ └─work
- 创建数据库
tbed
(字符集:utf8
排序规则:utf8_general_ci
) - 将程序包解压后目录里的
tbed.sql
导入步骤二新建的数据库中。 - 修改
server/application.properties
配置文件中一下代码的位置,自行替换为你的信息:数据库信息、用户key、Redis信息等。修改数据库链接信息等信息。#数据库账号 spring.datasource.username=tbed #数据库密码 spring.datasource.password=123456 #数据库链接地址 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tbed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 #端口 server.port=10088 # redis所在的服务器IP spring.redis.host= 127.0.0.1 # redis端口 spring.redis.port=6379 # redis密码 无密码则留空 spring.redis.password= # redis设置最大连接数,0为无限 spring.redis.pool.max-active=8 # 你的前端域名 需要带协议头http(s):// CROS_ALLOWED_ORIGINS=http://127.0.0.1:10089
- 上传文件把压缩包中整个
/server
文件夹上传到服务器中的任意目录(其他目录也行,这里我只是举例子)注意:上传完毕后,需要吧server/hellohao
文件的权限修改为777
- 部署命令进入上传的目录:
cd server
执行部署命令:java -jar Tbed.jar
Nginx把服务端的端口反向代理到你后买程序时所绑定的域名即可,这样服务端就部署完毕了。
前端页面部署
- 把程序包整个
/web
目录上传到你的服务器。 - 修改
web/start.sh
和web/stop.sh
权限为777
- 修改
web/webapps/hellohao/config.json
文件中的域名为你的服务端域名{ "serverHost": "http://api.example.com" }
- 运行
web
目录下的start.sh
即可运行 默认前端程序端口:10089
./start.sh
- 到此处前端服务也就部署完毕了。同样使用Nginx反向代理到你的前端域名即可访问了。注意,绑定的前端域名,需要和
服务器配置文件
中的CROS_ALLOWED_ORIGINS
属性保持一致,协议头也要保持一致。
管理员默认账号:
admin
密码:admin