diff --git a/tashow-module/tashow-module-translate/pom.xml b/tashow-module/tashow-module-translate/pom.xml
new file mode 100644
index 0000000..05580eb
--- /dev/null
+++ b/tashow-module/tashow-module-translate/pom.xml
@@ -0,0 +1,65 @@
+
+ 4.0.0
+
+ com.tashow.cloud
+ tashow-module
+ ${revision}
+
+
+ tashow-module-translate
+ jar
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.tashow.cloud
+ tashow-framework-rpc
+
+
+ com.tashow.cloud
+ tashow-data-mybatis
+
+
+ com.tashow.cloud
+ tashow-framework-web
+
+
+ com.tashow.cloud
+ tashow-framework-env
+
+
+ com.tashow.cloud
+ tashow-infra-api
+
+
+
+ com.tashow.cloud
+ tashow-framework-websocket
+
+
+ com.tashow.cloud
+ tashow-data-redis
+
+
+ com.tashow.cloud
+ tashow-framework-security
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/TranslateServerApplication.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/TranslateServerApplication.java
new file mode 100644
index 0000000..8d2c05c
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/TranslateServerApplication.java
@@ -0,0 +1,17 @@
+package com.tashow.cloud.translate;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ * 应用服务启动类
+ */
+@SpringBootApplication
+@EnableScheduling
+public class TranslateServerApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(TranslateServerApplication.class, args);
+ }
+}
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/controller/package-info.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/controller/package-info.java
new file mode 100644
index 0000000..ae958ed
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/controller/package-info.java
@@ -0,0 +1 @@
+package com.tashow.cloud.translate.controller;
\ No newline at end of file
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/dal/dataobject/package-info.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/dal/dataobject/package-info.java
new file mode 100644
index 0000000..0a104a6
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/dal/dataobject/package-info.java
@@ -0,0 +1,2 @@
+package com.tashow.cloud.translate.dal.dataobject;
+// 数据库对象
\ No newline at end of file
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/dal/package-info.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/dal/package-info.java
new file mode 100644
index 0000000..270fb32
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/dal/package-info.java
@@ -0,0 +1 @@
+package com.tashow.cloud.translate.dal;
\ No newline at end of file
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/security/config/SecurityConfiguration.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/security/config/SecurityConfiguration.java
new file mode 100644
index 0000000..006dcbe
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/security/config/SecurityConfiguration.java
@@ -0,0 +1,44 @@
+package com.tashow.cloud.translate.security.config;
+
+import com.tashow.cloud.infraapi.enums.ApiConstants;
+import com.tashow.cloud.security.security.config.AuthorizeRequestsCustomizer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer;
+
+/**
+ * Infra 模块的 Security 配置
+ */
+@Configuration(proxyBeanMethods = false, value = "infraSecurityConfiguration")
+public class SecurityConfiguration {
+
+ @Value("${spring.boot.admin.context-path:''}")
+ private String adminSeverContextPath;
+
+ @Bean("infraAuthorizeRequestsCustomizer")
+ public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() {
+ return new AuthorizeRequestsCustomizer() {
+ @Override
+ public void customize(AuthorizeHttpRequestsConfigurer.AuthorizationManagerRequestMatcherRegistry registry) {
+ // Spring Boot Actuator 的安全配置
+ registry.requestMatchers("/actuator").permitAll()
+ .requestMatchers("/actuator/**").permitAll();
+ // Druid 监控
+ registry.requestMatchers("/druid/**").permitAll();
+ // Spring Boot Admin Server 的安全配置
+ registry.requestMatchers(adminSeverContextPath).permitAll()
+ .requestMatchers(adminSeverContextPath + "/**").permitAll();
+ // 文件读取
+ registry.requestMatchers(buildAdminApi("/infra/file/*/get/**")).permitAll();
+
+ // TODO 芋艿:这个每个项目都需要重复配置,得捉摸有没通用的方案
+ // RPC 服务的安全配置
+ registry.requestMatchers(ApiConstants.PREFIX + "/**").permitAll();
+ }
+
+ };
+ }
+
+}
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/security/core/package-info.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/security/core/package-info.java
new file mode 100644
index 0000000..1f91ce3
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/security/core/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 占位
+ */
+package com.tashow.cloud.translate.security.core;
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/service/feishu/package-info.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/service/feishu/package-info.java
new file mode 100644
index 0000000..b53383d
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/service/feishu/package-info.java
@@ -0,0 +1 @@
+package com.tashow.cloud.translate.service.feishu;
\ No newline at end of file
diff --git a/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/service/package-info.java b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/service/package-info.java
new file mode 100644
index 0000000..591023a
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/java/com/tashow/cloud/translate/service/package-info.java
@@ -0,0 +1 @@
+package com.tashow.cloud.translate.service;
\ No newline at end of file
diff --git a/tashow-module/tashow-module-translate/src/main/resources/application-local.yaml b/tashow-module/tashow-module-translate/src/main/resources/application-local.yaml
new file mode 100644
index 0000000..79777cb
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/resources/application-local.yaml
@@ -0,0 +1,16 @@
+--- #################### 注册中心 + 配置中心相关配置 ####################
+
+spring:
+ cloud:
+ nacos:
+ server-addr: 43.139.42.137:8848 # Nacos 服务器地址
+ username: nacos # Nacos 账号
+ password: nacos # Nacos 密码
+ discovery: # 【配置中心】配置项
+ namespace: 5c8b8fe6-9a89-4ae3-975e-ef3bf560ff82 # 命名空间。这里使用 dev 开发环境
+ group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
+ metadata:
+ version: 1.0.0 # 服务实例的版本号,可用于灰度发布
+ config: # 【注册中心】配置项
+ namespace: 5c8b8fe6-9a89-4ae3-975e-ef3bf560ff82 # 命名空间。这里使用 dev 开发环境
+ group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
diff --git a/tashow-module/tashow-module-translate/src/main/resources/application.yaml b/tashow-module/tashow-module-translate/src/main/resources/application.yaml
new file mode 100644
index 0000000..448e24a
--- /dev/null
+++ b/tashow-module/tashow-module-translate/src/main/resources/application.yaml
@@ -0,0 +1,12 @@
+server:
+ port: 48086
+spring:
+ application:
+ name: translate-server
+ profiles:
+ active: local
+ config:
+ import:
+ - optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置
+ - optional:nacos:application.yaml # 加载【Nacos】的配置
+ - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置