diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e082445
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,61 @@
+HELP.md
+target/
+
+velocity.log
+
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+.DS_Store
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+
+### VS Code ###
+.vscode/
+/logs
+*.log
+*.class
+*.ctxt
+.mtj.tmp/
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+hs_err_pid*
+replay_pid*
+*.vue
+*.js
+*.ts
+/sa-base/target/
+/logs/
+/.idea/
+/sa-base/target/
diff --git a/Dockerfile-dev b/Dockerfile-dev
new file mode 100644
index 0000000..1fc795e
--- /dev/null
+++ b/Dockerfile-dev
@@ -0,0 +1,50 @@
+# 第一阶段:使用 Maven + Java8 构建 JAR 包
+FROM maven:3.9.2-eclipse-temurin-8-alpine AS builder
+
+WORKDIR /app
+
+# 添加国内 Maven 镜像源
+RUN mkdir -p /root/.m2 && \
+ echo ' \
+ \
+ \
+ aliyun \
+ * \
+ aliyun maven \
+ https://maven.aliyun.com/repository/public \
+ \
+ \
+ ' > /root/.m2/settings.xml
+
+# 复制项目代码
+COPY pom.xml .
+COPY sa-admin ./sa-admin
+COPY sa-common ./sa-common
+
+# 构建项目
+RUN mvn clean package -Dmaven.test.skip=true -P dev
+
+# 第二阶段:使用更小的 Java8 JDK 镜像运行
+FROM eclipse-temurin:8-jdk-alpine
+
+WORKDIR /app
+
+# ✅ 安装字体 & libgcc 等依赖
+RUN apk add --no-cache \
+ libstdc++ \
+ libgcc \
+ fontconfig \
+ freetype \
+ ttf-dejavu
+
+# 复制构建产物
+COPY --from=builder /app/sa-admin/target/*.jar app.jar
+
+# 暴露端口(请替换成你实际应用端口)
+EXPOSE 5479
+
+# 启动应用
+ENTRYPOINT ["java", "-jar", "app.jar"]
\ No newline at end of file
diff --git a/Dockerfile-prod b/Dockerfile-prod
new file mode 100644
index 0000000..2c93f2c
--- /dev/null
+++ b/Dockerfile-prod
@@ -0,0 +1,50 @@
+# 第一阶段:使用 Maven + Java8 构建 JAR 包
+FROM maven:3.9.2-eclipse-temurin-8-alpine AS builder
+
+WORKDIR /app
+
+# 添加国内 Maven 镜像源
+RUN mkdir -p /root/.m2 && \
+ echo ' \
+ \
+ \
+ aliyun \
+ * \
+ aliyun maven \
+ https://maven.aliyun.com/repository/public \
+ \
+ \
+ ' > /root/.m2/settings.xml
+
+# 复制项目代码
+COPY pom.xml .
+COPY sa-admin ./sa-admin
+COPY sa-common ./sa-common
+
+# 构建项目
+RUN mvn clean package -Dmaven.test.skip=true -P prod
+
+# 第二阶段:使用更小的 Java8 JDK 镜像运行
+FROM eclipse-temurin:8-jdk-alpine
+
+WORKDIR /app
+
+# ✅ 安装字体 & libgcc 等依赖
+RUN apk add --no-cache \
+ libstdc++ \
+ libgcc \
+ fontconfig \
+ freetype \
+ ttf-dejavu
+
+# 复制构建产物
+COPY --from=builder /app/sa-admin/target/*.jar app.jar
+
+# 暴露端口(请替换成你实际应用端口)
+EXPOSE 5477
+
+# 启动应用
+ENTRYPOINT ["java", "-jar", "app.jar"]
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..eeac845
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,416 @@
+
+ 4.0.0
+
+ net.lab1024
+ sa-parent
+ 3.0.0
+ pom
+
+ sa-parent
+ SmartAdmin project
+
+
+ sa-base
+ sa-admin
+
+
+
+ 17
+ UTF-8
+ UTF-8
+ 3.3.1
+ 2.0.8
+ 6.4.3
+ 3.5.7
+ 3.9.1
+ 4.4.0
+ 2.0.52
+ 1.2.23
+ 1.4.2
+ 20.0
+ 0.9.11
+ 2.15.0
+ 3.12.0
+ 4.4
+ 1.26.0
+ 1.13
+ 1.9
+ 2.12.0
+ 1.0.0
+ 5.2.4
+ 1.4
+ 1.11.842
+ 2.23.1
+ 5.8.29
+ 2.3
+ 3.1
+ 1.41.0
+ 2.7.0
+ 1.80
+ 2.13.4
+ 2.16.1
+ 1.2.0
+ 3.25.0
+ 2.2
+ 2.3.33
+ 1.18.1
+ 3.1.0
+ 4.7.0
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${springboot.version}
+ pom
+ import
+
+
+
+
+ com.baomidou
+ mybatis-plus-spring-boot3-starter
+ ${mybatis-plus.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+
+ org.springframework.security
+ spring-security-crypto
+ ${spring-security-crypto.version}
+
+
+
+ p6spy
+ p6spy
+ ${p6spy.version}
+
+
+
+ com.github.xiaoymin
+ knife4j-openapi3-jakarta-spring-boot-starter
+ ${knife4j.version}
+
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
+
+
+
+
+ com.alibaba
+ druid-spring-boot-3-starter
+ ${druid.version}
+
+
+
+ com.googlecode.concurrentlinkedhashmap
+ concurrentlinkedhashmap-lru
+ ${google-linkedhashmap.version}
+
+
+
+ com.google.guava
+ guava
+ ${google-guava.version}
+
+
+
+ org.reflections
+ reflections
+ ${reflections.version}
+
+
+ guava
+ com.google.guava
+
+
+
+
+
+ commons-io
+ commons-io
+ ${commons-io.version}
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+
+ org.apache.commons
+ commons-collections4
+ ${commons-collections4.version}
+
+
+
+ org.apache.commons
+ commons-compress
+ ${commons-compress.version}
+
+
+
+ commons-codec
+ commons-codec
+ ${commons-codec.version}
+
+
+
+ com.amazonaws
+ aws-java-sdk-s3
+ ${aws-java-sdk.version}
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+
+ org.apache.commons
+ commons-text
+ ${commons-text.version}
+
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+ org.apache.velocity
+ velocity-engine-core
+ ${velocity-engine-core.version}
+
+
+ org.apache.velocity.tools
+ velocity-tools-generic
+ ${velocity-tools.version}
+
+
+
+
+
+ cn.dev33
+ sa-token-spring-boot3-starter
+ ${sa-token.version}
+
+
+
+
+ cn.dev33
+ sa-token-redis-jackson
+ ${sa-token.version}
+
+
+
+
+
+ org.lionsoul
+ ip2region
+ ${ip2region.version}
+
+
+
+ org.bouncycastle
+ bcprov-jdk18on
+ ${bcprov.version}
+
+
+
+ cn.idev.excel
+ fastexcel
+ ${fast-excel.version}
+
+
+ logback-classic
+ ch.qos.logback
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+
+
+
+
+
+ org.apache.poi
+ poi
+ ${poi.version}
+
+
+
+ org.apache.poi
+ poi-ooxml
+ ${poi.version}
+
+
+
+ org.apache.poi
+ poi-scratchpad
+ ${poi.version}
+
+
+
+ org.apache.poi
+ ooxml-schemas
+ ${ooxml-schemas.version}
+
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ ${jackson-datatype-jsr310.version}
+
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-yaml
+ ${jackson-dataformat-yaml.version}
+
+
+
+ net.1024lab
+ smartdb
+ ${smartdb.version}
+
+
+
+
+ org.redisson
+ redisson-spring-boot-starter
+ ${redisson.version}
+
+
+
+ org.yaml
+ snakeyaml
+ ${snakeyaml.version}
+
+
+
+ org.jsoup
+ jsoup
+ ${jsoup.version}
+
+
+
+ org.freemarker
+ freemarker
+ ${freemarker.version}
+
+
+
+ org.apache.tika
+ tika-core
+ ${tika.version}
+
+
+
+
+
+
+
+
+ ${project.name}-${profiles.active}-${project.version}
+
+
+ false
+ src/main/resources
+
+ dev/*
+ test/*
+ pre/*
+ prod/*
+
+
+
+
+ src/main/resources/${profiles.active}
+ true
+
+ *.yaml
+
+
+
+
+ src/main/resources/${profiles.active}
+ false
+
+ *.*
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+ -parameters
+ 17
+ 17
+ UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${springboot.version}
+
+
+
+
+
+
+
+ dev
+
+ dev
+
+
+ true
+
+
+
+
+ test
+
+ test
+
+
+
+
+ pre
+
+ pre
+
+
+
+
+ prod
+
+ prod
+
+
+
+
+