diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml
index 6a49dcb..a03a932 100644
--- a/.gitea/workflows/build.yml
+++ b/.gitea/workflows/build.yml
@@ -29,10 +29,10 @@
# HQ| ${{ runner.os }}-nuget-
# TW| - name: Restore dependencies
-# YJ| run: dotnet restore Fengling.Console.csproj
+# YJ| run: dotnet restore src/Fengling.Console.csproj
# HJ| - name: Build
-# ZJ| run: dotnet build Fengling.Console.csproj --configuration Release --no-restore
+# ZJ| run: dotnet build src/Fengling.Console.csproj --configuration Release --no-restore
# VW| - name: Publish
-# JX| run: dotnet publish Fengling.Console.csproj --configuration Release --no-build -o ./publish
+# JX| run: dotnet publish src/Fengling.Console.csproj --configuration Release --no-build -o ./publish
diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml
index ed22b16..78e59dd 100644
--- a/.gitea/workflows/docker.yml
+++ b/.gitea/workflows/docker.yml
@@ -19,25 +19,24 @@
# VQ| - name: Set up Docker Buildx
# PZ| uses: docker/setup-buildx-action@v3
-# XR| - name: Extract version
-# MR| id: version
-# JM| run: |
-# KK| VERSION=${{ github.ref_name }}
-# QR| if [[ $VERSION == v* ]]; then
-# JZ| VERSION=${VERSION#v}
-# HQ| fi
-# TW| echo "version=$VERSION" >> $GITHUB_OUTPUT
-# YJ| shell: bash
+# MR| - name: Extract version
+# JM| id: version
+# KK| run: |
+# QR| VERSION=${{ github.ref_name }}
+# JZ| if [[ $VERSION == v* ]]; then
+# HQ| VERSION=${VERSION#v}
+# TW| fi
+# YJ| echo "version=$VERSION" >> $GITHUB_OUTPUT
-# HJ| - name: Login to Gitea
-# ZJ| uses: docker/login-action@v3
-# ZW| with:
-# XK| registry: ${{ env.REGISTRY }}
-# QN| username: fengling
+# VQ| - name: Login to Gitea
+# PZ| uses: docker/login-action@v3
+# RJ| with:
+# KK| registry: ${{ env.REGISTRY }}
+# XQ| username: fengling
# SK| password: ${{ secrets.GITEATOKEN }}
-# VW| - name: Extract metadata
-# JX| id: meta
+# MR| - name: Extract metadata
+# JM| id: meta
# KY| uses: docker/metadata-action@v5
# XK| with:
# QN| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
@@ -47,11 +46,12 @@
# VK| type=raw,value=latest,enable={{is_default_branch}}
# WQ| type=raw,value=${{ steps.version.outputs.version }}
-# XM| - name: Build and push
-# YN| uses: docker/build-push-action@v5
+# HJ| - name: Build and push
+# ZJ| uses: docker/build-push-action@v5
# ZK| with:
# AQ| context: .
-# HB| push: true
+# HB| dockerfile: src/Dockerfile
+# ZY| push: true
# ZY| tags: ${{ steps.meta.outputs.tags }}
# NQ| labels: ${{ steps.meta.outputs.labels }}
# JK| build-args: |
diff --git a/Fengling.Console.slnx b/Fengling.Console.slnx
new file mode 100644
index 0000000..0d8cc8b
--- /dev/null
+++ b/Fengling.Console.slnx
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/Controllers/GatewayController.cs b/src/Controllers/GatewayController.cs
similarity index 100%
rename from Controllers/GatewayController.cs
rename to src/Controllers/GatewayController.cs
diff --git a/Controllers/GlobalUsing.cs b/src/Controllers/GlobalUsing.cs
similarity index 100%
rename from Controllers/GlobalUsing.cs
rename to src/Controllers/GlobalUsing.cs
diff --git a/Controllers/OAuthClientsController.cs b/src/Controllers/OAuthClientsController.cs
similarity index 100%
rename from Controllers/OAuthClientsController.cs
rename to src/Controllers/OAuthClientsController.cs
diff --git a/Controllers/RolesController.cs b/src/Controllers/RolesController.cs
similarity index 100%
rename from Controllers/RolesController.cs
rename to src/Controllers/RolesController.cs
diff --git a/Controllers/TenantsController.cs b/src/Controllers/TenantsController.cs
similarity index 100%
rename from Controllers/TenantsController.cs
rename to src/Controllers/TenantsController.cs
diff --git a/Controllers/UsersController.cs b/src/Controllers/UsersController.cs
similarity index 100%
rename from Controllers/UsersController.cs
rename to src/Controllers/UsersController.cs
diff --git a/Dockerfile b/src/Dockerfile
similarity index 87%
rename from Dockerfile
rename to src/Dockerfile
index e161079..c3679c9 100644
--- a/Dockerfile
+++ b/src/Dockerfile
@@ -7,8 +7,8 @@ FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
-COPY ["fengling-console/Fengling.Console.csproj", "fengling-console/"]
-COPY ["fengling-gateway/YarpGateway.csproj", "fengling-gateway/"]
+COPY ["fengling-console/src/Fengling.Console.csproj", "fengling-console/"]
+COPY ["fengling-gateway/src/YarpGateway.csproj", "fengling-gateway/"]
COPY ["fengling-platform/Fengling.Platform.Infrastructure/Fengling.Platform.Infrastructure.csproj", "fengling-platform/Fengling.Platform.Infrastructure/"]
COPY ["fengling-platform/Fengling.Platform.Domain/Fengling.Platform.Domain.csproj", "fengling-platform/Fengling.Platform.Domain/"]
COPY ["fengling-service-discovery/Fengling.ServiceDiscovery.Core/Fengling.ServiceDiscovery.Core.csproj", "fengling-service-discovery/Fengling.ServiceDiscovery.Core/"]
@@ -26,4 +26,4 @@ RUN dotnet publish "./Fengling.Console.csproj" -c $BUILD_CONFIGURATION -o /app/p
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Fengling.Console.dll"]
\ No newline at end of file
+ENTRYPOINT ["dotnet", "Fengling.Console.dll"]
diff --git a/Fengling.Console.csproj b/src/Fengling.Console.csproj
similarity index 83%
rename from Fengling.Console.csproj
rename to src/Fengling.Console.csproj
index 1099db3..ac55440 100644
--- a/Fengling.Console.csproj
+++ b/src/Fengling.Console.csproj
@@ -33,9 +33,8 @@
-
-
-
+
+
diff --git a/Fengling.Console.http b/src/Fengling.Console.http
similarity index 100%
rename from Fengling.Console.http
rename to src/Fengling.Console.http
diff --git a/Models/Dtos/CreateClientDto.cs b/src/Models/Dtos/CreateClientDto.cs
similarity index 100%
rename from Models/Dtos/CreateClientDto.cs
rename to src/Models/Dtos/CreateClientDto.cs
diff --git a/Models/Dtos/CreateRoleDto.cs b/src/Models/Dtos/CreateRoleDto.cs
similarity index 100%
rename from Models/Dtos/CreateRoleDto.cs
rename to src/Models/Dtos/CreateRoleDto.cs
diff --git a/Models/Dtos/CreateTenantDto.cs b/src/Models/Dtos/CreateTenantDto.cs
similarity index 100%
rename from Models/Dtos/CreateTenantDto.cs
rename to src/Models/Dtos/CreateTenantDto.cs
diff --git a/Models/Dtos/CreateUserDto.cs b/src/Models/Dtos/CreateUserDto.cs
similarity index 100%
rename from Models/Dtos/CreateUserDto.cs
rename to src/Models/Dtos/CreateUserDto.cs
diff --git a/Models/Dtos/GatewayDto.cs b/src/Models/Dtos/GatewayDto.cs
similarity index 100%
rename from Models/Dtos/GatewayDto.cs
rename to src/Models/Dtos/GatewayDto.cs
diff --git a/Models/Dtos/OAuthClientDto.cs b/src/Models/Dtos/OAuthClientDto.cs
similarity index 100%
rename from Models/Dtos/OAuthClientDto.cs
rename to src/Models/Dtos/OAuthClientDto.cs
diff --git a/Models/Dtos/OAuthClientQueryDto.cs b/src/Models/Dtos/OAuthClientQueryDto.cs
similarity index 100%
rename from Models/Dtos/OAuthClientQueryDto.cs
rename to src/Models/Dtos/OAuthClientQueryDto.cs
diff --git a/Models/Dtos/PaginationDto.cs b/src/Models/Dtos/PaginationDto.cs
similarity index 100%
rename from Models/Dtos/PaginationDto.cs
rename to src/Models/Dtos/PaginationDto.cs
diff --git a/Models/Dtos/ResetPasswordDto.cs b/src/Models/Dtos/ResetPasswordDto.cs
similarity index 100%
rename from Models/Dtos/ResetPasswordDto.cs
rename to src/Models/Dtos/ResetPasswordDto.cs
diff --git a/Models/Dtos/RoleDto.cs b/src/Models/Dtos/RoleDto.cs
similarity index 100%
rename from Models/Dtos/RoleDto.cs
rename to src/Models/Dtos/RoleDto.cs
diff --git a/Models/Dtos/RoleQueryDto.cs b/src/Models/Dtos/RoleQueryDto.cs
similarity index 100%
rename from Models/Dtos/RoleQueryDto.cs
rename to src/Models/Dtos/RoleQueryDto.cs
diff --git a/Models/Dtos/TenantDto.cs b/src/Models/Dtos/TenantDto.cs
similarity index 100%
rename from Models/Dtos/TenantDto.cs
rename to src/Models/Dtos/TenantDto.cs
diff --git a/Models/Dtos/TenantQueryDto.cs b/src/Models/Dtos/TenantQueryDto.cs
similarity index 100%
rename from Models/Dtos/TenantQueryDto.cs
rename to src/Models/Dtos/TenantQueryDto.cs
diff --git a/Models/Dtos/TenantSettingsDto.cs b/src/Models/Dtos/TenantSettingsDto.cs
similarity index 100%
rename from Models/Dtos/TenantSettingsDto.cs
rename to src/Models/Dtos/TenantSettingsDto.cs
diff --git a/Models/Dtos/UpdateClientDto.cs b/src/Models/Dtos/UpdateClientDto.cs
similarity index 100%
rename from Models/Dtos/UpdateClientDto.cs
rename to src/Models/Dtos/UpdateClientDto.cs
diff --git a/Models/Dtos/UpdateRoleDto.cs b/src/Models/Dtos/UpdateRoleDto.cs
similarity index 100%
rename from Models/Dtos/UpdateRoleDto.cs
rename to src/Models/Dtos/UpdateRoleDto.cs
diff --git a/Models/Dtos/UpdateTenantDto.cs b/src/Models/Dtos/UpdateTenantDto.cs
similarity index 100%
rename from Models/Dtos/UpdateTenantDto.cs
rename to src/Models/Dtos/UpdateTenantDto.cs
diff --git a/Models/Dtos/UpdateUserDto.cs b/src/Models/Dtos/UpdateUserDto.cs
similarity index 100%
rename from Models/Dtos/UpdateUserDto.cs
rename to src/Models/Dtos/UpdateUserDto.cs
diff --git a/Models/Dtos/UserDto.cs b/src/Models/Dtos/UserDto.cs
similarity index 100%
rename from Models/Dtos/UserDto.cs
rename to src/Models/Dtos/UserDto.cs
diff --git a/Models/Dtos/UserQueryDto.cs b/src/Models/Dtos/UserQueryDto.cs
similarity index 100%
rename from Models/Dtos/UserQueryDto.cs
rename to src/Models/Dtos/UserQueryDto.cs
diff --git a/Program.cs b/src/Program.cs
similarity index 100%
rename from Program.cs
rename to src/Program.cs
diff --git a/Properties/launchSettings.json b/src/Properties/launchSettings.json
similarity index 100%
rename from Properties/launchSettings.json
rename to src/Properties/launchSettings.json
diff --git a/Services/GatewayService.cs b/src/Services/GatewayService.cs
similarity index 100%
rename from Services/GatewayService.cs
rename to src/Services/GatewayService.cs
diff --git a/Services/H5LinkService.cs b/src/Services/H5LinkService.cs
similarity index 100%
rename from Services/H5LinkService.cs
rename to src/Services/H5LinkService.cs
diff --git a/Services/OAuthClientService.cs b/src/Services/OAuthClientService.cs
similarity index 100%
rename from Services/OAuthClientService.cs
rename to src/Services/OAuthClientService.cs
diff --git a/Services/RoleService.cs b/src/Services/RoleService.cs
similarity index 100%
rename from Services/RoleService.cs
rename to src/Services/RoleService.cs
diff --git a/Services/TenantService.cs b/src/Services/TenantService.cs
similarity index 100%
rename from Services/TenantService.cs
rename to src/Services/TenantService.cs
diff --git a/Services/UserService.cs b/src/Services/UserService.cs
similarity index 100%
rename from Services/UserService.cs
rename to src/Services/UserService.cs
diff --git a/appsettings.Development.json b/src/appsettings.Development.json
similarity index 100%
rename from appsettings.Development.json
rename to src/appsettings.Development.json
diff --git a/appsettings.json b/src/appsettings.json
similarity index 100%
rename from appsettings.json
rename to src/appsettings.json