From cb36838deb3e37e05b4ed83b02cb1142dbdb3bc3 Mon Sep 17 00:00:00 2001 From: TommyLike Date: Tue, 9 Apr 2024 14:38:35 +0800 Subject: [PATCH] Support local development --- .env | 5 + application.yaml | 80 +++++++++ compose.yaml | 70 ++++++++ pom.xml | 10 ++ .../V1.0.0__database__initialize.sql | 169 ++++++++++++++++++ 5 files changed, 334 insertions(+) create mode 100644 .env create mode 100644 application.yaml create mode 100644 compose.yaml create mode 100644 src/main/resources/db/migration/V1.0.0__database__initialize.sql diff --git a/.env b/.env new file mode 100644 index 0000000..51f0dd7 --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +REDIS_PASS= +MYSQL_ROOT_PASSWORD= +MYSQL_USER=test +MYSQL_PASSWORD= +MYSQL_DATABASE=easysoftware_test \ No newline at end of file diff --git a/application.yaml b/application.yaml new file mode 100644 index 0000000..a9f5176 --- /dev/null +++ b/application.yaml @@ -0,0 +1,80 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/easysoftware_test?characterEncoding=utf8&useSSL=false&autoReconnect=true&serverTimezone=UTC&allowPublicKeyRetrieval=true + username: ${MYSQL_USER:test} + password: ${MYSQL_PASSWORD:mysql_password} + flyway: + locations: [ "classpath:db/migration" ] + baseline-on-migrate: true + table: flyway_history + jackson: + data0format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + data: + redis: + host: 127.0.0.1 + port: 6379 + password: ${REDIS_PASS:redis_password} +redis-global: + expiration: 12 + +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +server: + error: + path: /error + whitelabel: + enabled: false + port: 8080 +bootstrap: + servers: 127.0.0.1:9092 +producer: + acks: 1 + retries: 3 + retryBackoffMs: 1000 + batchSize: 16384 + lingerMs: 0 + topic: software_test + +consumer: + groupId: software_test + enableAutoCommit: false + autoCommitIntervalMs: 1000 + sessionTimeoutMs: 30000 + topic: + name: software_test + offset: 0:0 +apppkg: + icon: + path: aa +api: + repoMaintainer: test + repoInfo: test + repoDownload: test + repoSig: test +obs: + endpoint: test + bucket: test + ak: test + sk: test + +logging: + file: + path: /var/log/easysoftware + level: + com: + easysoftware: + adapter: + query: debug +cookie: + token: + name: test +oneid: + permissionApi: test + manage: + apiBody: test + tokenApi: test + + diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..7b2a57e --- /dev/null +++ b/compose.yaml @@ -0,0 +1,70 @@ +services: + zookeeper: + networks: + network: + ipv4_address: 10.5.0.2 + image: bitnami/zookeeper:latest + ports: + - "2181:2181" + environment: + ALLOW_ANONYMOUS_LOGIN: yes + kafka: + image: 'bitnami/kafka:2.7.0-debian-10-r124' + ports: + - '9092:9092' + healthcheck: + test: ["CMD-SHELL", "kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092"] + interval: 5s + timeout: 30s + retries: 10 + environment: + - KAFKA_CFG_BROKER_ID=1 + - KAFKA_CFG_BROKER_RACK=zone1 + - KAFKA_ZOOKEEPER_CONNECT=10.5.0.2:2181 + - ALLOW_PLAINTEXT_LISTENER=yes + - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092 + - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.5.0.3:9092 + networks: + network: + ipv4_address: 10.5.0.3 + depends_on: + - zookeeper + redis: + image: redis + entrypoint: + - "/usr/local/bin/redis-server" + - --requirepass ${REDIS_PASS:-redis_password} + healthcheck: + test: ["CMD-SHELL", "redis-cli -a redis_password ping"] + interval: 5s + timeout: 30s + retries: 10 + ports: + - "6379:6379" + networks: + network: + ipv4_address: 10.5.0.4 + mysql: + image: mysql:8.1.0 + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-mysql_root_password} + MYSQL_USER: ${MYSQL_USER:-test} + MYSQL_PASSWORD: ${MYSQL_PASSWORD:-mysql_password} + MYSQL_DATABASE: ${MYSQL_DATABASE:-easysoftware_test} + healthcheck: + test: [ "CMD-SHELL", "mysqladmin ping -P 3306 -proot | grep 'mysqld is alive' || exit 1" ] + interval: 10s + timeout: 30s + retries: 10 + ports: + - "3306:3306" + networks: + network: + ipv4_address: 10.5.0.5 +networks: + network: + driver: bridge + ipam: + config: + - subnet: 10.5.0.0/16 + gateway: 10.5.0.1 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 44639ae..32697b0 100644 --- a/pom.xml +++ b/pom.xml @@ -142,6 +142,16 @@ spring-kafka + + + org.flywaydb + flyway-core + + + org.flywaydb + flyway-mysql + + diff --git a/src/main/resources/db/migration/V1.0.0__database__initialize.sql b/src/main/resources/db/migration/V1.0.0__database__initialize.sql new file mode 100644 index 0000000..2255fca --- /dev/null +++ b/src/main/resources/db/migration/V1.0.0__database__initialize.sql @@ -0,0 +1,169 @@ +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for application_package +-- ---------------------------- +CREATE TABLE `application_package` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_at` datetime DEFAULT NULL, + `update_at` datetime DEFAULT NULL, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `description` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `environment` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `download` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `installation` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `license` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `similar_pkgs` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `dependency_pkgs` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `icon_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `app_ver` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `os_support` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `os` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `arch` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `maintainer_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `maintainer_email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `maintainer_gitee_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `security_level` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `safe_label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `app_size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `bin_download_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `src_download_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `download_count` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `maintainer_update_at` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `src_repo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `pkg_id` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, + PRIMARY KEY (`pkg_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- ---------------------------- +-- Table structure for application_version +-- ---------------------------- +CREATE TABLE `application_version` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `upstream_version` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `up_homepage` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `backend` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `created_at` datetime DEFAULT NULL, + `update_at` datetime DEFAULT NULL, + `openeuler_version` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `ci_version` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `status` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, + `euler_homepage` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- ---------------------------- +-- Table structure for epkg_pkg +-- ---------------------------- +CREATE TABLE `epkg_pkg` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_at` datetime DEFAULT NULL, + `update_at` datetime DEFAULT NULL, + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包名称', + `version` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包版本', + `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '操作系统', + `arch` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '架构', + `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包分类/领域', + `epkg_update_at` datetime DEFAULT NULL COMMENT '软件包更新时间', + `src_repo` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '源码仓库', + `epkg_size` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包大小', + `bin_download_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '二进制包下载网址', + `src_download_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '源码包下载网址', + `summary` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '简介', + `os_support` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '版本支持情况', + `repo` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属仓库', + `repo_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'repo源', + `installation` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '安装指引', + `description` varchar(6000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述', + `requires` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '要求的软件包', + `provides` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '提供的软件包', + `conflicts` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '与自己冲突的软件包', + `change_log` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新日志', + `maintainer_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者id', + `maintainer_email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者邮箱', + `maintainer_gitee_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者giteeid', + `maintainer_update_at` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者更新时间', + `maintainer_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护状态', + `up_stream` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上游仓库状态', + `security` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '安全风险公告', + `similar_pkgs` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '近似引用', + `files` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, + `download_count` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, + `pkg_id` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, + `sub_path` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, + PRIMARY KEY (`id`,`pkg_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- ---------------------------- +-- Table structure for external_os +-- ---------------------------- +CREATE TABLE `external_os` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_at` datetime DEFAULT NULL, + `update_at` datetime DEFAULT NULL, + `origin_os_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `origin_os_ver` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `target_os_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `target_os_ver` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `origin_pkg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `target_pkg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- ---------------------------- +-- Table structure for rpm_pkg_base +-- ---------------------------- +CREATE TABLE `rpm_pkg_base` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `create_at` datetime DEFAULT NULL, + `update_at` datetime DEFAULT NULL, + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包名称', + `version` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包版本', + `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '操作系统', + `arch` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '架构', + `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包分类/领域', + `rpm_update_at` datetime DEFAULT NULL COMMENT '软件包更新时间', + `src_repo` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '源码仓库', + `rpm_size` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '软件包大小', + `bin_download_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '二进制包下载网址', + `src_download_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '源码包下载网址', + `summary` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '简介', + `os_support` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '版本支持情况', + `repo` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属仓库', + `repo_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'repo源', + `installation` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '安装指引', + `description` varchar(6000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述', + `requires` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '要求的软件包', + `provides` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '提供的软件包', + `conflicts` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '与自己冲突的软件包', + `change_log` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新日志', + `maintainer_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者id', + `maintainer_email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者邮箱', + `maintainer_gitee_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者giteeid', + `maintainer_update_at` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护者更新时间', + `maintainer_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '维护状态', + `up_stream` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上游仓库状态', + `security` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '安全风险公告', + `similar_pkgs` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '近似引用', + `download_count` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, + `pkg_id` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, + `sub_path` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, + PRIMARY KEY (`pkg_id`), + KEY `name_index` (`name`), + KEY `rpm_update_at_index` (`rpm_update_at`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- ---------------------------- +-- Table structure for user +-- ---------------------------- +CREATE TABLE `user` ( + `username` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +SET FOREIGN_KEY_CHECKS = 1; -- Gitee