youdeyiwu-backend 尤得一物-后端
尤得一物是一个开源论坛程序,可以作为简单管理或分享文章的论坛博客,也可以在此基础上进行自定义扩展开发.
1. 主页
- 访问
- 相关
2. 技术
- java 17 + spring-boot + jpa
- mariadb 10.6
- redis
- rabbitmq
- minio
3. 安装
3.1 要求
如果是新系统可以开始安装,不是的话请检查是否存在符合的程序版本,系统需要存在以下程序:
docker
- docker(v20.10+)
important
- mariadb(10.6)
- redis(v7.0+)
- rabbitmq(v3.10+)
- minio(≥RELEASE.2022-09-22T18-57-27Z)
安装参考文档:
- docker(https://docs.docker.com/engine/install/centos)
- mariadb(https://hub.docker.com/_/mariadb)
- redis(https://hub.docker.com/_/redis)
- rabbitmq(https://hub.docker.com/_/rabbitmq)
- minio(https://hub.docker.com/r/minio/minio)
或者这里相关示例
3.2 设置
mariadb(创建 youdeyiwu 数据库)
4. 部署
4.1 使用 .env.local
4.1.1 新建模板
cat > .env.local << EOF # server server.port=8080 # flyway spring.flyway.defaultschema=youdeyiwu # mariadb(需要修改为自己的连接地址、账号、密码) spring.datasource.url=jdbc:mariadb://localhost:3306/youdeyiwu?createDatabaseIfNotExist=true&serverTimezone=UTC&allowMultiQueries=true spring.datasource.username=root spring.datasource.password=123456 # redis(需要修改为自己的连接地址、账号、密码) spring.redis.host=localhost spring.redis.port=6379 spring.redis.username=root spring.redis.password=123456 # rabbitmq(需要修改为自己的连接地址、账号、密码) spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=root spring.rabbitmq.password=123456 # minio(需要修改为自己的连接地址、账号、密码) minio.endpoint=http://localhost:9000 minio.accessKey=root minio.secretKey=12345678 # key(需要修改为自己生成证书的密码) key.account=123456 key.password=123456 key.config=123456 EOF
4.1.2 运行程序
docker run -d \ --name youdeyiwu-backend \ --add-host host.docker.internal:host-gateway \ --env-file .env.local \ -v youdeyiwu-backend-logs:/youdeyiwu-backend/logs \ -v youdeyiwu-backend-indexs:/youdeyiwu-backend/indexs \ -v youdeyiwu-backend-keys:/youdeyiwu-backend/BOOT-INF/classes/keys \ -p 8080:8080 \ dafengzhen/youdeyiwu-backend
4.1.3 配置 keys
程序中使用到了对敏感字段进行加密,需要生成凭证.
生成之后移动到 docker 的 youdeyiwu-backend-keys 卷中.
可自行使用相关工具生成,例如 KeyStore Explorer,生成的文件名格式如下:
- account.p12
- password.p12
- config.p12
- 使用默认(如果当前不打算生成凭证)
可跳过当前步骤
- 不使用默认
例如使用工具 KeyStore Explorer 生成凭证文件,并移动到 youdeyiwu-backend-keys 卷中
4.1.4 配置 minio
- 创建
创建 youdeyiwu 存储库,并设置为 public 访问
- 通知
minio 后台 -> Notification -> Add Notification Target -> AMQP
填写 rabbitmq 连接 url:amqp://myuser:[email protected]:5672
请参考图示,填写完成后按提示重启 minio
- 关联
minio 后台 -> Buckets -> Manage(youdeyiwu) -> Events -> Subscribe to Event
勾选 GET - Object accessed
请参考图示
4.2 使用 secret
使用该方式以加密敏感数据,关于 secret 可以点击该链接了解.
如果还未初始化 docker swarm,请使用命令 docker swarm init 初始化,以下操作均在 leader 主节点完成.
4.2.1 新建模板
请参考 4.1.1
4.2.2 创建密钥
docker secret create youdeyiwu-backend .env.local
4.2.3 运行程序
docker service create \ --name youdeyiwu-backend \ --secret youdeyiwu-backend \ --replicas 1 \ --add-host host.docker.internal:host-gateway \ -v youdeyiwu-backend-logs:/youdeyiwu-backend/logs \ -v youdeyiwu-backend-indexs:/youdeyiwu-backend/indexs \ -v youdeyiwu-backend-keys:/youdeyiwu-backend/BOOT-INF/classes/keys \ -p 8080:8080 \ dafengzhen/youdeyiwu-backend
4.2.4 配置 keys
请参考 4.1.3
4.2.5 配置 minio
请参考 4.1.4
如果你在安装过程中遇到了问题,或者有相关建议、问题反馈,可以通过交流