添加论坛项目一键部署

This commit is contained in:
柏码の讲师 2024-12-19 23:48:05 +08:00
parent f29067b93e
commit 4b45e66612
45 changed files with 385 additions and 0 deletions

70
itbaima-forum/README.md Normal file
View File

@ -0,0 +1,70 @@
## 项目前端
启动前请务必配置以下环境变量,否则项目无法正常连接到后端运行,不修改的情况下使用默认值:
* API_BASE_URL=http://localhost:8080 - 后端接口基础地址
## 项目后端
本项目对接和风天气请前往和风天气开发者官网申请API秘钥https://dev.qweather.com
项目默认用户有两个:
* 用户名: user 密码: 123456
* 用户名: test 密码: 123456
启动前需要先完成以下环境变量配置,若不修改则使用下列默认值。
邮件发送配置:
* MAIL_HOST=smtp.163.com - SMTP邮件服务器地址
* MAIL_USERNAME=user - 邮件服务用户名
* MAIL_PASSWORD=123456 - 邮件服务密码
RabbitMQ消息队列配置
* RABBITMQ_ADDRESS=localhost - RabbitMQ连接地址
* RABBITMQ_USERNAME=admin - RabbitMQ用户名
* RABBITMQ_PASSWORD=admin - RabbitMQ密码
* RABBITMQ_VIRTUAL_HOST=/ - RabbitMQ虚拟主机配置
MySQL数据库连接信息配置
* MYSQL_URL=jdbc:mysql://localhost:3306/monitor - MySQL数据库连接URL
* MYSQL_USERNAME=root - MySQL数据库用户名
* MYSQL_PASSWORD=123456 - MySQL数据库密码
Minio对象存储服务配置
* MINIO_ENDPOINT=http://localhost:9000 - minio服务地址
* MINIO_USERNAME=minio - minio服务用户名
* MINIO_PASSWORD=12345678 - minio服务密码
和风天气API接口
* WEATHER_API_KEY=7abbc24d3b4443b597a3b3c676e0f221 - 默认值(自己去申请一个,别用这个默认的)
接口请求限流配置:
* FLOW_LIMIT=20 - 单位时间内最大请求数
* FLOW_LIMIT_PERIOD=3 - 统计单位时间(秒)
* FLOW_LIMIT_BLOCK=30 - 超过最大请求频率的封禁时间
Jwt令牌生成参数配置
* JWT_KEY=abcdefghijklmn - 令牌的秘钥
* JWT_EXPIRE=72 - 令牌过期时间
* JWT_LIMIT_BASE=10 - 生成Jwt令牌的冷却时间防止刷接口频繁登录生成令牌
* JWT_LIMIT_UPGRADE=300 - 用户如果继续恶意刷令牌,更严厉的封禁时间
* JWT_LIMIT_FREQUENCY=30 - 判定用户在冷却时间内,继续恶意刷令牌的次数限制
跨域配置:
* CORS_ORIGIN=*
* CORS_METHODS=*
Redis数据库配置
* REDIS_HOST=localhost - Redis数据库主机地址
* REDIS_PORT=6379 - Redis数据库端口
* REDIS_PASSWORD='' - Redis数据库密码

View File

@ -0,0 +1,80 @@
networks:
work:
driver: bridge
services:
mysql:
image: mysql:8.0.40
container_name: mysql
environment:
- MYSQL_DATABASE=forum
- MYSQL_ROOT_PASSWORD=123456
- TZ=Asia/Shanghai
volumes:
- ./mysql:/var/lib/mysql
- ./forum.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "3306:3306"
networks:
- work
redis:
image: redis
container_name: redis
ports:
- "6379:6379"
volumes:
- ./redis:/data
networks:
- work
rabbitmq:
image: rabbitmq:management
container_name: rabbitmq
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
volumes:
- ./rabbitmq:/var/lib/rabbitmq
ports:
- "5672:5672"
- "15672:15672"
networks:
- work
minio:
image: minio/minio
container_name: minio
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: 12345678
volumes:
- ./minio:/data
- ./minio/.minio:/root/.minio
ports:
- "9090:9090"
- "9000:9000"
command: server /data --console-address ":9090"
networks:
- work
itbaima-forum-server:
image: itbaimastydu/itbaima-forum-server:1.0.3
container_name: itbaima-forum-server
ports:
- "8080:80"
environment:
- MYSQL_URL=jdbc:mysql://mysql:3306/forum
- REDIS_HOST=redis
- RABBITMQ_ADDRESS=rabbitmq
- MINIO_ENDPOINT=http://minio:9000
- WEATHER_API_KEY=12382782137hjshdakj
networks:
- work
depends_on:
- mysql
- redis
itbaima-forum-web:
image: itbaimastydu/itbaima-forum-web:1.0.2
container_name: itbaima-forum-web
environment:
- API_BASE_URL=http://10.211.55.4:8080
ports:
- "80:80"
networks:
- work

