一个新的现代化博客系统.
Bloger 是一个前后端分离的博客系统, 这是博客系统的后端, 前端 在这里. 后端使用 Kotlin 开发, 并结合了 Spring Boot, Spring WebFlux, Spring Security, Kotlin Coroutines等, 使用 MongoDB 持久化数据. 它不仅仅是一个博客系统, 也是一个 Kotlin + Spring WebFlux + Kotlin Coroutines 的示例程序. 更多 Spring 对 Kotlin 的支持, 可以看这里.
- 快速开发, 可以通过 Docker Compose 和 Google Jib 快速部署
- 简单使用, UI美观
- 更多先进的语言特性, Kotlin & Coroutines, Spring WebFlux 等
推荐使用 Docker Compose 部署, deploy 中包含所需的 compose 文件, 另外为了保证安全性, 在启动前先修改 application-compose.yml 中的 secret,
jwt:
secret: yourcustomsecret -> 修改 yourcustomsecret
启动
docker-compose up -d
停止
docker-compose stop
更多 Docker Compose 的使用, 请看文档.
如果你想构建自己的 Docker 镜像, 推荐使用 Google Jib, 项目中已经使用了
Jib Gradle 插件.
构建本地镜像,
./gradlew jibDockerBuild --image=IMAGE -xtest
构建镜像并推送到 docker hub,
./gradlew jib --image=IMAGE -x test
要注意一点, 通过 gradle jib
构建镜像时并不会生成本地镜像, 而是生成 image layer, 这些 layer 在 build/jib-cache中,
如果要构建本地镜像, 请使用 gradle jibDockerBuild
. 另外还有一点,
push 使用的认证方法是 Docker Credential Helpers, push 前请先配置 Docker Credential Helpers,
或者修改 build.gradle.kts 认证方式为 auth,
jib {
// from
to {
// image
auth {
username = USERNAME
password = PASSWORD
}
}
}
更多 Google Jib 使用, 请参考Jib, jib-gradle-plugin.
或者也可以不使用 Jib 构建, 这里提供了用来构建镜像的 Dockerfile, 使用 docker 命令构建并推送到 hub,
gradle clean build -xtest
mkdir -p build/dependency && (cd build/dependency || exit; jar -xf ../libs/*.jar)
sudo docker build -t IMAGE .
sudo docker push IMAGE
不建议使用 java
命令直接启动, 如果是这样, 你需要重新构建前端或者通过代理服务器比如 Nginx 转发请求.
系统会在第一次启动后创建账户, 用户名和密码会打印在日志中, 输出的格式类似于
Initial user: [ username: USERNAME, password: PASSWORD ]
通过 docker 查看,
docker log bloger-backend
第一次启动后请尽快到首页下方进入管理后台更改密码和初始化系统.
MIT