234
itbaima-forum/forum.sql Normal file
View File

@ -0,0 +1,234 @@
/*
Navicat Premium Dump SQL
Source Server : 10.211.55.4_3306
Source Server Type : MySQL
Source Server Version : 80040 (8.0.40)
Source Host : 10.211.55.4:3306
Source Schema : forum
Target Server Type : MySQL
Target Server Version : 80040 (8.0.40)
File Encoding : 65001
Date: 19/12/2024 23:41:43
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for db_account
-- ----------------------------
DROP TABLE IF EXISTS `db_account`;
CREATE TABLE `db_account` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`role` varchar(255) DEFAULT NULL,
`avatar` varchar(255) DEFAULT NULL,
`register_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_account
-- ----------------------------
BEGIN;
INSERT INTO `db_account` (`id`, `username`, `password`, `email`, `role`, `avatar`, `register_time`) VALUES (1, 'test', '$2a$10$FVnhxXODi7K0GjBpjKEdPuLUpRswYmeW8XR0zbYT3vhVmKn20HIIK', 'aaaaa@qq.com', 'user', '/avatar/5263bfdf82f74860821c660bac5c9c1d', '2023-08-27 00:18:20');
INSERT INTO `db_account` (`id`, `username`, `password`, `email`, `role`, `avatar`, `register_time`) VALUES (2, 'user', '$2a$10$RC7u4fmJqlYBA9DU0dxl8eLRj4E3b3JkAY0QZc0KL92qTbYYd.knC', 'bbbbb@qq.com', 'user', NULL, '2023-10-28 18:22:18');
COMMIT;
-- ----------------------------
-- Table structure for db_account_details
-- ----------------------------
DROP TABLE IF EXISTS `db_account_details`;
CREATE TABLE `db_account_details` (
`id` int NOT NULL,
`gender` tinyint DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
`qq` varchar(255) DEFAULT NULL,
`wx` varchar(255) DEFAULT NULL,
`desc` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_account_details
-- ----------------------------
BEGIN;
INSERT INTO `db_account_details` (`id`, `gender`, `phone`, `qq`, `wx`, `desc`) VALUES (1, 0, '26371286731', '213213213', 'asdasd', '撒的谎金阿奎稍等哈极客飒打卡机阿萨达哈卡四大三抗打击');
INSERT INTO `db_account_details` (`id`, `gender`, `phone`, `qq`, `wx`, `desc`) VALUES (2, 0, '21323213', '12321321', 'sdasdsad', 'sadasdasda撒大大是的撒的案底啊是阿萨大大是的');
COMMIT;
-- ----------------------------
-- Table structure for db_account_privacy
-- ----------------------------
DROP TABLE IF EXISTS `db_account_privacy`;
CREATE TABLE `db_account_privacy` (
`id` int NOT NULL,
`phone` tinyint DEFAULT NULL,
`email` tinyint DEFAULT NULL,
`wx` tinyint DEFAULT NULL,
`qq` tinyint DEFAULT NULL,
`gender` tinyint DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_account_privacy
-- ----------------------------
BEGIN;
INSERT INTO `db_account_privacy` (`id`, `phone`, `email`, `wx`, `qq`, `gender`) VALUES (1, 0, 1, 0, 1, 1);
INSERT INTO `db_account_privacy` (`id`, `phone`, `email`, `wx`, `qq`, `gender`) VALUES (2, 1, 1, 1, 1, 1);
COMMIT;
-- ----------------------------
-- Table structure for db_image_store
-- ----------------------------
DROP TABLE IF EXISTS `db_image_store`;
CREATE TABLE `db_image_store` (
`uid` int DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_image_store
-- ----------------------------
BEGIN;
INSERT INTO `db_image_store` (`uid`, `name`, `time`) VALUES (2, '/cache/20241219/5892bde4e27c4b349f0c36319155c7b6', '2024-12-19 15:07:59');
INSERT INTO `db_image_store` (`uid`, `name`, `time`) VALUES (2, '/cache/20241219/aa3183d704df456185fb691ecd9657ac', '2024-12-19 15:10:26');
COMMIT;
-- ----------------------------
-- Table structure for db_notification
-- ----------------------------
DROP TABLE IF EXISTS `db_notification`;
CREATE TABLE `db_notification` (
`id` int NOT NULL AUTO_INCREMENT,
`uid` int DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`content` varchar(255) DEFAULT NULL,
`type` varchar(255) DEFAULT NULL,
`url` varchar(255) DEFAULT NULL,
`time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_notification
-- ----------------------------
BEGIN;
INSERT INTO `db_notification` (`id`, `uid`, `title`, `content`, `type`, `url`, `time`) VALUES (3, 2, '您有新的帖子评论回复', 'test 回复了你发表的评论,快去看看吧!', 'success', '/index/post-detail/20', NULL);
COMMIT;
-- ----------------------------
-- Table structure for db_topic
-- ----------------------------
DROP TABLE IF EXISTS `db_topic`;
CREATE TABLE `db_topic` (
`id` int NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`content` text,
`uid` int DEFAULT NULL,
`type` int DEFAULT NULL,
`time` datetime DEFAULT NULL,
`top` tinyint DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_topic
-- ----------------------------
BEGIN;
INSERT INTO `db_topic` (`id`, `title`, `content`, `uid`, `type`, `time`, `top`) VALUES (19, '大家看看这个是什么网站', '{\"ops\":[{\"attributes\":{\"width\":\"458\"},\"insert\":{\"image\":\"http://10.211.55.4:8080/images/cache/20241219/5892bde4e27c4b349f0c36319155c7b6\"}},{\"insert\":\"\\n今天看见朋友在访问这个网站看着挺有意思的\\n这个社区有人在嘛可以搞邀请码嘛\\n\"}]}', 2, 1, '2024-12-19 15:08:40', 0);
INSERT INTO `db_topic` (`id`, `title`, `content`, `uid`, `type`, `time`, `top`) VALUES (20, '你们是不是都在用盗版Navicat', '{\"ops\":[{\"insert\":\"近日, Navicat 后台接到大量用户留言询问Navicat Premium 被投毒事件。为确保Navicat 产品及用户的数据安全,我们立即展开了一系列的排查。排查结果请见以下内容。\\n\\n被投毒事件仅发生在【Navicat Premium 破解版】(即盗版软件)与官方正版软件无关,请正版用户无需担忧。\\n\\n\"},{\"attributes\":{\"width\":\"340\"},\"insert\":{\"image\":\"http://10.211.55.4:8080/images/cache/20241219/aa3183d704df456185fb691ecd9657ac\"}},{\"insert\":\"\\n\"}]}', 2, 5, '2024-12-19 15:10:51', 1);
INSERT INTO `db_topic` (`id`, `title`, `content`, `uid`, `type`, `time`, `top`) VALUES (21, '“疯狂小杨哥”停播近百天', '{\"ops\":[{\"insert\":\"曾经的抖音一哥“疯狂小杨哥”已经停播近100天。\\n\\n尽管有不少粉丝在“疯狂小杨哥”抖音账号评论区倾诉思念、期待回归但时至今日“疯狂小杨哥”账号的最新视频依然停留在8月22日。\\n\\n在视频中小杨张庆杨与哥哥大杨张开杨两人脸上都架着一副黑色墨镜众星捧月般穿越人群、上台签名与一众港星握手合影。\\n\\n那是大小杨“消失”在公众视野前的新高光时刻8月21日二人创办的三只羊集团在香港的分公司开业他们请来港星曾志伟担任三只羊香港分公司老板。根据媒体报道当晚的直播3小时销售额即突破1亿元。\\n就连混迹娱乐圈几十年的曾志伟在直播中也难掩激动“没想过能卖到这种程度得到这么多人的支持。”除了表达对三只羊的感谢曾志伟还放下豪言壮语称未来要冲向马来西亚、越南、泰国走向全世界。\\n\"}]}', 1, 3, '2024-12-19 15:35:10', 0);
COMMIT;
-- ----------------------------
-- Table structure for db_topic_comment
-- ----------------------------
DROP TABLE IF EXISTS `db_topic_comment`;
CREATE TABLE `db_topic_comment` (
`id` int NOT NULL AUTO_INCREMENT,
`uid` int DEFAULT NULL,
`tid` int DEFAULT NULL,
`content` text,
`time` datetime DEFAULT NULL,
`quote` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_topic_comment
-- ----------------------------
BEGIN;
INSERT INTO `db_topic_comment` (`id`, `uid`, `tid`, `content`, `time`, `quote`) VALUES (25, 2, 20, '{\"ops\":[{\"insert\":\"你好,我自己顶一下\\n\"}]}', '2024-12-19 15:32:22', -1);
INSERT INTO `db_topic_comment` (`id`, `uid`, `tid`, `content`, `time`, `quote`) VALUES (27, 1, 20, '{\"ops\":[{\"insert\":\"再盖一层楼\\n\"}]}', '2024-12-19 15:35:26', 26);
COMMIT;
-- ----------------------------
-- Table structure for db_topic_interact_collect
-- ----------------------------
DROP TABLE IF EXISTS `db_topic_interact_collect`;
CREATE TABLE `db_topic_interact_collect` (
`tid` int DEFAULT NULL,
`uid` int DEFAULT NULL,
`time` datetime DEFAULT NULL,
UNIQUE KEY `tid_uid_collect` (`tid`,`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_topic_interact_collect
-- ----------------------------
BEGIN;
INSERT INTO `db_topic_interact_collect` (`tid`, `uid`, `time`) VALUES (20, 2, '2024-12-19 15:32:15');
INSERT INTO `db_topic_interact_collect` (`tid`, `uid`, `time`) VALUES (20, 1, '2024-12-19 15:35:42');
COMMIT;
-- ----------------------------
-- Table structure for db_topic_interact_like
-- ----------------------------
DROP TABLE IF EXISTS `db_topic_interact_like`;
CREATE TABLE `db_topic_interact_like` (
`tid` int DEFAULT NULL,
`uid` int DEFAULT NULL,
`time` datetime DEFAULT NULL,
UNIQUE KEY `tid_uid_like` (`tid`,`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_topic_interact_like
-- ----------------------------
BEGIN;
INSERT INTO `db_topic_interact_like` (`tid`, `uid`, `time`) VALUES (20, 2, '2024-12-19 15:32:14');
INSERT INTO `db_topic_interact_like` (`tid`, `uid`, `time`) VALUES (20, 1, '2024-12-19 15:35:41');
COMMIT;
-- ----------------------------
-- Table structure for db_topic_type
-- ----------------------------
DROP TABLE IF EXISTS `db_topic_type`;
CREATE TABLE `db_topic_type` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`desc` varchar(255) DEFAULT NULL,
`color` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of db_topic_type
-- ----------------------------
BEGIN;
INSERT INTO `db_topic_type` (`id`, `name`, `desc`, `color`) VALUES (1, '日常闲聊', '在这里分享你的各种日常', '#1E90FF');
INSERT INTO `db_topic_type` (`id`, `name`, `desc`, `color`) VALUES (2, '真诚交友', '在校园里寻找与自己志同道合的朋友', '#CE1EFF');
INSERT INTO `db_topic_type` (`id`, `name`, `desc`, `color`) VALUES (3, '问题反馈', '反馈你在校园里遇到的问题', '#E07373');
INSERT INTO `db_topic_type` (`id`, `name`, `desc`, `color`) VALUES (4, '恋爱官宣', '向大家展示你的恋爱成果', '#E0CE73');
INSERT INTO `db_topic_type` (`id`, `name`, `desc`, `color`) VALUES (5, '踩坑记录', '将你遇到的坑分享给大家,防止其他人再次入坑', '#3BB62A');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1 @@
{"version":"1","format":"xl-single","id":"bab9845e-2b2f-4c55-9892-16194f42e8ce","xl":{"version":"3","this":"511491ed-6d2c-4cf2-8440-84c0ed5516d8","sets":[["511491ed-6d2c-4cf2-8440-84c0ed5516d8"]],"distributionAlgo":"SIPMOD+PARITY"}}

Binary file not shown.