diff --git a/.dockerignore b/.dockerignore index 8a1b0840..0ccf3745 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,6 @@ .git .idea +.vscode .github anubis-source **/node_modules @@ -16,4 +17,19 @@ logs .env .env.* docker-compose*.yml - +config.yaml +bin/ +data/ +uploads/ +s3_cache/ +frontend/node_modules/ +frontend/.next/ +frontend/out/ +frontend/build/ +frontend/disk/ +frontend/.env +frontend/next-env.d.ts +frontend/*.tsbuildinfo +frontend/package-lock.json +internal/router/dist/ +internal/router/root/dist/ diff --git a/openflare-server/.editorconfig b/.editorconfig similarity index 100% rename from openflare-server/.editorconfig rename to .editorconfig diff --git a/openflare-server/.env.example b/.env.example similarity index 100% rename from openflare-server/.env.example rename to .env.example diff --git a/.github/workflows/docker-server.yml b/.github/workflows/docker-server.yml index 8a284da8..cb5b1ac9 100644 --- a/.github/workflows/docker-server.yml +++ b/.github/workflows/docker-server.yml @@ -74,7 +74,7 @@ jobs: id: build uses: docker/build-push-action@v7 with: - context: ./openflare-server + context: . file: ./docker/Dockerfile platforms: ${{ matrix.platform }} outputs: type=image,name=${{ env.IMAGE }},push-by-digest=true,name-canonical=true,push=true diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index 1146ddb6..543539f7 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -17,7 +17,7 @@ jobs: env: CI: "" run: | - cd openflare-server/frontend + cd frontend corepack enable pnpm install --frozen-lockfile pnpm build:embed @@ -27,4 +27,4 @@ jobs: with: ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} BRANCH: gh-pages # The branch the action should deploy to. - FOLDER: openflare-server/frontend/out # The folder the action should deploy. \ No newline at end of file + FOLDER: frontend/out # The folder the action should deploy. \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fcc3de55..590f35dc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -80,10 +80,10 @@ jobs: with: node-version: 22 cache: pnpm - cache-dependency-path: openflare-server/frontend/pnpm-lock.yaml + cache-dependency-path: frontend/pnpm-lock.yaml - name: Build Frontend - working-directory: openflare-server/frontend + working-directory: frontend env: CI: "" NEXT_PUBLIC_APP_VERSION: ${{ needs.prepare.outputs.version }} @@ -93,14 +93,14 @@ jobs: - name: Prepare embed directory run: | - rm -rf openflare-server/internal/router/root/dist - cp -R openflare-server/frontend/out openflare-server/internal/router/root/dist + rm -rf internal/router/root/dist + cp -R frontend/out internal/router/root/dist - name: Upload Frontend Artifact uses: actions/upload-artifact@v4 with: name: frontend-build - path: openflare-server/internal/router/root/dist + path: internal/router/root/dist retention-days: 1 build-binaries: @@ -139,16 +139,15 @@ jobs: uses: actions/download-artifact@v4 with: name: frontend-build - path: openflare-server/internal/router/root/dist + path: internal/router/root/dist - name: Set up Go uses: actions/setup-go@v5 with: - go-version-file: openflare-server/go.mod - cache-dependency-path: openflare-server/go.sum + go-version-file: go.mod + cache-dependency-path: go.sum - name: Build Server - working-directory: openflare-server env: CGO_ENABLED: 0 GOOS: ${{ matrix.goos }} @@ -157,10 +156,10 @@ jobs: VERSION: ${{ needs.prepare.outputs.version }} run: | go mod download - mkdir -p ../dist + mkdir -p dist go build -trimpath -tags embed_frontend \ -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/buildinfo.Version=$VERSION'" \ - -o "../dist/$ASSET_NAME" ./main.go + -o "dist/$ASSET_NAME" ./main.go - name: Upload Binary Artifact uses: actions/upload-artifact@v4 @@ -202,7 +201,6 @@ jobs: go-version-file: go.mod - name: Build Agent - working-directory: openflare-agent env: CGO_ENABLED: 0 GOOS: ${{ matrix.goos }} @@ -211,9 +209,9 @@ jobs: VERSION: ${{ needs.prepare.outputs.version }} run: | go mod download - mkdir -p ../dist - go build -trimpath -ldflags "-s -w -X 'github.com/rain-kl/openflare/openflare-agent/internal/config.Version=$VERSION'" -o "../dist/$ASSET_NAME" ./cmd/agent - (cd ../dist && sha256sum "$ASSET_NAME" > "$ASSET_NAME.sha256") + mkdir -p dist + go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/apps/agent/config.Version=$VERSION'" -o "dist/$ASSET_NAME" ./cmd/agent/main.go + (cd dist && sha256sum "$ASSET_NAME" > "$ASSET_NAME.sha256") - name: Upload Agent Artifact uses: actions/upload-artifact@v4 @@ -257,7 +255,6 @@ jobs: go-version-file: go.mod - name: Build Relay - working-directory: openflare-relay env: CGO_ENABLED: 0 GOOS: ${{ matrix.goos }} @@ -266,9 +263,9 @@ jobs: VERSION: ${{ needs.prepare.outputs.version }} run: | go mod download - mkdir -p ../dist - go build -trimpath -ldflags "-s -w -X 'github.com/rain-kl/openflare/openflare-relay/internal/config.Version=$VERSION'" -o "../dist/$ASSET_NAME" ./cmd/relay - (cd ../dist && sha256sum "$ASSET_NAME" > "$ASSET_NAME.sha256") + mkdir -p dist + go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/apps/relay/config.Version=$VERSION'" -o "dist/$ASSET_NAME" ./cmd/relay/main.go + (cd dist && sha256sum "$ASSET_NAME" > "$ASSET_NAME.sha256") - name: Upload Relay Artifact uses: actions/upload-artifact@v4 @@ -312,7 +309,6 @@ jobs: go-version-file: go.mod - name: Build Flared - working-directory: openflared env: CGO_ENABLED: 0 GOOS: ${{ matrix.goos }} @@ -321,9 +317,9 @@ jobs: VERSION: ${{ needs.prepare.outputs.version }} run: | go mod download - mkdir -p ../dist - go build -trimpath -ldflags "-s -w -X 'github.com/rain-kl/openflare/openflared/internal/config.Version=$VERSION'" -o "../dist/$ASSET_NAME" ./cmd/flared - (cd ../dist && sha256sum "$ASSET_NAME" > "$ASSET_NAME.sha256") + mkdir -p dist + go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/apps/flared/config.Version=$VERSION'" -o "dist/$ASSET_NAME" ./cmd/flared/main.go + (cd dist && sha256sum "$ASSET_NAME" > "$ASSET_NAME.sha256") - name: Upload Flared Artifact uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index 7751ad3e..6a08acc4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,57 +1,80 @@ -.cache -.gocache* -.idea -.vscode -/upload/ -*.exe -*.db -build -*.log -/logs/ -.gocache - -# If you prefer the allow list template instead of the deny list, see community template: -# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore -# -# Binaries for programs and plugins -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Code coverage profiles and other test artifacts -*.out -coverage.* -*.coverprofile -profile.cov - -# Dependency directories (remove the comment below to include it) -# vendor/ - -# Go workspace file -go.work -go.work.sum - -# env file -.env - -# Editor/IDE -# .idea/ -# .vscode/ - -.DS_Store -.codex-cache -/.gomodcache/ -*.mmdb -!openflare_agent/internal/geoipdata/GeoLite2-Country.mmdb - -*-source -*-source.zip -.codex* - -/bin/ -.dmux/ -.grok \ No newline at end of file +# IDE +.idea/* +.idea +!.idea/icon.png +.vscode +.pnpm-store/ + +# logs +/logs/ +*.log + +# config +config.yaml +.env +.env.* +!.env.example + +# sqlite +*.db +*.db-journal +*.db-shm +*.db-wal + +# frontend +frontend/build +frontend/disk +frontend/node_modules/* +frontend/.next/* +frontend/next-env.d.ts +frontend/package-lock.json +frontend/.env +*.tsbuildinfo + +# os +.DS_Store +Thumbs.db + +# build +/build/ +/bin/ +/dist/ + +# go workspace +go.work +go.work.sum +main + +# upload +/uploads/ +s3_cache + +/frontend/.next/ +/data/ +/internal/router/dist/ +/frontend/out/ +/internal/router/root/dist/ +.dmux/ + +# test coverage +*.out +coverage.* +*.coverprofile +profile.cov + +# generic ignores +.cache +.gocache* +*.exe +*.exe~ +*.dll +*.so +*.dylib +*.test +*-source +*-source.zip +.codex* +.grok +/.gomodcache/ +*.mmdb +!openflare_agent/internal/geoipdata/GeoLite2-Country.mmdb \ No newline at end of file diff --git a/openflare-server/.golangci.yml b/.golangci.yml similarity index 100% rename from openflare-server/.golangci.yml rename to .golangci.yml diff --git a/openflare-server/Makefile b/Makefile similarity index 100% rename from openflare-server/Makefile rename to Makefile diff --git a/openflare-server/cmd/agent/main.go b/cmd/agent/main.go similarity index 85% rename from openflare-server/cmd/agent/main.go rename to cmd/agent/main.go index e27120be..8324d154 100644 --- a/openflare-server/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -8,17 +8,17 @@ import ( "os/signal" "syscall" - "github.com/Rain-kl/Wavelet/internal/agent/agent" - "github.com/Rain-kl/Wavelet/internal/agent/config" - "github.com/Rain-kl/Wavelet/internal/agent/geoipupdate" - "github.com/Rain-kl/Wavelet/internal/agent/heartbeat" - "github.com/Rain-kl/Wavelet/internal/agent/httpclient" - "github.com/Rain-kl/Wavelet/internal/agent/logging" - "github.com/Rain-kl/Wavelet/internal/agent/nginx" - "github.com/Rain-kl/Wavelet/internal/agent/state" - syncservice "github.com/Rain-kl/Wavelet/internal/agent/sync" - "github.com/Rain-kl/Wavelet/internal/agent/updater" - "github.com/Rain-kl/Wavelet/internal/agent/wsclient" + "github.com/Rain-kl/Wavelet/internal/apps/agent/agent" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/geoipupdate" + "github.com/Rain-kl/Wavelet/internal/apps/agent/heartbeat" + "github.com/Rain-kl/Wavelet/internal/apps/agent/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/agent/logging" + "github.com/Rain-kl/Wavelet/internal/apps/agent/nginx" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" + syncservice "github.com/Rain-kl/Wavelet/internal/apps/agent/sync" + "github.com/Rain-kl/Wavelet/internal/apps/agent/updater" + "github.com/Rain-kl/Wavelet/internal/apps/agent/wsclient" ) func main() { diff --git a/openflare-server/cmd/flared/main.go b/cmd/flared/main.go similarity index 82% rename from openflare-server/cmd/flared/main.go rename to cmd/flared/main.go index a0e30401..c9af5341 100644 --- a/openflare-server/cmd/flared/main.go +++ b/cmd/flared/main.go @@ -9,13 +9,13 @@ import ( "strings" "syscall" - "github.com/Rain-kl/Wavelet/internal/flared/config" - "github.com/Rain-kl/Wavelet/internal/flared/flared" - "github.com/Rain-kl/Wavelet/internal/flared/frpc" - "github.com/Rain-kl/Wavelet/internal/flared/heartbeat" - "github.com/Rain-kl/Wavelet/internal/flared/httpclient" - "github.com/Rain-kl/Wavelet/internal/flared/sync" - "github.com/Rain-kl/Wavelet/internal/flared/wsclient" + "github.com/Rain-kl/Wavelet/internal/apps/flared/config" + "github.com/Rain-kl/Wavelet/internal/apps/flared/flared" + "github.com/Rain-kl/Wavelet/internal/apps/flared/frpc" + "github.com/Rain-kl/Wavelet/internal/apps/flared/heartbeat" + "github.com/Rain-kl/Wavelet/internal/apps/flared/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/flared/sync" + "github.com/Rain-kl/Wavelet/internal/apps/flared/wsclient" ) func main() { diff --git a/openflare-server/cmd/relay/main.go b/cmd/relay/main.go similarity index 83% rename from openflare-server/cmd/relay/main.go rename to cmd/relay/main.go index 9cd59290..1ff7c419 100644 --- a/openflare-server/cmd/relay/main.go +++ b/cmd/relay/main.go @@ -9,13 +9,13 @@ import ( "strings" "syscall" - "github.com/Rain-kl/Wavelet/internal/relay/config" - "github.com/Rain-kl/Wavelet/internal/relay/frps" - "github.com/Rain-kl/Wavelet/internal/relay/heartbeat" - "github.com/Rain-kl/Wavelet/internal/relay/httpclient" - "github.com/Rain-kl/Wavelet/internal/relay/relay" - "github.com/Rain-kl/Wavelet/internal/relay/state" - "github.com/Rain-kl/Wavelet/internal/relay/wsclient" + "github.com/Rain-kl/Wavelet/internal/apps/relay/config" + "github.com/Rain-kl/Wavelet/internal/apps/relay/frps" + "github.com/Rain-kl/Wavelet/internal/apps/relay/heartbeat" + "github.com/Rain-kl/Wavelet/internal/apps/relay/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/relay/relay" + "github.com/Rain-kl/Wavelet/internal/apps/relay/state" + "github.com/Rain-kl/Wavelet/internal/apps/relay/wsclient" ) func main() { diff --git a/openflare-server/config.example.yaml b/config.example.yaml similarity index 100% rename from openflare-server/config.example.yaml rename to config.example.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml index 3e101290..8f3e198f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,30 +1,120 @@ services: + wavelet: + build: + context: . + dockerfile: docker/Dockerfile + args: + VERSION: v0.9.9 +# image: ghcr.io/rain-kl/wavelet:latest + restart: unless-stopped + env_file: .env + environment: + TZ: ${TZ:-Asia/Shanghai} + OTEL_EXPORTER_OTLP_ENDPOINT: ${OTEL_EXPORTER_OTLP_ENDPOINT:-http://jaeger:4317} + OTEL_EXPORTER_OTLP_INSECURE: ${OTEL_EXPORTER_OTLP_INSECURE:-true} + OTEL_SAMPLING_RATE: ${OTEL_SAMPLING_RATE:-1.0} + ports: + - "${APP_PORT:-3000}:3000" + volumes: + - ./uploads:/app/uploads + - ./data/sqlite:/app/data + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + clickhouse: + condition: service_healthy + jaeger: + condition: service_started + + postgres: + image: postgres:17-alpine + restart: unless-stopped + environment: + POSTGRES_DB: ${POSTGRES_DB:-openflare} + POSTGRES_USER: ${POSTGRES_USER:-postgres} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} + TZ: ${TZ:-Asia/Shanghai} + ports: + - "${POSTGRES_PORT:-5432}:5432" + volumes: + - ./data/postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-openflare}"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + + redis: + image: valkey/valkey:8.0-alpine + restart: unless-stopped + command: ["valkey-server", "--appendonly", "yes"] + ports: + - "${REDIS_PORT:-6379}:6379" + volumes: + - ./data/valkey:/data + healthcheck: + test: ["CMD", "valkey-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 5s + + jaeger: + image: jaegertracing/jaeger:${JAEGER_VERSION:-2.19.0} + restart: unless-stopped + environment: + TZ: ${TZ:-Asia/Shanghai} + ports: + - "${JAEGER_UI_PORT:-16686}:16686" + - "${JAEGER_OTLP_GRPC_PORT:-4317}:4317" + - "${JAEGER_OTLP_HTTP_PORT:-4318}:4318" + + clickhouse: + image: clickhouse/clickhouse-server:25.3-alpine + restart: unless-stopped + environment: + CLICKHOUSE_DB: ${CLICKHOUSE_DB:-openflare} + CLICKHOUSE_USER: ${CLICKHOUSE_USER:-default} + CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-} + CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 + TZ: ${TZ:-Asia/Shanghai} + ports: + - "${CLICKHOUSE_HTTP_PORT:-8123}:8123" + - "${CLICKHOUSE_NATIVE_PORT:-9000}:9000" + volumes: + - ./data/clickhouse_data:/var/lib/clickhouse + healthcheck: + test: ["CMD", "clickhouse-client", "--query", "SELECT 1"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 15s + agent: build: - context: ./openflare-server - dockerfile: docker/Dockerfile.agent + context: . + dockerfile: docker/Dockerfile.agent container_name: openflare-agent restart: unless-stopped - ports: - "80:80" - "443:443" - "127.0.0.1:18081:18081" - volumes: - ./data/agent/:/data - environment: OPENFLARE_SERVER_URL: "http://host.docker.internal:3000" OPENFLARE_AGENT_TOKEN: "ce5a664631a7c5c54d3406a376847535" LOG_LEVEL: "debug" - extra_hosts: - "host.docker.internal:host-gateway" relay: build: - context: ./openflare-server + context: . dockerfile: docker/Dockerfile.relay container_name: openflare-relay network_mode: host @@ -38,10 +128,9 @@ services: extra_hosts: - "host.docker.internal:host-gateway" - flared: build: - context: ./openflare-server + context: . dockerfile: docker/Dockerfile.flared container_name: openflare-flared network_mode: "host" @@ -51,5 +140,3 @@ services: environment: OPENFLARE_SERVER_URL: "http://host.docker.internal:3000" OPENFLARE_TUNNEL_TOKEN: deb0783ac1e264a9d86440169aca0f09 - - diff --git a/openflare-server/docker/Dockerfile b/docker/Dockerfile similarity index 100% rename from openflare-server/docker/Dockerfile rename to docker/Dockerfile diff --git a/openflare-server/docker/Dockerfile.agent b/docker/Dockerfile.agent similarity index 90% rename from openflare-server/docker/Dockerfile.agent rename to docker/Dockerfile.agent index 514f33e5..77132672 100644 --- a/openflare-server/docker/Dockerfile.agent +++ b/docker/Dockerfile.agent @@ -19,7 +19,7 @@ RUN --mount=type=cache,target=/go/pkg/mod \ COPY . . RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ - go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/agent/config.Version=$VERSION'" -o /build/bin/openflare-agent ./cmd/agent/main.go + go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/apps/agent/config.Version=$VERSION'" -o /build/bin/openflare-agent ./cmd/agent/main.go FROM openresty/openresty:alpine diff --git a/openflare-server/docker/Dockerfile.backend b/docker/Dockerfile.backend similarity index 100% rename from openflare-server/docker/Dockerfile.backend rename to docker/Dockerfile.backend diff --git a/openflare-server/docker/Dockerfile.cross b/docker/Dockerfile.cross similarity index 100% rename from openflare-server/docker/Dockerfile.cross rename to docker/Dockerfile.cross diff --git a/openflare-server/docker/Dockerfile.flared b/docker/Dockerfile.flared similarity index 84% rename from openflare-server/docker/Dockerfile.flared rename to docker/Dockerfile.flared index fcf45810..a8f82b6d 100644 --- a/openflare-server/docker/Dockerfile.flared +++ b/docker/Dockerfile.flared @@ -13,7 +13,7 @@ RUN --mount=type=cache,target=/go/pkg/mod \ COPY . . RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ - CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/flared/config.Version=$VERSION'" -o flared ./cmd/flared/main.go + CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/apps/flared/config.Version=$VERSION'" -o flared ./cmd/flared/main.go # Final runtime image FROM fatedier/frpc:v0.69.0 diff --git a/openflare-server/docker/Dockerfile.frontend b/docker/Dockerfile.frontend similarity index 100% rename from openflare-server/docker/Dockerfile.frontend rename to docker/Dockerfile.frontend diff --git a/openflare-server/docker/Dockerfile.relay b/docker/Dockerfile.relay similarity index 83% rename from openflare-server/docker/Dockerfile.relay rename to docker/Dockerfile.relay index d60654f7..3c2fb2c0 100644 --- a/openflare-server/docker/Dockerfile.relay +++ b/docker/Dockerfile.relay @@ -13,7 +13,7 @@ RUN --mount=type=cache,target=/go/pkg/mod \ COPY . . RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ - CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/relay/config.Version=$VERSION'" -o /build/bin/openflare-relay ./cmd/relay/main.go + CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -w -X 'github.com/Rain-kl/Wavelet/internal/apps/relay/config.Version=$VERSION'" -o /build/bin/openflare-relay ./cmd/relay/main.go # Final runtime image FROM fatedier/frps:v0.69.0 diff --git a/openflare-server/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md similarity index 100% rename from openflare-server/docs/DEPLOYMENT.md rename to docs/DEPLOYMENT.md diff --git a/openflare-server/docs/PERFORMANCE.md b/docs/PERFORMANCE.md similarity index 100% rename from openflare-server/docs/PERFORMANCE.md rename to docs/PERFORMANCE.md diff --git a/docs/design/index.md b/docs/design/index.md index 82477d5c..4326b055 100644 --- a/docs/design/index.md +++ b/docs/design/index.md @@ -66,17 +66,15 @@ OpenFlare 适合需要统一管理多台 OpenResty 代理节点的团队,具 | 路径 | 职责 | | ---------------------- | ---------------------------------------------------- | -| `openflare-server` | Gin + GORM + SQLite/PostgreSQL 单体控制面 | -| `openflare-server/frontend` | Next.js App Router 管理端前端,由 Go Server 嵌入托管 | +| `cmd` | 各组件的命令行启动入口及主函数(server, agent, relay, flared) | +| `internal` | 各组件的内部业务逻辑,通过子包隔离控制(agent, relay, flared, 核心控制面等) | +| `frontend` | Next.js App Router 管理端前端,由 Go Server 嵌入托管 | | `pkg` | 跨组件复用的协议类型与通用工具包 | -| `openflare-agent` | Go 单体 Agent,运行在节点侧 | -| `openflare-relay` | Tunnel 中继代理,运行在公网边缘管理 frps 进程 | -| `openflared` | Tunnel 客户端,运行在内网服务器侧管理 frpc 进程 | | `scripts` | 安装、自更新等系统辅助脚本 | | `docs` | VitePress 文档站、设计基线、开发规范、部署与配置文档 | -| `docs/en` | 英文版文档 | +| `docker` | 各组件 of Dockerfile 构建文件 | -### 1. Server 分层 (`openflare-server/`) +### 1. Server 分层 (`internal/` / `cmd/server/`) | 目录 | 职责 | | ----------------------- | ------------------------------------------------ | @@ -90,7 +88,7 @@ OpenFlare 适合需要统一管理多台 OpenResty 代理节点的团队,具 | `internal/common/` | 配置、全局状态与初始化入口 | | `internal/job/` | 定时任务(各业务定时逻辑在独立文件中定义,cron.go 仅用于初始化调度) | | `internal/utils/` | 仅 Server 内部使用的基础能力包,如 ACME、限流、验证码、邮件、安全校验等 | -| `pkg/protocol/` | Server、Relay、OpenFlared 之间共享的 HTTP/WS 协议结构 | +| `pkg/protocol/` | Server、Relay、OpenFlared 之间共享 of HTTP/WS 协议结构 | | `pkg/utils/` | 跨组件可复用的纯工具函数 | | `pkg/geoip`、`pkg/render`、`pkg/wsclient` | 被多个组件复用的 GeoIP、OpenResty 配置渲染与 WebSocket 客户端能力 | | `upload/` | 运行时本地临时文件上传目录(在 .gitignore 中忽略) | @@ -98,27 +96,27 @@ OpenFlare 适合需要统一管理多台 OpenResty 代理节点的团队,具 | `docs/` | API 文档(Swagger) | | `data/` | 静态数据(如 GeoIP 数据库) | -### 2. Agent 模块 (`openflare-agent/`) +### 2. Agent 模块 (`internal/apps/agent/` / `cmd/agent/`) | 目录/模块 | 职责 | | ----------------------------- | -------------------------------------------- | | `cmd/agent/` | Agent 命令行启动入口及主函数 | -| `internal/config/` | 配置读取与默认值 | -| `internal/heartbeat/` | 心跳与版本摘要判断 | -| `internal/sync/` | 配置拉取与应用编排 | -| `internal/nginx/` | OpenResty 文件写入、校验、reload、启动与回滚 | -| `internal/state/` | 本地状态与观测补报缓冲 | -| `internal/httpclient/` | Server 通信 | -| `internal/wsclient/` | WebSocket 客户端通信 | -| `internal/protocol/` | Agent API 协议类型 | -| `internal/updater/` | Agent 自更新逻辑 | -| `internal/logging/` | 日志处理 | -| `internal/observability/` | 可观测性(指标、链路等) | -| `internal/geoipdata/` | GeoIP 数据处理 | -| `internal/geoipupdate/` | GeoIP 数据更新 | -| `internal/agent/` | 核心 Agent 逻辑与生命周期 | +| `internal/apps/agent/config/` | 配置读取与默认值 | +| `internal/apps/agent/heartbeat/` | 心跳与版本摘要判断 | +| `internal/apps/agent/sync/` | 配置拉取与应用编排 | +| `internal/apps/agent/nginx/` | OpenResty 文件写入、校验、reload、启动与回滚 | +| `internal/apps/agent/state/` | 本地状态与观测补报缓冲 | +| `internal/apps/agent/httpclient/` | Server 通信 | +| `internal/apps/agent/wsclient/` | WebSocket 客户端通信 | +| `internal/apps/agent/protocol/` | Agent API 协议类型 | +| `internal/apps/agent/updater/` | Agent 自更新逻辑 | +| `internal/apps/agent/logging/` | 日志处理 | +| `internal/apps/agent/observability/`| 可观测性(指标、链路等) | +| `internal/apps/agent/geoipdata/` | GeoIP 数据处理 | +| `internal/apps/agent/geoipupdate/` | GeoIP 数据更新 | +| `internal/apps/agent/agent/` | 核心 Agent 逻辑与生命周期 | -### 3. Frontend 分层 (`openflare-server/web/`) +### 3. Frontend 分层 (`frontend/`) | 目录 | 职责 | | ------------- | -------------------------------------------- | @@ -133,34 +131,34 @@ OpenFlare 适合需要统一管理多台 OpenResty 代理节点的团队,具 | `scripts/` | 构建和部署相关脚本 | | `public/` | 静态资源 | -### 4. Relay 模块 (`openflare-relay/`) +### 4. Relay 模块 (`internal/apps/relay/` / `cmd/relay/`) | 模块 | 职责 | | ---------------- | ------------------------------------------------ | | `cmd/` | Relay 命令行启动入口及初始化主函数 | -| `internal/config/`| 本地配置文件解析与默认参数初始化 | -| `internal/frps/` | 管理 frps 进程生命周期、端口与 Token 并监控运行 | -| `internal/heartbeat/`| 周期性 HTTP 心跳通信、上报状态并获取更新请求 | -| `internal/httpclient/`| Server 的通用 API 客户端调用工具类 | -| `internal/observability/`| 采集本地宿主机、frps 的基础运行指标并进行预聚合 | -| `internal/relay/` | 协调中继的核心生命周期、初始化与清理 | -| `internal/state/` | 本地运行时状态、错误记录与持久化缓存 | -| `internal/updater/`| Relay 升级检查、下载安装与重启机制 | -| `internal/wsclient/`| 与 Server 保持的长连接 WebSocket 双向通信管道 | +| `internal/apps/relay/config/`| 本地配置文件解析与默认参数初始化 | +| `internal/apps/relay/frps/` | 管理 frps 进程生命周期、端口与 Token 并监控运行 | +| `internal/apps/relay/heartbeat/`| 周期性 HTTP 心跳通信、上报状态并获取更新请求 | +| `internal/apps/relay/httpclient/`| Server 的通用 API 客户端调用工具类 | +| `internal/apps/relay/observability/`| 采集本地宿主机、frps 的基础运行指标并进行预聚合 | +| `internal/apps/relay/relay/` | 协调中继的核心生命周期、初始化与清理 | +| `internal/apps/relay/state/` | 本地运行时状态、错误记录与持久化缓存 | +| `internal/apps/relay/updater/`| Relay 升级检查、下载安装与重启机制 | +| `internal/apps/relay/wsclient/`| 与 Server 保持的长连接 WebSocket 双向通信管道 | -### 5. OpenFlared (Client) 模块 (`openflared/`) +### 5. OpenFlared (Client) 模块 (`internal/apps/flared/` / `cmd/flared/`) | 模块 | 职责 | | ---------------- | ------------------------------------------------ | | `cmd/` | Client 命令行启动入口及初始化主函数 | -| `internal/config/`| 本地客户端配置加载与解析 | -| `internal/flared/`| 内网穿透客户端的核心调度与状态管理机制 | -| `internal/frpc/` | 热重载/动态生成多 Relay 的 `frpc.toml` 并监控 frpc | -| `internal/heartbeat/`| 与控制面进行的心跳通信,包含 Token 校验机制 | -| `internal/httpclient/`| 客户端通用 API 通信客户端 | -| `internal/sync/` | 增量拉取最新 Tunnel 路由绑定关系、生成快照并应用 | -| `internal/updater/`| 客户端自更新、新版检查与更新落地逻辑 | -| `internal/wsclient/`| 用于实时监听 Server 端隧道配置变更推送的 WS 信道 | +| `internal/apps/flared/config/`| 本地客户端配置加载与解析 | +| `internal/apps/flared/flared/`| 内网穿透客户端的核心调度与状态管理机制 | +| `internal/apps/flared/frpc/` | 热重载/动态生成多 Relay 的 `frpc.toml` 并监控 frpc | +| `internal/apps/flared/heartbeat/`| 与控制面进行的心跳通信,包含 Token 校验机制 | +| `internal/apps/flared/httpclient/`| 客户端通用 API 通信客户端 | +| `internal/apps/flared/sync/` | 增量拉取最新 Tunnel 路由绑定关系、生成快照并应用 | +| `internal/apps/flared/updater/`| 客户端自更新、新版检查与更新落地逻辑 | +| `internal/apps/flared/wsclient/`| 用于实时监听 Server 端隧道配置变更推送的 WS 信道 | --- diff --git a/openflare-server/docs/docs.go b/docs/docs.go similarity index 100% rename from openflare-server/docs/docs.go rename to docs/docs.go diff --git a/openflare-server/docs/swagger.json b/docs/swagger.json similarity index 100% rename from openflare-server/docs/swagger.json rename to docs/swagger.json diff --git a/openflare-server/docs/swagger.yaml b/docs/swagger.yaml similarity index 100% rename from openflare-server/docs/swagger.yaml rename to docs/swagger.yaml diff --git a/openflare-server/frontend/.env.example b/frontend/.env.example similarity index 100% rename from openflare-server/frontend/.env.example rename to frontend/.env.example diff --git a/openflare-server/frontend/README.md b/frontend/README.md similarity index 100% rename from openflare-server/frontend/README.md rename to frontend/README.md diff --git a/openflare-server/frontend/README_zh.md b/frontend/README_zh.md similarity index 100% rename from openflare-server/frontend/README_zh.md rename to frontend/README_zh.md diff --git a/openflare-server/frontend/app/(auth)/login/page.tsx b/frontend/app/(auth)/login/page.tsx similarity index 100% rename from openflare-server/frontend/app/(auth)/login/page.tsx rename to frontend/app/(auth)/login/page.tsx diff --git a/openflare-server/frontend/app/(auth)/register/page.tsx b/frontend/app/(auth)/register/page.tsx similarity index 100% rename from openflare-server/frontend/app/(auth)/register/page.tsx rename to frontend/app/(auth)/register/page.tsx diff --git a/openflare-server/frontend/app/(docs)/docs/api/page.tsx b/frontend/app/(docs)/docs/api/page.tsx similarity index 100% rename from openflare-server/frontend/app/(docs)/docs/api/page.tsx rename to frontend/app/(docs)/docs/api/page.tsx diff --git a/openflare-server/frontend/app/(docs)/docs/how-to-use/page.tsx b/frontend/app/(docs)/docs/how-to-use/page.tsx similarity index 100% rename from openflare-server/frontend/app/(docs)/docs/how-to-use/page.tsx rename to frontend/app/(docs)/docs/how-to-use/page.tsx diff --git a/openflare-server/frontend/app/(docs)/docs/privacy-policy/page.tsx b/frontend/app/(docs)/docs/privacy-policy/page.tsx similarity index 100% rename from openflare-server/frontend/app/(docs)/docs/privacy-policy/page.tsx rename to frontend/app/(docs)/docs/privacy-policy/page.tsx diff --git a/openflare-server/frontend/app/(docs)/docs/terms-of-service/page.tsx b/frontend/app/(docs)/docs/terms-of-service/page.tsx similarity index 100% rename from openflare-server/frontend/app/(docs)/docs/terms-of-service/page.tsx rename to frontend/app/(docs)/docs/terms-of-service/page.tsx diff --git a/openflare-server/frontend/app/(main)/access-logs/components/access-log-filters.tsx b/frontend/app/(main)/access-logs/components/access-log-filters.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/access-logs/components/access-log-filters.tsx rename to frontend/app/(main)/access-logs/components/access-log-filters.tsx diff --git a/openflare-server/frontend/app/(main)/access-logs/components/access-log-utils.ts b/frontend/app/(main)/access-logs/components/access-log-utils.ts similarity index 100% rename from openflare-server/frontend/app/(main)/access-logs/components/access-log-utils.ts rename to frontend/app/(main)/access-logs/components/access-log-utils.ts diff --git a/openflare-server/frontend/app/(main)/access-logs/components/cleanup-dialog.tsx b/frontend/app/(main)/access-logs/components/cleanup-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/access-logs/components/cleanup-dialog.tsx rename to frontend/app/(main)/access-logs/components/cleanup-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/access-logs/page.tsx b/frontend/app/(main)/access-logs/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/access-logs/page.tsx rename to frontend/app/(main)/access-logs/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/database/components/cache-manager.tsx b/frontend/app/(main)/admin/database/components/cache-manager.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/database/components/cache-manager.tsx rename to frontend/app/(main)/admin/database/components/cache-manager.tsx diff --git a/openflare-server/frontend/app/(main)/admin/database/components/sql-console.tsx b/frontend/app/(main)/admin/database/components/sql-console.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/database/components/sql-console.tsx rename to frontend/app/(main)/admin/database/components/sql-console.tsx diff --git a/openflare-server/frontend/app/(main)/admin/database/components/table-browser.tsx b/frontend/app/(main)/admin/database/components/table-browser.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/database/components/table-browser.tsx rename to frontend/app/(main)/admin/database/components/table-browser.tsx diff --git a/openflare-server/frontend/app/(main)/admin/database/page-client.tsx b/frontend/app/(main)/admin/database/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/database/page-client.tsx rename to frontend/app/(main)/admin/database/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/admin/database/page.tsx b/frontend/app/(main)/admin/database/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/database/page.tsx rename to frontend/app/(main)/admin/database/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/demo/page.tsx b/frontend/app/(main)/admin/demo/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/demo/page.tsx rename to frontend/app/(main)/admin/demo/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/demo/tabs/controls-tab.tsx b/frontend/app/(main)/admin/demo/tabs/controls-tab.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/demo/tabs/controls-tab.tsx rename to frontend/app/(main)/admin/demo/tabs/controls-tab.tsx diff --git a/openflare-server/frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx b/frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx rename to frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx diff --git a/openflare-server/frontend/app/(main)/admin/demo/tabs/table-tab.tsx b/frontend/app/(main)/admin/demo/tabs/table-tab.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/demo/tabs/table-tab.tsx rename to frontend/app/(main)/admin/demo/tabs/table-tab.tsx diff --git a/openflare-server/frontend/app/(main)/admin/files/components/file-list.tsx b/frontend/app/(main)/admin/files/components/file-list.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/files/components/file-list.tsx rename to frontend/app/(main)/admin/files/components/file-list.tsx diff --git a/openflare-server/frontend/app/(main)/admin/files/components/file-stats.tsx b/frontend/app/(main)/admin/files/components/file-stats.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/files/components/file-stats.tsx rename to frontend/app/(main)/admin/files/components/file-stats.tsx diff --git a/openflare-server/frontend/app/(main)/admin/files/components/storage-config-tab.tsx b/frontend/app/(main)/admin/files/components/storage-config-tab.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/files/components/storage-config-tab.tsx rename to frontend/app/(main)/admin/files/components/storage-config-tab.tsx diff --git a/openflare-server/frontend/app/(main)/admin/files/page.tsx b/frontend/app/(main)/admin/files/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/files/page.tsx rename to frontend/app/(main)/admin/files/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/layout.tsx b/frontend/app/(main)/admin/layout.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/layout.tsx rename to frontend/app/(main)/admin/layout.tsx diff --git a/openflare-server/frontend/app/(main)/admin/logs/components/access-analytics.tsx b/frontend/app/(main)/admin/logs/components/access-analytics.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/logs/components/access-analytics.tsx rename to frontend/app/(main)/admin/logs/components/access-analytics.tsx diff --git a/openflare-server/frontend/app/(main)/admin/logs/components/access-logs.tsx b/frontend/app/(main)/admin/logs/components/access-logs.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/logs/components/access-logs.tsx rename to frontend/app/(main)/admin/logs/components/access-logs.tsx diff --git a/openflare-server/frontend/app/(main)/admin/logs/components/app-logs.tsx b/frontend/app/(main)/admin/logs/components/app-logs.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/logs/components/app-logs.tsx rename to frontend/app/(main)/admin/logs/components/app-logs.tsx diff --git a/openflare-server/frontend/app/(main)/admin/logs/page-client.tsx b/frontend/app/(main)/admin/logs/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/logs/page-client.tsx rename to frontend/app/(main)/admin/logs/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/admin/logs/page.tsx b/frontend/app/(main)/admin/logs/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/logs/page.tsx rename to frontend/app/(main)/admin/logs/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/push/components/events-tab.tsx b/frontend/app/(main)/admin/push/components/events-tab.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/push/components/events-tab.tsx rename to frontend/app/(main)/admin/push/components/events-tab.tsx diff --git a/openflare-server/frontend/app/(main)/admin/push/components/histories-tab.tsx b/frontend/app/(main)/admin/push/components/histories-tab.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/push/components/histories-tab.tsx rename to frontend/app/(main)/admin/push/components/histories-tab.tsx diff --git a/openflare-server/frontend/app/(main)/admin/push/components/settings-tab.tsx b/frontend/app/(main)/admin/push/components/settings-tab.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/push/components/settings-tab.tsx rename to frontend/app/(main)/admin/push/components/settings-tab.tsx diff --git a/openflare-server/frontend/app/(main)/admin/push/page.tsx b/frontend/app/(main)/admin/push/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/push/page.tsx rename to frontend/app/(main)/admin/push/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/settings/components/openflare-ops-utils.ts b/frontend/app/(main)/admin/settings/components/openflare-ops-utils.ts similarity index 100% rename from openflare-server/frontend/app/(main)/admin/settings/components/openflare-ops-utils.ts rename to frontend/app/(main)/admin/settings/components/openflare-ops-utils.ts diff --git a/openflare-server/frontend/app/(main)/admin/settings/components/openflare-ops.tsx b/frontend/app/(main)/admin/settings/components/openflare-ops.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/settings/components/openflare-ops.tsx rename to frontend/app/(main)/admin/settings/components/openflare-ops.tsx diff --git a/openflare-server/frontend/app/(main)/admin/settings/components/system-status.tsx b/frontend/app/(main)/admin/settings/components/system-status.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/settings/components/system-status.tsx rename to frontend/app/(main)/admin/settings/components/system-status.tsx diff --git a/openflare-server/frontend/app/(main)/admin/settings/components/uptimekuma-site-modal.tsx b/frontend/app/(main)/admin/settings/components/uptimekuma-site-modal.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/settings/components/uptimekuma-site-modal.tsx rename to frontend/app/(main)/admin/settings/components/uptimekuma-site-modal.tsx diff --git a/openflare-server/frontend/app/(main)/admin/settings/page-client.tsx b/frontend/app/(main)/admin/settings/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/settings/page-client.tsx rename to frontend/app/(main)/admin/settings/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/admin/settings/page.tsx b/frontend/app/(main)/admin/settings/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/settings/page.tsx rename to frontend/app/(main)/admin/settings/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/system/page.tsx b/frontend/app/(main)/admin/system/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/system/page.tsx rename to frontend/app/(main)/admin/system/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/tasks/components/task-executions.tsx b/frontend/app/(main)/admin/tasks/components/task-executions.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/tasks/components/task-executions.tsx rename to frontend/app/(main)/admin/tasks/components/task-executions.tsx diff --git a/openflare-server/frontend/app/(main)/admin/tasks/components/task-manager.tsx b/frontend/app/(main)/admin/tasks/components/task-manager.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/tasks/components/task-manager.tsx rename to frontend/app/(main)/admin/tasks/components/task-manager.tsx diff --git a/openflare-server/frontend/app/(main)/admin/tasks/components/task-schedules.tsx b/frontend/app/(main)/admin/tasks/components/task-schedules.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/tasks/components/task-schedules.tsx rename to frontend/app/(main)/admin/tasks/components/task-schedules.tsx diff --git a/openflare-server/frontend/app/(main)/admin/tasks/page.tsx b/frontend/app/(main)/admin/tasks/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/tasks/page.tsx rename to frontend/app/(main)/admin/tasks/page.tsx diff --git a/openflare-server/frontend/app/(main)/admin/users/components/create-user-modal.tsx b/frontend/app/(main)/admin/users/components/create-user-modal.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/users/components/create-user-modal.tsx rename to frontend/app/(main)/admin/users/components/create-user-modal.tsx diff --git a/openflare-server/frontend/app/(main)/admin/users/components/user-detail-sheet.tsx b/frontend/app/(main)/admin/users/components/user-detail-sheet.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/users/components/user-detail-sheet.tsx rename to frontend/app/(main)/admin/users/components/user-detail-sheet.tsx diff --git a/openflare-server/frontend/app/(main)/admin/users/components/user-filter-bar.tsx b/frontend/app/(main)/admin/users/components/user-filter-bar.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/users/components/user-filter-bar.tsx rename to frontend/app/(main)/admin/users/components/user-filter-bar.tsx diff --git a/openflare-server/frontend/app/(main)/admin/users/page.tsx b/frontend/app/(main)/admin/users/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/admin/users/page.tsx rename to frontend/app/(main)/admin/users/page.tsx diff --git a/openflare-server/frontend/app/(main)/apply-logs/components/log-detail-sheet.tsx b/frontend/app/(main)/apply-logs/components/log-detail-sheet.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/apply-logs/components/log-detail-sheet.tsx rename to frontend/app/(main)/apply-logs/components/log-detail-sheet.tsx diff --git a/openflare-server/frontend/app/(main)/apply-logs/page-client.tsx b/frontend/app/(main)/apply-logs/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/apply-logs/page-client.tsx rename to frontend/app/(main)/apply-logs/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/apply-logs/page.tsx b/frontend/app/(main)/apply-logs/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/apply-logs/page.tsx rename to frontend/app/(main)/apply-logs/page.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx b/frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx rename to frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/dashboard-utils.ts b/frontend/app/(main)/components/dashboard/dashboard-utils.ts similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/dashboard-utils.ts rename to frontend/app/(main)/components/dashboard/dashboard-utils.ts diff --git a/openflare-server/frontend/app/(main)/components/dashboard/data/world-geo.json b/frontend/app/(main)/components/dashboard/data/world-geo.json similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/data/world-geo.json rename to frontend/app/(main)/components/dashboard/data/world-geo.json diff --git a/openflare-server/frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx b/frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx rename to frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/geo-distribution-list.tsx b/frontend/app/(main)/components/dashboard/geo-distribution-list.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/geo-distribution-list.tsx rename to frontend/app/(main)/components/dashboard/geo-distribution-list.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/network-disk-trend-chart.tsx b/frontend/app/(main)/components/dashboard/network-disk-trend-chart.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/network-disk-trend-chart.tsx rename to frontend/app/(main)/components/dashboard/network-disk-trend-chart.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/node-health-table.tsx b/frontend/app/(main)/components/dashboard/node-health-table.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/node-health-table.tsx rename to frontend/app/(main)/components/dashboard/node-health-table.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/node-rank-panel.tsx b/frontend/app/(main)/components/dashboard/node-rank-panel.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/node-rank-panel.tsx rename to frontend/app/(main)/components/dashboard/node-rank-panel.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/stat-cards.tsx b/frontend/app/(main)/components/dashboard/stat-cards.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/stat-cards.tsx rename to frontend/app/(main)/components/dashboard/stat-cards.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/traffic-trend-chart.tsx b/frontend/app/(main)/components/dashboard/traffic-trend-chart.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/traffic-trend-chart.tsx rename to frontend/app/(main)/components/dashboard/traffic-trend-chart.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/world-stage-map.tsx b/frontend/app/(main)/components/dashboard/world-stage-map.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/world-stage-map.tsx rename to frontend/app/(main)/components/dashboard/world-stage-map.tsx diff --git a/openflare-server/frontend/app/(main)/components/dashboard/world-stage.tsx b/frontend/app/(main)/components/dashboard/world-stage.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/dashboard/world-stage.tsx rename to frontend/app/(main)/components/dashboard/world-stage.tsx diff --git a/openflare-server/frontend/app/(main)/components/placeholder-page.tsx b/frontend/app/(main)/components/placeholder-page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/placeholder-page.tsx rename to frontend/app/(main)/components/placeholder-page.tsx diff --git a/openflare-server/frontend/app/(main)/components/version-upgrade-dialog.tsx b/frontend/app/(main)/components/version-upgrade-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/components/version-upgrade-dialog.tsx rename to frontend/app/(main)/components/version-upgrade-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/config-versions/components/cleanup-dialog.tsx b/frontend/app/(main)/config-versions/components/cleanup-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/config-versions/components/cleanup-dialog.tsx rename to frontend/app/(main)/config-versions/components/cleanup-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/config-versions/components/diff-dialog.tsx b/frontend/app/(main)/config-versions/components/diff-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/config-versions/components/diff-dialog.tsx rename to frontend/app/(main)/config-versions/components/diff-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/config-versions/components/preview-sheet.tsx b/frontend/app/(main)/config-versions/components/preview-sheet.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/config-versions/components/preview-sheet.tsx rename to frontend/app/(main)/config-versions/components/preview-sheet.tsx diff --git a/openflare-server/frontend/app/(main)/config-versions/components/version-snapshot-sheet.tsx b/frontend/app/(main)/config-versions/components/version-snapshot-sheet.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/config-versions/components/version-snapshot-sheet.tsx rename to frontend/app/(main)/config-versions/components/version-snapshot-sheet.tsx diff --git a/openflare-server/frontend/app/(main)/config-versions/page.tsx b/frontend/app/(main)/config-versions/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/config-versions/page.tsx rename to frontend/app/(main)/config-versions/page.tsx diff --git a/openflare-server/frontend/app/(main)/files/page.tsx b/frontend/app/(main)/files/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/files/page.tsx rename to frontend/app/(main)/files/page.tsx diff --git a/openflare-server/frontend/app/(main)/home/page.tsx b/frontend/app/(main)/home/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/home/page.tsx rename to frontend/app/(main)/home/page.tsx diff --git a/openflare-server/frontend/app/(main)/layout.tsx b/frontend/app/(main)/layout.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/layout.tsx rename to frontend/app/(main)/layout.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/agent-update-dialog.tsx b/frontend/app/(main)/nodes/components/agent-update-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/agent-update-dialog.tsx rename to frontend/app/(main)/nodes/components/agent-update-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx b/frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx rename to frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/distribution-list.tsx b/frontend/app/(main)/nodes/components/distribution-list.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/distribution-list.tsx rename to frontend/app/(main)/nodes/components/distribution-list.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/edge-node-detail.tsx b/frontend/app/(main)/nodes/components/edge-node-detail.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/edge-node-detail.tsx rename to frontend/app/(main)/nodes/components/edge-node-detail.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/install-command.tsx b/frontend/app/(main)/nodes/components/install-command.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/install-command.tsx rename to frontend/app/(main)/nodes/components/install-command.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/network-trend-chart.tsx b/frontend/app/(main)/nodes/components/network-trend-chart.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/network-trend-chart.tsx rename to frontend/app/(main)/nodes/components/network-trend-chart.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/node-detail-primitives.tsx b/frontend/app/(main)/nodes/components/node-detail-primitives.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/node-detail-primitives.tsx rename to frontend/app/(main)/nodes/components/node-detail-primitives.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/node-detail-shell.tsx b/frontend/app/(main)/nodes/components/node-detail-shell.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/node-detail-shell.tsx rename to frontend/app/(main)/nodes/components/node-detail-shell.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/node-editor-dialog.tsx b/frontend/app/(main)/nodes/components/node-editor-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/node-editor-dialog.tsx rename to frontend/app/(main)/nodes/components/node-editor-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/node-observability.tsx b/frontend/app/(main)/nodes/components/node-observability.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/node-observability.tsx rename to frontend/app/(main)/nodes/components/node-observability.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/node-status-badge.tsx b/frontend/app/(main)/nodes/components/node-status-badge.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/node-status-badge.tsx rename to frontend/app/(main)/nodes/components/node-status-badge.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/node-type-filter.tsx b/frontend/app/(main)/nodes/components/node-type-filter.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/node-type-filter.tsx rename to frontend/app/(main)/nodes/components/node-type-filter.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/node-utils.ts b/frontend/app/(main)/nodes/components/node-utils.ts similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/node-utils.ts rename to frontend/app/(main)/nodes/components/node-utils.ts diff --git a/openflare-server/frontend/app/(main)/nodes/components/nodes-table.tsx b/frontend/app/(main)/nodes/components/nodes-table.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/nodes-table.tsx rename to frontend/app/(main)/nodes/components/nodes-table.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/relay-node-detail.tsx b/frontend/app/(main)/nodes/components/relay-node-detail.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/relay-node-detail.tsx rename to frontend/app/(main)/nodes/components/relay-node-detail.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/components/tunnel-node-detail.tsx b/frontend/app/(main)/nodes/components/tunnel-node-detail.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/components/tunnel-node-detail.tsx rename to frontend/app/(main)/nodes/components/tunnel-node-detail.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/detail/page-client.tsx b/frontend/app/(main)/nodes/detail/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/detail/page-client.tsx rename to frontend/app/(main)/nodes/detail/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/detail/page.tsx b/frontend/app/(main)/nodes/detail/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/detail/page.tsx rename to frontend/app/(main)/nodes/detail/page.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/page-client.tsx b/frontend/app/(main)/nodes/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/page-client.tsx rename to frontend/app/(main)/nodes/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/nodes/page.tsx b/frontend/app/(main)/nodes/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/nodes/page.tsx rename to frontend/app/(main)/nodes/page.tsx diff --git a/openflare-server/frontend/app/(main)/origins/components/origin-editor-dialog.tsx b/frontend/app/(main)/origins/components/origin-editor-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/origins/components/origin-editor-dialog.tsx rename to frontend/app/(main)/origins/components/origin-editor-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/origins/detail/page-client.tsx b/frontend/app/(main)/origins/detail/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/origins/detail/page-client.tsx rename to frontend/app/(main)/origins/detail/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/origins/detail/page.tsx b/frontend/app/(main)/origins/detail/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/origins/detail/page.tsx rename to frontend/app/(main)/origins/detail/page.tsx diff --git a/openflare-server/frontend/app/(main)/origins/page.tsx b/frontend/app/(main)/origins/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/origins/page.tsx rename to frontend/app/(main)/origins/page.tsx diff --git a/openflare-server/frontend/app/(main)/page.tsx b/frontend/app/(main)/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/page.tsx rename to frontend/app/(main)/page.tsx diff --git a/openflare-server/frontend/app/(main)/pages/components/deployment-upload-dialog.tsx b/frontend/app/(main)/pages/components/deployment-upload-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/pages/components/deployment-upload-dialog.tsx rename to frontend/app/(main)/pages/components/deployment-upload-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/pages/components/pages-utils.ts b/frontend/app/(main)/pages/components/pages-utils.ts similarity index 100% rename from openflare-server/frontend/app/(main)/pages/components/pages-utils.ts rename to frontend/app/(main)/pages/components/pages-utils.ts diff --git a/openflare-server/frontend/app/(main)/pages/components/project-editor-dialog.tsx b/frontend/app/(main)/pages/components/project-editor-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/pages/components/project-editor-dialog.tsx rename to frontend/app/(main)/pages/components/project-editor-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/pages/components/project-list-item.tsx b/frontend/app/(main)/pages/components/project-list-item.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/pages/components/project-list-item.tsx rename to frontend/app/(main)/pages/components/project-list-item.tsx diff --git a/openflare-server/frontend/app/(main)/pages/detail/page-client.tsx b/frontend/app/(main)/pages/detail/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/pages/detail/page-client.tsx rename to frontend/app/(main)/pages/detail/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/pages/detail/page.tsx b/frontend/app/(main)/pages/detail/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/pages/detail/page.tsx rename to frontend/app/(main)/pages/detail/page.tsx diff --git a/openflare-server/frontend/app/(main)/pages/page.tsx b/frontend/app/(main)/pages/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/pages/page.tsx rename to frontend/app/(main)/pages/page.tsx diff --git a/openflare-server/frontend/app/(main)/performance/components/performance-utils.ts b/frontend/app/(main)/performance/components/performance-utils.ts similarity index 100% rename from openflare-server/frontend/app/(main)/performance/components/performance-utils.ts rename to frontend/app/(main)/performance/components/performance-utils.ts diff --git a/openflare-server/frontend/app/(main)/performance/page.tsx b/frontend/app/(main)/performance/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/performance/page.tsx rename to frontend/app/(main)/performance/page.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/components/helpers.ts b/frontend/app/(main)/proxy-routes/components/helpers.ts similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/components/helpers.ts rename to frontend/app/(main)/proxy-routes/components/helpers.ts diff --git a/openflare-server/frontend/app/(main)/proxy-routes/components/proxy-route-create-sheet.tsx b/frontend/app/(main)/proxy-routes/components/proxy-route-create-sheet.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/components/proxy-route-create-sheet.tsx rename to frontend/app/(main)/proxy-routes/components/proxy-route-create-sheet.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx rename to frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx rename to frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/domain-list-input.tsx b/frontend/app/(main)/proxy-routes/detail/components/domain-list-input.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/domain-list-input.tsx rename to frontend/app/(main)/proxy-routes/detail/components/domain-list-input.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx rename to frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/limits-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/limits-section.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/limits-section.tsx rename to frontend/app/(main)/proxy-routes/detail/components/limits-section.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/proxy-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/proxy-section.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/proxy-section.tsx rename to frontend/app/(main)/proxy-routes/detail/components/proxy-section.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/route-header.tsx b/frontend/app/(main)/proxy-routes/detail/components/route-header.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/route-header.tsx rename to frontend/app/(main)/proxy-routes/detail/components/route-header.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/section-shell.tsx b/frontend/app/(main)/proxy-routes/detail/components/section-shell.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/section-shell.tsx rename to frontend/app/(main)/proxy-routes/detail/components/section-shell.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/components/waf-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/waf-section.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/components/waf-section.tsx rename to frontend/app/(main)/proxy-routes/detail/components/waf-section.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/helpers.ts b/frontend/app/(main)/proxy-routes/detail/helpers.ts similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/helpers.ts rename to frontend/app/(main)/proxy-routes/detail/helpers.ts diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/hooks/use-route-section-save.ts b/frontend/app/(main)/proxy-routes/detail/hooks/use-route-section-save.ts similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/hooks/use-route-section-save.ts rename to frontend/app/(main)/proxy-routes/detail/hooks/use-route-section-save.ts diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/page-client.tsx b/frontend/app/(main)/proxy-routes/detail/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/page-client.tsx rename to frontend/app/(main)/proxy-routes/detail/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/detail/page.tsx b/frontend/app/(main)/proxy-routes/detail/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/detail/page.tsx rename to frontend/app/(main)/proxy-routes/detail/page.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/page-client.tsx b/frontend/app/(main)/proxy-routes/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/page-client.tsx rename to frontend/app/(main)/proxy-routes/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/proxy-routes/page.tsx b/frontend/app/(main)/proxy-routes/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/proxy-routes/page.tsx rename to frontend/app/(main)/proxy-routes/page.tsx diff --git a/openflare-server/frontend/app/(main)/settings/access-token/page.tsx b/frontend/app/(main)/settings/access-token/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/settings/access-token/page.tsx rename to frontend/app/(main)/settings/access-token/page.tsx diff --git a/openflare-server/frontend/app/(main)/settings/appearance/page.tsx b/frontend/app/(main)/settings/appearance/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/settings/appearance/page.tsx rename to frontend/app/(main)/settings/appearance/page.tsx diff --git a/openflare-server/frontend/app/(main)/settings/layout.tsx b/frontend/app/(main)/settings/layout.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/settings/layout.tsx rename to frontend/app/(main)/settings/layout.tsx diff --git a/openflare-server/frontend/app/(main)/settings/notifications/page.tsx b/frontend/app/(main)/settings/notifications/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/settings/notifications/page.tsx rename to frontend/app/(main)/settings/notifications/page.tsx diff --git a/openflare-server/frontend/app/(main)/settings/page.tsx b/frontend/app/(main)/settings/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/settings/page.tsx rename to frontend/app/(main)/settings/page.tsx diff --git a/openflare-server/frontend/app/(main)/settings/profile/page.tsx b/frontend/app/(main)/settings/profile/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/settings/profile/page.tsx rename to frontend/app/(main)/settings/profile/page.tsx diff --git a/openflare-server/frontend/app/(main)/settings/security/page.tsx b/frontend/app/(main)/settings/security/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/settings/security/page.tsx rename to frontend/app/(main)/settings/security/page.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/helpers.ts b/frontend/app/(main)/waf/components/helpers.ts similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/helpers.ts rename to frontend/app/(main)/waf/components/helpers.ts diff --git a/openflare-server/frontend/app/(main)/waf/components/ip-group-dialog.tsx b/frontend/app/(main)/waf/components/ip-group-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/ip-group-dialog.tsx rename to frontend/app/(main)/waf/components/ip-group-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/ip-group-test-dialog.tsx b/frontend/app/(main)/waf/components/ip-group-test-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/ip-group-test-dialog.tsx rename to frontend/app/(main)/waf/components/ip-group-test-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/ip-group-view-dialog.tsx b/frontend/app/(main)/waf/components/ip-group-view-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/ip-group-view-dialog.tsx rename to frontend/app/(main)/waf/components/ip-group-view-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/ip-groups-table.tsx b/frontend/app/(main)/waf/components/ip-groups-table.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/ip-groups-table.tsx rename to frontend/app/(main)/waf/components/ip-groups-table.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/pow-config-panel.tsx b/frontend/app/(main)/waf/components/pow-config-panel.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/pow-config-panel.tsx rename to frontend/app/(main)/waf/components/pow-config-panel.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/rule-entry-dialog.tsx b/frontend/app/(main)/waf/components/rule-entry-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/rule-entry-dialog.tsx rename to frontend/app/(main)/waf/components/rule-entry-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/rule-group-sheet.tsx b/frontend/app/(main)/waf/components/rule-group-sheet.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/rule-group-sheet.tsx rename to frontend/app/(main)/waf/components/rule-group-sheet.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/rule-groups-table.tsx b/frontend/app/(main)/waf/components/rule-groups-table.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/rule-groups-table.tsx rename to frontend/app/(main)/waf/components/rule-groups-table.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/rule-list-section.tsx b/frontend/app/(main)/waf/components/rule-list-section.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/rule-list-section.tsx rename to frontend/app/(main)/waf/components/rule-list-section.tsx diff --git a/openflare-server/frontend/app/(main)/waf/components/site-binding-sheet.tsx b/frontend/app/(main)/waf/components/site-binding-sheet.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/components/site-binding-sheet.tsx rename to frontend/app/(main)/waf/components/site-binding-sheet.tsx diff --git a/openflare-server/frontend/app/(main)/waf/ip-groups/page.tsx b/frontend/app/(main)/waf/ip-groups/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/ip-groups/page.tsx rename to frontend/app/(main)/waf/ip-groups/page.tsx diff --git a/openflare-server/frontend/app/(main)/waf/page.tsx b/frontend/app/(main)/waf/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/waf/page.tsx rename to frontend/app/(main)/waf/page.tsx diff --git a/openflare-server/frontend/app/(main)/websites/certificates/page.tsx b/frontend/app/(main)/websites/certificates/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/certificates/page.tsx rename to frontend/app/(main)/websites/certificates/page.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/certificate-apply-dialog.tsx b/frontend/app/(main)/websites/components/certificate-apply-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/certificate-apply-dialog.tsx rename to frontend/app/(main)/websites/components/certificate-apply-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/certificate-detail-dialog.tsx b/frontend/app/(main)/websites/components/certificate-detail-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/certificate-detail-dialog.tsx rename to frontend/app/(main)/websites/components/certificate-detail-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/certificate-editor-dialog.tsx b/frontend/app/(main)/websites/components/certificate-editor-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/certificate-editor-dialog.tsx rename to frontend/app/(main)/websites/components/certificate-editor-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/certificate-import-dialog.tsx b/frontend/app/(main)/websites/components/certificate-import-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/certificate-import-dialog.tsx rename to frontend/app/(main)/websites/components/certificate-import-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/dns-account-create-dialog.tsx b/frontend/app/(main)/websites/components/dns-account-create-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/dns-account-create-dialog.tsx rename to frontend/app/(main)/websites/components/dns-account-create-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/schemas.ts b/frontend/app/(main)/websites/components/schemas.ts similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/schemas.ts rename to frontend/app/(main)/websites/components/schemas.ts diff --git a/openflare-server/frontend/app/(main)/websites/components/status-badge.tsx b/frontend/app/(main)/websites/components/status-badge.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/status-badge.tsx rename to frontend/app/(main)/websites/components/status-badge.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/website-editor-dialog.tsx b/frontend/app/(main)/websites/components/website-editor-dialog.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/website-editor-dialog.tsx rename to frontend/app/(main)/websites/components/website-editor-dialog.tsx diff --git a/openflare-server/frontend/app/(main)/websites/components/website-utils.ts b/frontend/app/(main)/websites/components/website-utils.ts similarity index 100% rename from openflare-server/frontend/app/(main)/websites/components/website-utils.ts rename to frontend/app/(main)/websites/components/website-utils.ts diff --git a/openflare-server/frontend/app/(main)/websites/detail/page-client.tsx b/frontend/app/(main)/websites/detail/page-client.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/detail/page-client.tsx rename to frontend/app/(main)/websites/detail/page-client.tsx diff --git a/openflare-server/frontend/app/(main)/websites/detail/page.tsx b/frontend/app/(main)/websites/detail/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/detail/page.tsx rename to frontend/app/(main)/websites/detail/page.tsx diff --git a/openflare-server/frontend/app/(main)/websites/dns-accounts/page.tsx b/frontend/app/(main)/websites/dns-accounts/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/dns-accounts/page.tsx rename to frontend/app/(main)/websites/dns-accounts/page.tsx diff --git a/openflare-server/frontend/app/(main)/websites/page.tsx b/frontend/app/(main)/websites/page.tsx similarity index 100% rename from openflare-server/frontend/app/(main)/websites/page.tsx rename to frontend/app/(main)/websites/page.tsx diff --git a/openflare-server/frontend/app/globals.css b/frontend/app/globals.css similarity index 100% rename from openflare-server/frontend/app/globals.css rename to frontend/app/globals.css diff --git a/openflare-server/frontend/app/icon.tsx b/frontend/app/icon.tsx similarity index 100% rename from openflare-server/frontend/app/icon.tsx rename to frontend/app/icon.tsx diff --git a/openflare-server/frontend/app/layout.tsx b/frontend/app/layout.tsx similarity index 100% rename from openflare-server/frontend/app/layout.tsx rename to frontend/app/layout.tsx diff --git a/openflare-server/frontend/app/not-found.tsx b/frontend/app/not-found.tsx similarity index 100% rename from openflare-server/frontend/app/not-found.tsx rename to frontend/app/not-found.tsx diff --git a/openflare-server/frontend/components.json b/frontend/components.json similarity index 100% rename from openflare-server/frontend/components.json rename to frontend/components.json diff --git a/openflare-server/frontend/components/animate-ui/components/buttons/button.tsx b/frontend/components/animate-ui/components/buttons/button.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/components/buttons/button.tsx rename to frontend/components/animate-ui/components/buttons/button.tsx diff --git a/openflare-server/frontend/components/animate-ui/components/buttons/ripple.tsx b/frontend/components/animate-ui/components/buttons/ripple.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/components/buttons/ripple.tsx rename to frontend/components/animate-ui/components/buttons/ripple.tsx diff --git a/openflare-server/frontend/components/animate-ui/icons/check.tsx b/frontend/components/animate-ui/icons/check.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/icons/check.tsx rename to frontend/components/animate-ui/icons/check.tsx diff --git a/openflare-server/frontend/components/animate-ui/icons/chevron-down.tsx b/frontend/components/animate-ui/icons/chevron-down.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/icons/chevron-down.tsx rename to frontend/components/animate-ui/icons/chevron-down.tsx diff --git a/openflare-server/frontend/components/animate-ui/icons/chevron-left.tsx b/frontend/components/animate-ui/icons/chevron-left.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/icons/chevron-left.tsx rename to frontend/components/animate-ui/icons/chevron-left.tsx diff --git a/openflare-server/frontend/components/animate-ui/icons/chevron-right.tsx b/frontend/components/animate-ui/icons/chevron-right.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/icons/chevron-right.tsx rename to frontend/components/animate-ui/icons/chevron-right.tsx diff --git a/openflare-server/frontend/components/animate-ui/icons/circle-check.tsx b/frontend/components/animate-ui/icons/circle-check.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/icons/circle-check.tsx rename to frontend/components/animate-ui/icons/circle-check.tsx diff --git a/openflare-server/frontend/components/animate-ui/icons/icon.tsx b/frontend/components/animate-ui/icons/icon.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/icons/icon.tsx rename to frontend/components/animate-ui/icons/icon.tsx diff --git a/openflare-server/frontend/components/animate-ui/icons/send.tsx b/frontend/components/animate-ui/icons/send.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/icons/send.tsx rename to frontend/components/animate-ui/icons/send.tsx diff --git a/openflare-server/frontend/components/animate-ui/primitives/animate/slot.tsx b/frontend/components/animate-ui/primitives/animate/slot.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/primitives/animate/slot.tsx rename to frontend/components/animate-ui/primitives/animate/slot.tsx diff --git a/openflare-server/frontend/components/animate-ui/primitives/buttons/button.tsx b/frontend/components/animate-ui/primitives/buttons/button.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/primitives/buttons/button.tsx rename to frontend/components/animate-ui/primitives/buttons/button.tsx diff --git a/openflare-server/frontend/components/animate-ui/primitives/buttons/ripple.tsx b/frontend/components/animate-ui/primitives/buttons/ripple.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/primitives/buttons/ripple.tsx rename to frontend/components/animate-ui/primitives/buttons/ripple.tsx diff --git a/openflare-server/frontend/components/animate-ui/primitives/radix/collapsible.tsx b/frontend/components/animate-ui/primitives/radix/collapsible.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/primitives/radix/collapsible.tsx rename to frontend/components/animate-ui/primitives/radix/collapsible.tsx diff --git a/openflare-server/frontend/components/animate-ui/primitives/texts/counting-number.tsx b/frontend/components/animate-ui/primitives/texts/counting-number.tsx similarity index 100% rename from openflare-server/frontend/components/animate-ui/primitives/texts/counting-number.tsx rename to frontend/components/animate-ui/primitives/texts/counting-number.tsx diff --git a/openflare-server/frontend/components/auth/auth-shell.tsx b/frontend/components/auth/auth-shell.tsx similarity index 100% rename from openflare-server/frontend/components/auth/auth-shell.tsx rename to frontend/components/auth/auth-shell.tsx diff --git a/openflare-server/frontend/components/auth/cap-widget.tsx b/frontend/components/auth/cap-widget.tsx similarity index 100% rename from openflare-server/frontend/components/auth/cap-widget.tsx rename to frontend/components/auth/cap-widget.tsx diff --git a/openflare-server/frontend/components/auth/login-form.tsx b/frontend/components/auth/login-form.tsx similarity index 100% rename from openflare-server/frontend/components/auth/login-form.tsx rename to frontend/components/auth/login-form.tsx diff --git a/openflare-server/frontend/components/auth/login-page.tsx b/frontend/components/auth/login-page.tsx similarity index 100% rename from openflare-server/frontend/components/auth/login-page.tsx rename to frontend/components/auth/login-page.tsx diff --git a/openflare-server/frontend/components/auth/otp-form.tsx b/frontend/components/auth/otp-form.tsx similarity index 100% rename from openflare-server/frontend/components/auth/otp-form.tsx rename to frontend/components/auth/otp-form.tsx diff --git a/openflare-server/frontend/components/auth/register-form.tsx b/frontend/components/auth/register-form.tsx similarity index 100% rename from openflare-server/frontend/components/auth/register-form.tsx rename to frontend/components/auth/register-form.tsx diff --git a/openflare-server/frontend/components/auth/register-page.tsx b/frontend/components/auth/register-page.tsx similarity index 100% rename from openflare-server/frontend/components/auth/register-page.tsx rename to frontend/components/auth/register-page.tsx diff --git a/openflare-server/frontend/components/auth/require-auth.tsx b/frontend/components/auth/require-auth.tsx similarity index 100% rename from openflare-server/frontend/components/auth/require-auth.tsx rename to frontend/components/auth/require-auth.tsx diff --git a/openflare-server/frontend/components/common/docs/api.tsx b/frontend/components/common/docs/api.tsx similarity index 100% rename from openflare-server/frontend/components/common/docs/api.tsx rename to frontend/components/common/docs/api.tsx diff --git a/openflare-server/frontend/components/common/docs/how-to-use.tsx b/frontend/components/common/docs/how-to-use.tsx similarity index 100% rename from openflare-server/frontend/components/common/docs/how-to-use.tsx rename to frontend/components/common/docs/how-to-use.tsx diff --git a/openflare-server/frontend/components/common/docs/legal-page-layout.tsx b/frontend/components/common/docs/legal-page-layout.tsx similarity index 100% rename from openflare-server/frontend/components/common/docs/legal-page-layout.tsx rename to frontend/components/common/docs/legal-page-layout.tsx diff --git a/openflare-server/frontend/components/common/docs/privacy.tsx b/frontend/components/common/docs/privacy.tsx similarity index 100% rename from openflare-server/frontend/components/common/docs/privacy.tsx rename to frontend/components/common/docs/privacy.tsx diff --git a/openflare-server/frontend/components/common/docs/terms.tsx b/frontend/components/common/docs/terms.tsx similarity index 100% rename from openflare-server/frontend/components/common/docs/terms.tsx rename to frontend/components/common/docs/terms.tsx diff --git a/openflare-server/frontend/components/common/docs/types.ts b/frontend/components/common/docs/types.ts similarity index 100% rename from openflare-server/frontend/components/common/docs/types.ts rename to frontend/components/common/docs/types.ts diff --git a/openflare-server/frontend/components/common/file-image-preview.tsx b/frontend/components/common/file-image-preview.tsx similarity index 100% rename from openflare-server/frontend/components/common/file-image-preview.tsx rename to frontend/components/common/file-image-preview.tsx diff --git a/openflare-server/frontend/components/common/general/manage-pannel.tsx b/frontend/components/common/general/manage-pannel.tsx similarity index 100% rename from openflare-server/frontend/components/common/general/manage-pannel.tsx rename to frontend/components/common/general/manage-pannel.tsx diff --git a/openflare-server/frontend/components/common/general/password-dialog.tsx b/frontend/components/common/general/password-dialog.tsx similarity index 100% rename from openflare-server/frontend/components/common/general/password-dialog.tsx rename to frontend/components/common/general/password-dialog.tsx diff --git a/openflare-server/frontend/components/common/home/home-main.tsx b/frontend/components/common/home/home-main.tsx similarity index 100% rename from openflare-server/frontend/components/common/home/home-main.tsx rename to frontend/components/common/home/home-main.tsx diff --git a/openflare-server/frontend/components/common/settings/access-token.tsx b/frontend/components/common/settings/access-token.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/access-token.tsx rename to frontend/components/common/settings/access-token.tsx diff --git a/openflare-server/frontend/components/common/settings/appearance.tsx b/frontend/components/common/settings/appearance.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/appearance.tsx rename to frontend/components/common/settings/appearance.tsx diff --git a/openflare-server/frontend/components/common/settings/auth-source-modal.tsx b/frontend/components/common/settings/auth-source-modal.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/auth-source-modal.tsx rename to frontend/components/common/settings/auth-source-modal.tsx diff --git a/openflare-server/frontend/components/common/settings/info-tab.tsx b/frontend/components/common/settings/info-tab.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/info-tab.tsx rename to frontend/components/common/settings/info-tab.tsx diff --git a/openflare-server/frontend/components/common/settings/notifications.tsx b/frontend/components/common/settings/notifications.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/notifications.tsx rename to frontend/components/common/settings/notifications.tsx diff --git a/openflare-server/frontend/components/common/settings/operation-tab.tsx b/frontend/components/common/settings/operation-tab.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/operation-tab.tsx rename to frontend/components/common/settings/operation-tab.tsx diff --git a/openflare-server/frontend/components/common/settings/other-tab.tsx b/frontend/components/common/settings/other-tab.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/other-tab.tsx rename to frontend/components/common/settings/other-tab.tsx diff --git a/openflare-server/frontend/components/common/settings/profile.tsx b/frontend/components/common/settings/profile.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/profile.tsx rename to frontend/components/common/settings/profile.tsx diff --git a/openflare-server/frontend/components/common/settings/security-tab.tsx b/frontend/components/common/settings/security-tab.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/security-tab.tsx rename to frontend/components/common/settings/security-tab.tsx diff --git a/openflare-server/frontend/components/common/settings/system-tab.tsx b/frontend/components/common/settings/system-tab.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/system-tab.tsx rename to frontend/components/common/settings/system-tab.tsx diff --git a/openflare-server/frontend/components/common/settings/templates.tsx b/frontend/components/common/settings/templates.tsx similarity index 100% rename from openflare-server/frontend/components/common/settings/templates.tsx rename to frontend/components/common/settings/templates.tsx diff --git a/openflare-server/frontend/components/common/user/file-manager.tsx b/frontend/components/common/user/file-manager.tsx similarity index 100% rename from openflare-server/frontend/components/common/user/file-manager.tsx rename to frontend/components/common/user/file-manager.tsx diff --git a/openflare-server/frontend/components/data/rank-chart.tsx b/frontend/components/data/rank-chart.tsx similarity index 100% rename from openflare-server/frontend/components/data/rank-chart.tsx rename to frontend/components/data/rank-chart.tsx diff --git a/openflare-server/frontend/components/data/trend-chart.tsx b/frontend/components/data/trend-chart.tsx similarity index 100% rename from openflare-server/frontend/components/data/trend-chart.tsx rename to frontend/components/data/trend-chart.tsx diff --git a/openflare-server/frontend/components/home/developer-section.tsx b/frontend/components/home/developer-section.tsx similarity index 100% rename from openflare-server/frontend/components/home/developer-section.tsx rename to frontend/components/home/developer-section.tsx diff --git a/openflare-server/frontend/components/home/footer-section.tsx b/frontend/components/home/footer-section.tsx similarity index 100% rename from openflare-server/frontend/components/home/footer-section.tsx rename to frontend/components/home/footer-section.tsx diff --git a/openflare-server/frontend/components/home/hero-section.tsx b/frontend/components/home/hero-section.tsx similarity index 100% rename from openflare-server/frontend/components/home/hero-section.tsx rename to frontend/components/home/hero-section.tsx diff --git a/openflare-server/frontend/components/layout/avater-style/Christmas.tsx b/frontend/components/layout/avater-style/Christmas.tsx similarity index 100% rename from openflare-server/frontend/components/layout/avater-style/Christmas.tsx rename to frontend/components/layout/avater-style/Christmas.tsx diff --git a/openflare-server/frontend/components/layout/avater-style/NewYear.tsx b/frontend/components/layout/avater-style/NewYear.tsx similarity index 100% rename from openflare-server/frontend/components/layout/avater-style/NewYear.tsx rename to frontend/components/layout/avater-style/NewYear.tsx diff --git a/openflare-server/frontend/components/layout/avater-style/registry.ts b/frontend/components/layout/avater-style/registry.ts similarity index 100% rename from openflare-server/frontend/components/layout/avater-style/registry.ts rename to frontend/components/layout/avater-style/registry.ts diff --git a/openflare-server/frontend/components/layout/avater-style/types.ts b/frontend/components/layout/avater-style/types.ts similarity index 100% rename from openflare-server/frontend/components/layout/avater-style/types.ts rename to frontend/components/layout/avater-style/types.ts diff --git a/openflare-server/frontend/components/layout/empty.tsx b/frontend/components/layout/empty.tsx similarity index 100% rename from openflare-server/frontend/components/layout/empty.tsx rename to frontend/components/layout/empty.tsx diff --git a/openflare-server/frontend/components/layout/error.tsx b/frontend/components/layout/error.tsx similarity index 100% rename from openflare-server/frontend/components/layout/error.tsx rename to frontend/components/layout/error.tsx diff --git a/openflare-server/frontend/components/layout/header.tsx b/frontend/components/layout/header.tsx similarity index 100% rename from openflare-server/frontend/components/layout/header.tsx rename to frontend/components/layout/header.tsx diff --git a/openflare-server/frontend/components/layout/loading.tsx b/frontend/components/layout/loading.tsx similarity index 100% rename from openflare-server/frontend/components/layout/loading.tsx rename to frontend/components/layout/loading.tsx diff --git a/openflare-server/frontend/components/layout/openflare-sidebar-menu.tsx b/frontend/components/layout/openflare-sidebar-menu.tsx similarity index 100% rename from openflare-server/frontend/components/layout/openflare-sidebar-menu.tsx rename to frontend/components/layout/openflare-sidebar-menu.tsx diff --git a/openflare-server/frontend/components/layout/robots-meta.tsx b/frontend/components/layout/robots-meta.tsx similarity index 100% rename from openflare-server/frontend/components/layout/robots-meta.tsx rename to frontend/components/layout/robots-meta.tsx diff --git a/openflare-server/frontend/components/layout/search-dialog.tsx b/frontend/components/layout/search-dialog.tsx similarity index 100% rename from openflare-server/frontend/components/layout/search-dialog.tsx rename to frontend/components/layout/search-dialog.tsx diff --git a/openflare-server/frontend/components/layout/sidebar.tsx b/frontend/components/layout/sidebar.tsx similarity index 100% rename from openflare-server/frontend/components/layout/sidebar.tsx rename to frontend/components/layout/sidebar.tsx diff --git a/openflare-server/frontend/components/layout/theme-provider.tsx b/frontend/components/layout/theme-provider.tsx similarity index 100% rename from openflare-server/frontend/components/layout/theme-provider.tsx rename to frontend/components/layout/theme-provider.tsx diff --git a/openflare-server/frontend/components/layout/transition.tsx b/frontend/components/layout/transition.tsx similarity index 100% rename from openflare-server/frontend/components/layout/transition.tsx rename to frontend/components/layout/transition.tsx diff --git a/openflare-server/frontend/components/providers/auth-provider.tsx b/frontend/components/providers/auth-provider.tsx similarity index 100% rename from openflare-server/frontend/components/providers/auth-provider.tsx rename to frontend/components/providers/auth-provider.tsx diff --git a/openflare-server/frontend/components/providers/query-provider.tsx b/frontend/components/providers/query-provider.tsx similarity index 100% rename from openflare-server/frontend/components/providers/query-provider.tsx rename to frontend/components/providers/query-provider.tsx diff --git a/openflare-server/frontend/components/providers/title-updater.tsx b/frontend/components/providers/title-updater.tsx similarity index 100% rename from openflare-server/frontend/components/providers/title-updater.tsx rename to frontend/components/providers/title-updater.tsx diff --git a/openflare-server/frontend/components/ui/accordion.tsx b/frontend/components/ui/accordion.tsx similarity index 100% rename from openflare-server/frontend/components/ui/accordion.tsx rename to frontend/components/ui/accordion.tsx diff --git a/openflare-server/frontend/components/ui/alert-dialog.tsx b/frontend/components/ui/alert-dialog.tsx similarity index 100% rename from openflare-server/frontend/components/ui/alert-dialog.tsx rename to frontend/components/ui/alert-dialog.tsx diff --git a/openflare-server/frontend/components/ui/aurora-background.tsx b/frontend/components/ui/aurora-background.tsx similarity index 100% rename from openflare-server/frontend/components/ui/aurora-background.tsx rename to frontend/components/ui/aurora-background.tsx diff --git a/openflare-server/frontend/components/ui/avatar.tsx b/frontend/components/ui/avatar.tsx similarity index 100% rename from openflare-server/frontend/components/ui/avatar.tsx rename to frontend/components/ui/avatar.tsx diff --git a/openflare-server/frontend/components/ui/badge.tsx b/frontend/components/ui/badge.tsx similarity index 100% rename from openflare-server/frontend/components/ui/badge.tsx rename to frontend/components/ui/badge.tsx diff --git a/openflare-server/frontend/components/ui/breadcrumb.tsx b/frontend/components/ui/breadcrumb.tsx similarity index 100% rename from openflare-server/frontend/components/ui/breadcrumb.tsx rename to frontend/components/ui/breadcrumb.tsx diff --git a/openflare-server/frontend/components/ui/button.tsx b/frontend/components/ui/button.tsx similarity index 100% rename from openflare-server/frontend/components/ui/button.tsx rename to frontend/components/ui/button.tsx diff --git a/openflare-server/frontend/components/ui/calendar.tsx b/frontend/components/ui/calendar.tsx similarity index 100% rename from openflare-server/frontend/components/ui/calendar.tsx rename to frontend/components/ui/calendar.tsx diff --git a/openflare-server/frontend/components/ui/card.tsx b/frontend/components/ui/card.tsx similarity index 100% rename from openflare-server/frontend/components/ui/card.tsx rename to frontend/components/ui/card.tsx diff --git a/openflare-server/frontend/components/ui/carousel.tsx b/frontend/components/ui/carousel.tsx similarity index 100% rename from openflare-server/frontend/components/ui/carousel.tsx rename to frontend/components/ui/carousel.tsx diff --git a/openflare-server/frontend/components/ui/chart.tsx b/frontend/components/ui/chart.tsx similarity index 100% rename from openflare-server/frontend/components/ui/chart.tsx rename to frontend/components/ui/chart.tsx diff --git a/openflare-server/frontend/components/ui/checkbox.tsx b/frontend/components/ui/checkbox.tsx similarity index 100% rename from openflare-server/frontend/components/ui/checkbox.tsx rename to frontend/components/ui/checkbox.tsx diff --git a/openflare-server/frontend/components/ui/code-block.tsx b/frontend/components/ui/code-block.tsx similarity index 100% rename from openflare-server/frontend/components/ui/code-block.tsx rename to frontend/components/ui/code-block.tsx diff --git a/openflare-server/frontend/components/ui/collapsible.tsx b/frontend/components/ui/collapsible.tsx similarity index 100% rename from openflare-server/frontend/components/ui/collapsible.tsx rename to frontend/components/ui/collapsible.tsx diff --git a/openflare-server/frontend/components/ui/command.tsx b/frontend/components/ui/command.tsx similarity index 100% rename from openflare-server/frontend/components/ui/command.tsx rename to frontend/components/ui/command.tsx diff --git a/openflare-server/frontend/components/ui/dialog.tsx b/frontend/components/ui/dialog.tsx similarity index 100% rename from openflare-server/frontend/components/ui/dialog.tsx rename to frontend/components/ui/dialog.tsx diff --git a/openflare-server/frontend/components/ui/docs-table.tsx b/frontend/components/ui/docs-table.tsx similarity index 100% rename from openflare-server/frontend/components/ui/docs-table.tsx rename to frontend/components/ui/docs-table.tsx diff --git a/openflare-server/frontend/components/ui/drawer.tsx b/frontend/components/ui/drawer.tsx similarity index 100% rename from openflare-server/frontend/components/ui/drawer.tsx rename to frontend/components/ui/drawer.tsx diff --git a/openflare-server/frontend/components/ui/dropdown-menu.tsx b/frontend/components/ui/dropdown-menu.tsx similarity index 100% rename from openflare-server/frontend/components/ui/dropdown-menu.tsx rename to frontend/components/ui/dropdown-menu.tsx diff --git a/openflare-server/frontend/components/ui/field.tsx b/frontend/components/ui/field.tsx similarity index 100% rename from openflare-server/frontend/components/ui/field.tsx rename to frontend/components/ui/field.tsx diff --git a/openflare-server/frontend/components/ui/fireworks-effect.tsx b/frontend/components/ui/fireworks-effect.tsx similarity index 100% rename from openflare-server/frontend/components/ui/fireworks-effect.tsx rename to frontend/components/ui/fireworks-effect.tsx diff --git a/openflare-server/frontend/components/ui/form.tsx b/frontend/components/ui/form.tsx similarity index 100% rename from openflare-server/frontend/components/ui/form.tsx rename to frontend/components/ui/form.tsx diff --git a/openflare-server/frontend/components/ui/image-crop.tsx b/frontend/components/ui/image-crop.tsx similarity index 100% rename from openflare-server/frontend/components/ui/image-crop.tsx rename to frontend/components/ui/image-crop.tsx diff --git a/openflare-server/frontend/components/ui/input-otp.tsx b/frontend/components/ui/input-otp.tsx similarity index 100% rename from openflare-server/frontend/components/ui/input-otp.tsx rename to frontend/components/ui/input-otp.tsx diff --git a/openflare-server/frontend/components/ui/input.tsx b/frontend/components/ui/input.tsx similarity index 100% rename from openflare-server/frontend/components/ui/input.tsx rename to frontend/components/ui/input.tsx diff --git a/openflare-server/frontend/components/ui/kbd.tsx b/frontend/components/ui/kbd.tsx similarity index 100% rename from openflare-server/frontend/components/ui/kbd.tsx rename to frontend/components/ui/kbd.tsx diff --git a/openflare-server/frontend/components/ui/label.tsx b/frontend/components/ui/label.tsx similarity index 100% rename from openflare-server/frontend/components/ui/label.tsx rename to frontend/components/ui/label.tsx diff --git a/openflare-server/frontend/components/ui/pagination.tsx b/frontend/components/ui/pagination.tsx similarity index 100% rename from openflare-server/frontend/components/ui/pagination.tsx rename to frontend/components/ui/pagination.tsx diff --git a/openflare-server/frontend/components/ui/popover.tsx b/frontend/components/ui/popover.tsx similarity index 100% rename from openflare-server/frontend/components/ui/popover.tsx rename to frontend/components/ui/popover.tsx diff --git a/openflare-server/frontend/components/ui/progress.tsx b/frontend/components/ui/progress.tsx similarity index 100% rename from openflare-server/frontend/components/ui/progress.tsx rename to frontend/components/ui/progress.tsx diff --git a/openflare-server/frontend/components/ui/scroll-area.tsx b/frontend/components/ui/scroll-area.tsx similarity index 100% rename from openflare-server/frontend/components/ui/scroll-area.tsx rename to frontend/components/ui/scroll-area.tsx diff --git a/openflare-server/frontend/components/ui/select.tsx b/frontend/components/ui/select.tsx similarity index 100% rename from openflare-server/frontend/components/ui/select.tsx rename to frontend/components/ui/select.tsx diff --git a/openflare-server/frontend/components/ui/separator.tsx b/frontend/components/ui/separator.tsx similarity index 100% rename from openflare-server/frontend/components/ui/separator.tsx rename to frontend/components/ui/separator.tsx diff --git a/openflare-server/frontend/components/ui/sheet.tsx b/frontend/components/ui/sheet.tsx similarity index 100% rename from openflare-server/frontend/components/ui/sheet.tsx rename to frontend/components/ui/sheet.tsx diff --git a/openflare-server/frontend/components/ui/sidebar.tsx b/frontend/components/ui/sidebar.tsx similarity index 100% rename from openflare-server/frontend/components/ui/sidebar.tsx rename to frontend/components/ui/sidebar.tsx diff --git a/openflare-server/frontend/components/ui/skeleton.tsx b/frontend/components/ui/skeleton.tsx similarity index 100% rename from openflare-server/frontend/components/ui/skeleton.tsx rename to frontend/components/ui/skeleton.tsx diff --git a/openflare-server/frontend/components/ui/slider.tsx b/frontend/components/ui/slider.tsx similarity index 100% rename from openflare-server/frontend/components/ui/slider.tsx rename to frontend/components/ui/slider.tsx diff --git a/openflare-server/frontend/components/ui/snow-effect.tsx b/frontend/components/ui/snow-effect.tsx similarity index 100% rename from openflare-server/frontend/components/ui/snow-effect.tsx rename to frontend/components/ui/snow-effect.tsx diff --git a/openflare-server/frontend/components/ui/sonner.tsx b/frontend/components/ui/sonner.tsx similarity index 100% rename from openflare-server/frontend/components/ui/sonner.tsx rename to frontend/components/ui/sonner.tsx diff --git a/openflare-server/frontend/components/ui/spinner.tsx b/frontend/components/ui/spinner.tsx similarity index 100% rename from openflare-server/frontend/components/ui/spinner.tsx rename to frontend/components/ui/spinner.tsx diff --git a/openflare-server/frontend/components/ui/switch.tsx b/frontend/components/ui/switch.tsx similarity index 100% rename from openflare-server/frontend/components/ui/switch.tsx rename to frontend/components/ui/switch.tsx diff --git a/openflare-server/frontend/components/ui/table.tsx b/frontend/components/ui/table.tsx similarity index 100% rename from openflare-server/frontend/components/ui/table.tsx rename to frontend/components/ui/table.tsx diff --git a/openflare-server/frontend/components/ui/tabs.tsx b/frontend/components/ui/tabs.tsx similarity index 100% rename from openflare-server/frontend/components/ui/tabs.tsx rename to frontend/components/ui/tabs.tsx diff --git a/openflare-server/frontend/components/ui/textarea.tsx b/frontend/components/ui/textarea.tsx similarity index 100% rename from openflare-server/frontend/components/ui/textarea.tsx rename to frontend/components/ui/textarea.tsx diff --git a/openflare-server/frontend/components/ui/toggle-group.tsx b/frontend/components/ui/toggle-group.tsx similarity index 100% rename from openflare-server/frontend/components/ui/toggle-group.tsx rename to frontend/components/ui/toggle-group.tsx diff --git a/openflare-server/frontend/components/ui/toggle.tsx b/frontend/components/ui/toggle.tsx similarity index 100% rename from openflare-server/frontend/components/ui/toggle.tsx rename to frontend/components/ui/toggle.tsx diff --git a/openflare-server/frontend/components/ui/tooltip.tsx b/frontend/components/ui/tooltip.tsx similarity index 100% rename from openflare-server/frontend/components/ui/tooltip.tsx rename to frontend/components/ui/tooltip.tsx diff --git a/openflare-server/frontend/contexts/admin-context.tsx b/frontend/contexts/admin-context.tsx similarity index 100% rename from openflare-server/frontend/contexts/admin-context.tsx rename to frontend/contexts/admin-context.tsx diff --git a/openflare-server/frontend/contexts/admin-users-context.tsx b/frontend/contexts/admin-users-context.tsx similarity index 100% rename from openflare-server/frontend/contexts/admin-users-context.tsx rename to frontend/contexts/admin-users-context.tsx diff --git a/openflare-server/frontend/contexts/bell-ring-context.tsx b/frontend/contexts/bell-ring-context.tsx similarity index 100% rename from openflare-server/frontend/contexts/bell-ring-context.tsx rename to frontend/contexts/bell-ring-context.tsx diff --git a/openflare-server/frontend/contexts/notification-settings-context.tsx b/frontend/contexts/notification-settings-context.tsx similarity index 100% rename from openflare-server/frontend/contexts/notification-settings-context.tsx rename to frontend/contexts/notification-settings-context.tsx diff --git a/openflare-server/frontend/contexts/user-context.tsx b/frontend/contexts/user-context.tsx similarity index 100% rename from openflare-server/frontend/contexts/user-context.tsx rename to frontend/contexts/user-context.tsx diff --git a/openflare-server/frontend/entrypoint.sh b/frontend/entrypoint.sh similarity index 100% rename from openflare-server/frontend/entrypoint.sh rename to frontend/entrypoint.sh diff --git a/openflare-server/frontend/eslint.config.mjs b/frontend/eslint.config.mjs similarity index 100% rename from openflare-server/frontend/eslint.config.mjs rename to frontend/eslint.config.mjs diff --git a/openflare-server/frontend/hooks/use-auth-redirect.ts b/frontend/hooks/use-auth-redirect.ts similarity index 100% rename from openflare-server/frontend/hooks/use-auth-redirect.ts rename to frontend/hooks/use-auth-redirect.ts diff --git a/openflare-server/frontend/hooks/use-controlled-state.tsx b/frontend/hooks/use-controlled-state.tsx similarity index 100% rename from openflare-server/frontend/hooks/use-controlled-state.tsx rename to frontend/hooks/use-controlled-state.tsx diff --git a/openflare-server/frontend/hooks/use-is-in-view.tsx b/frontend/hooks/use-is-in-view.tsx similarity index 100% rename from openflare-server/frontend/hooks/use-is-in-view.tsx rename to frontend/hooks/use-is-in-view.tsx diff --git a/openflare-server/frontend/hooks/use-mobile.ts b/frontend/hooks/use-mobile.ts similarity index 100% rename from openflare-server/frontend/hooks/use-mobile.ts rename to frontend/hooks/use-mobile.ts diff --git a/openflare-server/frontend/hooks/use-public-config.ts b/frontend/hooks/use-public-config.ts similarity index 100% rename from openflare-server/frontend/hooks/use-public-config.ts rename to frontend/hooks/use-public-config.ts diff --git a/openflare-server/frontend/lib/app-info.ts b/frontend/lib/app-info.ts similarity index 100% rename from openflare-server/frontend/lib/app-info.ts rename to frontend/lib/app-info.ts diff --git a/openflare-server/frontend/lib/cap-solver.ts b/frontend/lib/cap-solver.ts similarity index 100% rename from openflare-server/frontend/lib/cap-solver.ts rename to frontend/lib/cap-solver.ts diff --git a/openflare-server/frontend/lib/hooks/use-openflare-server-upgrade.ts b/frontend/lib/hooks/use-openflare-server-upgrade.ts similarity index 100% rename from openflare-server/frontend/lib/hooks/use-openflare-server-upgrade.ts rename to frontend/lib/hooks/use-openflare-server-upgrade.ts diff --git a/openflare-server/frontend/lib/navigation/openflare-nav.ts b/frontend/lib/navigation/openflare-nav.ts similarity index 100% rename from openflare-server/frontend/lib/navigation/openflare-nav.ts rename to frontend/lib/navigation/openflare-nav.ts diff --git a/openflare-server/frontend/lib/services/admin/auth-source.service.ts b/frontend/lib/services/admin/auth-source.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/auth-source.service.ts rename to frontend/lib/services/admin/auth-source.service.ts diff --git a/openflare-server/frontend/lib/services/admin/cache.service.ts b/frontend/lib/services/admin/cache.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/cache.service.ts rename to frontend/lib/services/admin/cache.service.ts diff --git a/openflare-server/frontend/lib/services/admin/index.ts b/frontend/lib/services/admin/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/index.ts rename to frontend/lib/services/admin/index.ts diff --git a/openflare-server/frontend/lib/services/admin/log.service.ts b/frontend/lib/services/admin/log.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/log.service.ts rename to frontend/lib/services/admin/log.service.ts diff --git a/openflare-server/frontend/lib/services/admin/status.service.ts b/frontend/lib/services/admin/status.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/status.service.ts rename to frontend/lib/services/admin/status.service.ts diff --git a/openflare-server/frontend/lib/services/admin/system-config.service.ts b/frontend/lib/services/admin/system-config.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/system-config.service.ts rename to frontend/lib/services/admin/system-config.service.ts diff --git a/openflare-server/frontend/lib/services/admin/task.service.ts b/frontend/lib/services/admin/task.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/task.service.ts rename to frontend/lib/services/admin/task.service.ts diff --git a/openflare-server/frontend/lib/services/admin/template.service.ts b/frontend/lib/services/admin/template.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/template.service.ts rename to frontend/lib/services/admin/template.service.ts diff --git a/openflare-server/frontend/lib/services/admin/types.ts b/frontend/lib/services/admin/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/types.ts rename to frontend/lib/services/admin/types.ts diff --git a/openflare-server/frontend/lib/services/admin/user.service.ts b/frontend/lib/services/admin/user.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/admin/user.service.ts rename to frontend/lib/services/admin/user.service.ts diff --git a/openflare-server/frontend/lib/services/auth/auth.service.ts b/frontend/lib/services/auth/auth.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/auth/auth.service.ts rename to frontend/lib/services/auth/auth.service.ts diff --git a/openflare-server/frontend/lib/services/auth/index.ts b/frontend/lib/services/auth/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/auth/index.ts rename to frontend/lib/services/auth/index.ts diff --git a/openflare-server/frontend/lib/services/auth/types.ts b/frontend/lib/services/auth/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/auth/types.ts rename to frontend/lib/services/auth/types.ts diff --git a/openflare-server/frontend/lib/services/config/config.service.ts b/frontend/lib/services/config/config.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/config/config.service.ts rename to frontend/lib/services/config/config.service.ts diff --git a/openflare-server/frontend/lib/services/config/index.ts b/frontend/lib/services/config/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/config/index.ts rename to frontend/lib/services/config/index.ts diff --git a/openflare-server/frontend/lib/services/config/types.ts b/frontend/lib/services/config/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/config/types.ts rename to frontend/lib/services/config/types.ts diff --git a/openflare-server/frontend/lib/services/core/api-client.ts b/frontend/lib/services/core/api-client.ts similarity index 100% rename from openflare-server/frontend/lib/services/core/api-client.ts rename to frontend/lib/services/core/api-client.ts diff --git a/openflare-server/frontend/lib/services/core/base.service.ts b/frontend/lib/services/core/base.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/core/base.service.ts rename to frontend/lib/services/core/base.service.ts diff --git a/openflare-server/frontend/lib/services/core/config.ts b/frontend/lib/services/core/config.ts similarity index 100% rename from openflare-server/frontend/lib/services/core/config.ts rename to frontend/lib/services/core/config.ts diff --git a/openflare-server/frontend/lib/services/core/errors.ts b/frontend/lib/services/core/errors.ts similarity index 100% rename from openflare-server/frontend/lib/services/core/errors.ts rename to frontend/lib/services/core/errors.ts diff --git a/openflare-server/frontend/lib/services/core/index.ts b/frontend/lib/services/core/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/core/index.ts rename to frontend/lib/services/core/index.ts diff --git a/openflare-server/frontend/lib/services/core/types.ts b/frontend/lib/services/core/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/core/types.ts rename to frontend/lib/services/core/types.ts diff --git a/openflare-server/frontend/lib/services/db-manage/db-manage.service.ts b/frontend/lib/services/db-manage/db-manage.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/db-manage/db-manage.service.ts rename to frontend/lib/services/db-manage/db-manage.service.ts diff --git a/openflare-server/frontend/lib/services/db-manage/index.ts b/frontend/lib/services/db-manage/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/db-manage/index.ts rename to frontend/lib/services/db-manage/index.ts diff --git a/openflare-server/frontend/lib/services/db-manage/types.ts b/frontend/lib/services/db-manage/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/db-manage/types.ts rename to frontend/lib/services/db-manage/types.ts diff --git a/openflare-server/frontend/lib/services/index.ts b/frontend/lib/services/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/index.ts rename to frontend/lib/services/index.ts diff --git a/openflare-server/frontend/lib/services/openflare/access-log.service.ts b/frontend/lib/services/openflare/access-log.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/access-log.service.ts rename to frontend/lib/services/openflare/access-log.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/apply-log.service.ts b/frontend/lib/services/openflare/apply-log.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/apply-log.service.ts rename to frontend/lib/services/openflare/apply-log.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/base.service.ts b/frontend/lib/services/openflare/base.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/base.service.ts rename to frontend/lib/services/openflare/base.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/config-version.service.ts b/frontend/lib/services/openflare/config-version.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/config-version.service.ts rename to frontend/lib/services/openflare/config-version.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/dashboard.service.ts b/frontend/lib/services/openflare/dashboard.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/dashboard.service.ts rename to frontend/lib/services/openflare/dashboard.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/dns-account.service.ts b/frontend/lib/services/openflare/dns-account.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/dns-account.service.ts rename to frontend/lib/services/openflare/dns-account.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/index.ts b/frontend/lib/services/openflare/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/index.ts rename to frontend/lib/services/openflare/index.ts diff --git a/openflare-server/frontend/lib/services/openflare/node.service.ts b/frontend/lib/services/openflare/node.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/node.service.ts rename to frontend/lib/services/openflare/node.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/option.service.ts b/frontend/lib/services/openflare/option.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/option.service.ts rename to frontend/lib/services/openflare/option.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/origin.service.ts b/frontend/lib/services/openflare/origin.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/origin.service.ts rename to frontend/lib/services/openflare/origin.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/pages.service.ts b/frontend/lib/services/openflare/pages.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/pages.service.ts rename to frontend/lib/services/openflare/pages.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/proxy-route.service.ts b/frontend/lib/services/openflare/proxy-route.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/proxy-route.service.ts rename to frontend/lib/services/openflare/proxy-route.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/status.service.ts b/frontend/lib/services/openflare/status.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/status.service.ts rename to frontend/lib/services/openflare/status.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/tls-certificate.service.ts b/frontend/lib/services/openflare/tls-certificate.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/tls-certificate.service.ts rename to frontend/lib/services/openflare/tls-certificate.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/types.ts b/frontend/lib/services/openflare/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/types.ts rename to frontend/lib/services/openflare/types.ts diff --git a/openflare-server/frontend/lib/services/openflare/uptimekuma.service.ts b/frontend/lib/services/openflare/uptimekuma.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/uptimekuma.service.ts rename to frontend/lib/services/openflare/uptimekuma.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/waf.service.ts b/frontend/lib/services/openflare/waf.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/waf.service.ts rename to frontend/lib/services/openflare/waf.service.ts diff --git a/openflare-server/frontend/lib/services/openflare/website.service.ts b/frontend/lib/services/openflare/website.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/openflare/website.service.ts rename to frontend/lib/services/openflare/website.service.ts diff --git a/openflare-server/frontend/lib/services/push/index.ts b/frontend/lib/services/push/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/push/index.ts rename to frontend/lib/services/push/index.ts diff --git a/openflare-server/frontend/lib/services/push/push.service.ts b/frontend/lib/services/push/push.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/push/push.service.ts rename to frontend/lib/services/push/push.service.ts diff --git a/openflare-server/frontend/lib/services/push/types.ts b/frontend/lib/services/push/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/push/types.ts rename to frontend/lib/services/push/types.ts diff --git a/openflare-server/frontend/lib/services/upload/admin-upload.service.ts b/frontend/lib/services/upload/admin-upload.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/upload/admin-upload.service.ts rename to frontend/lib/services/upload/admin-upload.service.ts diff --git a/openflare-server/frontend/lib/services/upload/index.ts b/frontend/lib/services/upload/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/upload/index.ts rename to frontend/lib/services/upload/index.ts diff --git a/openflare-server/frontend/lib/services/upload/types.ts b/frontend/lib/services/upload/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/upload/types.ts rename to frontend/lib/services/upload/types.ts diff --git a/openflare-server/frontend/lib/services/upload/upload.service.ts b/frontend/lib/services/upload/upload.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/upload/upload.service.ts rename to frontend/lib/services/upload/upload.service.ts diff --git a/openflare-server/frontend/lib/services/upload/utils.ts b/frontend/lib/services/upload/utils.ts similarity index 100% rename from openflare-server/frontend/lib/services/upload/utils.ts rename to frontend/lib/services/upload/utils.ts diff --git a/openflare-server/frontend/lib/services/user/index.ts b/frontend/lib/services/user/index.ts similarity index 100% rename from openflare-server/frontend/lib/services/user/index.ts rename to frontend/lib/services/user/index.ts diff --git a/openflare-server/frontend/lib/services/user/types.ts b/frontend/lib/services/user/types.ts similarity index 100% rename from openflare-server/frontend/lib/services/user/types.ts rename to frontend/lib/services/user/types.ts diff --git a/openflare-server/frontend/lib/services/user/user.service.ts b/frontend/lib/services/user/user.service.ts similarity index 100% rename from openflare-server/frontend/lib/services/user/user.service.ts rename to frontend/lib/services/user/user.service.ts diff --git a/openflare-server/frontend/lib/task-param-utils.ts b/frontend/lib/task-param-utils.ts similarity index 100% rename from openflare-server/frontend/lib/task-param-utils.ts rename to frontend/lib/task-param-utils.ts diff --git a/openflare-server/frontend/lib/theme/config.ts b/frontend/lib/theme/config.ts similarity index 100% rename from openflare-server/frontend/lib/theme/config.ts rename to frontend/lib/theme/config.ts diff --git a/openflare-server/frontend/lib/theme/context.tsx b/frontend/lib/theme/context.tsx similarity index 100% rename from openflare-server/frontend/lib/theme/context.tsx rename to frontend/lib/theme/context.tsx diff --git a/openflare-server/frontend/lib/theme/index.ts b/frontend/lib/theme/index.ts similarity index 100% rename from openflare-server/frontend/lib/theme/index.ts rename to frontend/lib/theme/index.ts diff --git a/openflare-server/frontend/lib/theme/parser.ts b/frontend/lib/theme/parser.ts similarity index 100% rename from openflare-server/frontend/lib/theme/parser.ts rename to frontend/lib/theme/parser.ts diff --git a/openflare-server/frontend/lib/theme/storage.ts b/frontend/lib/theme/storage.ts similarity index 100% rename from openflare-server/frontend/lib/theme/storage.ts rename to frontend/lib/theme/storage.ts diff --git a/openflare-server/frontend/lib/theme/themes.json b/frontend/lib/theme/themes.json similarity index 100% rename from openflare-server/frontend/lib/theme/themes.json rename to frontend/lib/theme/themes.json diff --git a/openflare-server/frontend/lib/theme/types.ts b/frontend/lib/theme/types.ts similarity index 100% rename from openflare-server/frontend/lib/theme/types.ts rename to frontend/lib/theme/types.ts diff --git a/openflare-server/frontend/lib/utils.ts b/frontend/lib/utils.ts similarity index 100% rename from openflare-server/frontend/lib/utils.ts rename to frontend/lib/utils.ts diff --git a/openflare-server/frontend/lib/utils/error-handling.ts b/frontend/lib/utils/error-handling.ts similarity index 100% rename from openflare-server/frontend/lib/utils/error-handling.ts rename to frontend/lib/utils/error-handling.ts diff --git a/openflare-server/frontend/lib/utils/get-strict-context.tsx b/frontend/lib/utils/get-strict-context.tsx similarity index 100% rename from openflare-server/frontend/lib/utils/get-strict-context.tsx rename to frontend/lib/utils/get-strict-context.tsx diff --git a/openflare-server/frontend/lib/utils/metrics.ts b/frontend/lib/utils/metrics.ts similarity index 100% rename from openflare-server/frontend/lib/utils/metrics.ts rename to frontend/lib/utils/metrics.ts diff --git a/openflare-server/frontend/lib/utils/search-data.ts b/frontend/lib/utils/search-data.ts similarity index 100% rename from openflare-server/frontend/lib/utils/search-data.ts rename to frontend/lib/utils/search-data.ts diff --git a/openflare-server/frontend/next.config.ts b/frontend/next.config.ts similarity index 100% rename from openflare-server/frontend/next.config.ts rename to frontend/next.config.ts diff --git a/openflare-server/frontend/package.json b/frontend/package.json similarity index 100% rename from openflare-server/frontend/package.json rename to frontend/package.json diff --git a/openflare-server/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml similarity index 100% rename from openflare-server/frontend/pnpm-lock.yaml rename to frontend/pnpm-lock.yaml diff --git a/openflare-server/frontend/pnpm-workspace.yaml b/frontend/pnpm-workspace.yaml similarity index 100% rename from openflare-server/frontend/pnpm-workspace.yaml rename to frontend/pnpm-workspace.yaml diff --git a/openflare-server/frontend/postcss.config.mjs b/frontend/postcss.config.mjs similarity index 100% rename from openflare-server/frontend/postcss.config.mjs rename to frontend/postcss.config.mjs diff --git a/openflare-server/frontend/proxy.ts b/frontend/proxy.ts similarity index 100% rename from openflare-server/frontend/proxy.ts rename to frontend/proxy.ts diff --git a/openflare-server/frontend/public/icon.png b/frontend/public/icon.png similarity index 100% rename from openflare-server/frontend/public/icon.png rename to frontend/public/icon.png diff --git a/openflare-server/frontend/public/style/amethyst-haze.css b/frontend/public/style/amethyst-haze.css similarity index 100% rename from openflare-server/frontend/public/style/amethyst-haze.css rename to frontend/public/style/amethyst-haze.css diff --git a/openflare-server/frontend/public/style/bold-tech.css b/frontend/public/style/bold-tech.css similarity index 100% rename from openflare-server/frontend/public/style/bold-tech.css rename to frontend/public/style/bold-tech.css diff --git a/openflare-server/frontend/public/style/bubblegum.css b/frontend/public/style/bubblegum.css similarity index 100% rename from openflare-server/frontend/public/style/bubblegum.css rename to frontend/public/style/bubblegum.css diff --git a/openflare-server/frontend/public/style/caffeine.css b/frontend/public/style/caffeine.css similarity index 100% rename from openflare-server/frontend/public/style/caffeine.css rename to frontend/public/style/caffeine.css diff --git a/openflare-server/frontend/public/style/candyland.css b/frontend/public/style/candyland.css similarity index 100% rename from openflare-server/frontend/public/style/candyland.css rename to frontend/public/style/candyland.css diff --git a/openflare-server/frontend/public/style/catppuccin.css b/frontend/public/style/catppuccin.css similarity index 100% rename from openflare-server/frontend/public/style/catppuccin.css rename to frontend/public/style/catppuccin.css diff --git a/openflare-server/frontend/public/style/claude.css b/frontend/public/style/claude.css similarity index 100% rename from openflare-server/frontend/public/style/claude.css rename to frontend/public/style/claude.css diff --git a/openflare-server/frontend/public/style/claymorphism.css b/frontend/public/style/claymorphism.css similarity index 100% rename from openflare-server/frontend/public/style/claymorphism.css rename to frontend/public/style/claymorphism.css diff --git a/openflare-server/frontend/public/style/clean-slate.css b/frontend/public/style/clean-slate.css similarity index 100% rename from openflare-server/frontend/public/style/clean-slate.css rename to frontend/public/style/clean-slate.css diff --git a/openflare-server/frontend/public/style/cosmic-night.css b/frontend/public/style/cosmic-night.css similarity index 100% rename from openflare-server/frontend/public/style/cosmic-night.css rename to frontend/public/style/cosmic-night.css diff --git a/openflare-server/frontend/public/style/cyberpunk.css b/frontend/public/style/cyberpunk.css similarity index 100% rename from openflare-server/frontend/public/style/cyberpunk.css rename to frontend/public/style/cyberpunk.css diff --git a/openflare-server/frontend/public/style/darkmatter.css b/frontend/public/style/darkmatter.css similarity index 100% rename from openflare-server/frontend/public/style/darkmatter.css rename to frontend/public/style/darkmatter.css diff --git a/openflare-server/frontend/public/style/default.css b/frontend/public/style/default.css similarity index 100% rename from openflare-server/frontend/public/style/default.css rename to frontend/public/style/default.css diff --git a/openflare-server/frontend/public/style/doom-64.css b/frontend/public/style/doom-64.css similarity index 100% rename from openflare-server/frontend/public/style/doom-64.css rename to frontend/public/style/doom-64.css diff --git a/openflare-server/frontend/public/style/elegant-luxury.css b/frontend/public/style/elegant-luxury.css similarity index 100% rename from openflare-server/frontend/public/style/elegant-luxury.css rename to frontend/public/style/elegant-luxury.css diff --git a/openflare-server/frontend/public/style/graphite.css b/frontend/public/style/graphite.css similarity index 100% rename from openflare-server/frontend/public/style/graphite.css rename to frontend/public/style/graphite.css diff --git a/openflare-server/frontend/public/style/kodama-grove.css b/frontend/public/style/kodama-grove.css similarity index 100% rename from openflare-server/frontend/public/style/kodama-grove.css rename to frontend/public/style/kodama-grove.css diff --git a/openflare-server/frontend/public/style/midnight-bloom.css b/frontend/public/style/midnight-bloom.css similarity index 100% rename from openflare-server/frontend/public/style/midnight-bloom.css rename to frontend/public/style/midnight-bloom.css diff --git a/openflare-server/frontend/public/style/mocha-mousse.css b/frontend/public/style/mocha-mousse.css similarity index 100% rename from openflare-server/frontend/public/style/mocha-mousse.css rename to frontend/public/style/mocha-mousse.css diff --git a/openflare-server/frontend/public/style/nature.css b/frontend/public/style/nature.css similarity index 100% rename from openflare-server/frontend/public/style/nature.css rename to frontend/public/style/nature.css diff --git a/openflare-server/frontend/public/style/neo-brutalism.css b/frontend/public/style/neo-brutalism.css similarity index 100% rename from openflare-server/frontend/public/style/neo-brutalism.css rename to frontend/public/style/neo-brutalism.css diff --git a/openflare-server/frontend/public/style/northern-lights.css b/frontend/public/style/northern-lights.css similarity index 100% rename from openflare-server/frontend/public/style/northern-lights.css rename to frontend/public/style/northern-lights.css diff --git a/openflare-server/frontend/public/style/notebook.css b/frontend/public/style/notebook.css similarity index 100% rename from openflare-server/frontend/public/style/notebook.css rename to frontend/public/style/notebook.css diff --git a/openflare-server/frontend/public/style/ocean-breeze.css b/frontend/public/style/ocean-breeze.css similarity index 100% rename from openflare-server/frontend/public/style/ocean-breeze.css rename to frontend/public/style/ocean-breeze.css diff --git a/openflare-server/frontend/public/style/pastel-dreams.css b/frontend/public/style/pastel-dreams.css similarity index 100% rename from openflare-server/frontend/public/style/pastel-dreams.css rename to frontend/public/style/pastel-dreams.css diff --git a/openflare-server/frontend/public/style/perpetuity.css b/frontend/public/style/perpetuity.css similarity index 100% rename from openflare-server/frontend/public/style/perpetuity.css rename to frontend/public/style/perpetuity.css diff --git a/openflare-server/frontend/public/style/quantum-rose.css b/frontend/public/style/quantum-rose.css similarity index 100% rename from openflare-server/frontend/public/style/quantum-rose.css rename to frontend/public/style/quantum-rose.css diff --git a/openflare-server/frontend/public/style/retro-arcade.css b/frontend/public/style/retro-arcade.css similarity index 100% rename from openflare-server/frontend/public/style/retro-arcade.css rename to frontend/public/style/retro-arcade.css diff --git a/openflare-server/frontend/public/style/sage-garden.css b/frontend/public/style/sage-garden.css similarity index 100% rename from openflare-server/frontend/public/style/sage-garden.css rename to frontend/public/style/sage-garden.css diff --git a/openflare-server/frontend/public/style/soft-pop.css b/frontend/public/style/soft-pop.css similarity index 100% rename from openflare-server/frontend/public/style/soft-pop.css rename to frontend/public/style/soft-pop.css diff --git a/openflare-server/frontend/public/style/solar-dusk.css b/frontend/public/style/solar-dusk.css similarity index 100% rename from openflare-server/frontend/public/style/solar-dusk.css rename to frontend/public/style/solar-dusk.css diff --git a/openflare-server/frontend/public/style/starry-night.css b/frontend/public/style/starry-night.css similarity index 100% rename from openflare-server/frontend/public/style/starry-night.css rename to frontend/public/style/starry-night.css diff --git a/openflare-server/frontend/public/style/sunset-horizon.css b/frontend/public/style/sunset-horizon.css similarity index 100% rename from openflare-server/frontend/public/style/sunset-horizon.css rename to frontend/public/style/sunset-horizon.css diff --git a/openflare-server/frontend/public/style/supabase.css b/frontend/public/style/supabase.css similarity index 100% rename from openflare-server/frontend/public/style/supabase.css rename to frontend/public/style/supabase.css diff --git a/openflare-server/frontend/public/style/t3-chat.css b/frontend/public/style/t3-chat.css similarity index 100% rename from openflare-server/frontend/public/style/t3-chat.css rename to frontend/public/style/t3-chat.css diff --git a/openflare-server/frontend/public/style/tangerine.css b/frontend/public/style/tangerine.css similarity index 100% rename from openflare-server/frontend/public/style/tangerine.css rename to frontend/public/style/tangerine.css diff --git a/openflare-server/frontend/public/style/twitter.css b/frontend/public/style/twitter.css similarity index 100% rename from openflare-server/frontend/public/style/twitter.css rename to frontend/public/style/twitter.css diff --git a/openflare-server/frontend/public/style/vercel.css b/frontend/public/style/vercel.css similarity index 100% rename from openflare-server/frontend/public/style/vercel.css rename to frontend/public/style/vercel.css diff --git a/openflare-server/frontend/public/style/vintage-paper.css b/frontend/public/style/vintage-paper.css similarity index 100% rename from openflare-server/frontend/public/style/vintage-paper.css rename to frontend/public/style/vintage-paper.css diff --git a/openflare-server/frontend/public/style/violet-bloom.css b/frontend/public/style/violet-bloom.css similarity index 100% rename from openflare-server/frontend/public/style/violet-bloom.css rename to frontend/public/style/violet-bloom.css diff --git a/openflare-server/frontend/scripts/generate-themes.js b/frontend/scripts/generate-themes.js similarity index 100% rename from openflare-server/frontend/scripts/generate-themes.js rename to frontend/scripts/generate-themes.js diff --git a/openflare-server/frontend/tsconfig.json b/frontend/tsconfig.json similarity index 100% rename from openflare-server/frontend/tsconfig.json rename to frontend/tsconfig.json diff --git a/openflare-server/frontend/types/react-syntax-highlighter.d.ts b/frontend/types/react-syntax-highlighter.d.ts similarity index 100% rename from openflare-server/frontend/types/react-syntax-highlighter.d.ts rename to frontend/types/react-syntax-highlighter.d.ts diff --git a/openflare-server/go.mod b/go.mod similarity index 100% rename from openflare-server/go.mod rename to go.mod diff --git a/openflare-server/go.sum b/go.sum similarity index 100% rename from openflare-server/go.sum rename to go.sum diff --git a/openflare-server/internal/apps/admin/auth_source/routers.go b/internal/apps/admin/auth_source/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/auth_source/routers.go rename to internal/apps/admin/auth_source/routers.go diff --git a/openflare-server/internal/apps/admin/auth_source/routers_test.go b/internal/apps/admin/auth_source/routers_test.go similarity index 100% rename from openflare-server/internal/apps/admin/auth_source/routers_test.go rename to internal/apps/admin/auth_source/routers_test.go diff --git a/openflare-server/internal/apps/admin/cache/logics.go b/internal/apps/admin/cache/logics.go similarity index 100% rename from openflare-server/internal/apps/admin/cache/logics.go rename to internal/apps/admin/cache/logics.go diff --git a/openflare-server/internal/apps/admin/cache/routers.go b/internal/apps/admin/cache/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/cache/routers.go rename to internal/apps/admin/cache/routers.go diff --git a/openflare-server/internal/apps/admin/db_manage/routers.go b/internal/apps/admin/db_manage/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/db_manage/routers.go rename to internal/apps/admin/db_manage/routers.go diff --git a/openflare-server/internal/apps/admin/errs.go b/internal/apps/admin/errs.go similarity index 100% rename from openflare-server/internal/apps/admin/errs.go rename to internal/apps/admin/errs.go diff --git a/openflare-server/internal/apps/admin/logs/routers.go b/internal/apps/admin/logs/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/logs/routers.go rename to internal/apps/admin/logs/routers.go diff --git a/openflare-server/internal/apps/admin/logs/utils.go b/internal/apps/admin/logs/utils.go similarity index 100% rename from openflare-server/internal/apps/admin/logs/utils.go rename to internal/apps/admin/logs/utils.go diff --git a/openflare-server/internal/apps/admin/logs/utils_test.go b/internal/apps/admin/logs/utils_test.go similarity index 100% rename from openflare-server/internal/apps/admin/logs/utils_test.go rename to internal/apps/admin/logs/utils_test.go diff --git a/openflare-server/internal/apps/admin/middlewares.go b/internal/apps/admin/middlewares.go similarity index 100% rename from openflare-server/internal/apps/admin/middlewares.go rename to internal/apps/admin/middlewares.go diff --git a/openflare-server/internal/apps/admin/push/channels.go b/internal/apps/admin/push/channels.go similarity index 100% rename from openflare-server/internal/apps/admin/push/channels.go rename to internal/apps/admin/push/channels.go diff --git a/openflare-server/internal/apps/admin/push/channels_definition.go b/internal/apps/admin/push/channels_definition.go similarity index 100% rename from openflare-server/internal/apps/admin/push/channels_definition.go rename to internal/apps/admin/push/channels_definition.go diff --git a/openflare-server/internal/apps/admin/push/constants.go b/internal/apps/admin/push/constants.go similarity index 100% rename from openflare-server/internal/apps/admin/push/constants.go rename to internal/apps/admin/push/constants.go diff --git a/openflare-server/internal/apps/admin/push/custom_events/admin_login.go b/internal/apps/admin/push/custom_events/admin_login.go similarity index 100% rename from openflare-server/internal/apps/admin/push/custom_events/admin_login.go rename to internal/apps/admin/push/custom_events/admin_login.go diff --git a/openflare-server/internal/apps/admin/push/custom_events/admin_login_test.go b/internal/apps/admin/push/custom_events/admin_login_test.go similarity index 100% rename from openflare-server/internal/apps/admin/push/custom_events/admin_login_test.go rename to internal/apps/admin/push/custom_events/admin_login_test.go diff --git a/openflare-server/internal/apps/admin/push/custom_events/register.go b/internal/apps/admin/push/custom_events/register.go similarity index 100% rename from openflare-server/internal/apps/admin/push/custom_events/register.go rename to internal/apps/admin/push/custom_events/register.go diff --git a/openflare-server/internal/apps/admin/push/events.go b/internal/apps/admin/push/events.go similarity index 100% rename from openflare-server/internal/apps/admin/push/events.go rename to internal/apps/admin/push/events.go diff --git a/openflare-server/internal/apps/admin/push/logics.go b/internal/apps/admin/push/logics.go similarity index 100% rename from openflare-server/internal/apps/admin/push/logics.go rename to internal/apps/admin/push/logics.go diff --git a/openflare-server/internal/apps/admin/push/push_test.go b/internal/apps/admin/push/push_test.go similarity index 100% rename from openflare-server/internal/apps/admin/push/push_test.go rename to internal/apps/admin/push/push_test.go diff --git a/openflare-server/internal/apps/admin/push/routers.go b/internal/apps/admin/push/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/push/routers.go rename to internal/apps/admin/push/routers.go diff --git a/openflare-server/internal/apps/admin/push/task_listener.go b/internal/apps/admin/push/task_listener.go similarity index 100% rename from openflare-server/internal/apps/admin/push/task_listener.go rename to internal/apps/admin/push/task_listener.go diff --git a/openflare-server/internal/apps/admin/push/tasks.go b/internal/apps/admin/push/tasks.go similarity index 100% rename from openflare-server/internal/apps/admin/push/tasks.go rename to internal/apps/admin/push/tasks.go diff --git a/openflare-server/internal/apps/admin/status/routers.go b/internal/apps/admin/status/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/status/routers.go rename to internal/apps/admin/status/routers.go diff --git a/openflare-server/internal/apps/admin/system_config/errs.go b/internal/apps/admin/system_config/errs.go similarity index 100% rename from openflare-server/internal/apps/admin/system_config/errs.go rename to internal/apps/admin/system_config/errs.go diff --git a/openflare-server/internal/apps/admin/system_config/logics.go b/internal/apps/admin/system_config/logics.go similarity index 100% rename from openflare-server/internal/apps/admin/system_config/logics.go rename to internal/apps/admin/system_config/logics.go diff --git a/openflare-server/internal/apps/admin/system_config/routers.go b/internal/apps/admin/system_config/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/system_config/routers.go rename to internal/apps/admin/system_config/routers.go diff --git a/openflare-server/internal/apps/admin/system_config/routers_test.go b/internal/apps/admin/system_config/routers_test.go similarity index 100% rename from openflare-server/internal/apps/admin/system_config/routers_test.go rename to internal/apps/admin/system_config/routers_test.go diff --git a/openflare-server/internal/apps/admin/task/errs.go b/internal/apps/admin/task/errs.go similarity index 100% rename from openflare-server/internal/apps/admin/task/errs.go rename to internal/apps/admin/task/errs.go diff --git a/openflare-server/internal/apps/admin/task/routers.go b/internal/apps/admin/task/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/task/routers.go rename to internal/apps/admin/task/routers.go diff --git a/openflare-server/internal/apps/admin/task/routers_test.go b/internal/apps/admin/task/routers_test.go similarity index 100% rename from openflare-server/internal/apps/admin/task/routers_test.go rename to internal/apps/admin/task/routers_test.go diff --git a/openflare-server/internal/apps/admin/template/errs.go b/internal/apps/admin/template/errs.go similarity index 100% rename from openflare-server/internal/apps/admin/template/errs.go rename to internal/apps/admin/template/errs.go diff --git a/openflare-server/internal/apps/admin/template/logics.go b/internal/apps/admin/template/logics.go similarity index 100% rename from openflare-server/internal/apps/admin/template/logics.go rename to internal/apps/admin/template/logics.go diff --git a/openflare-server/internal/apps/admin/template/routers.go b/internal/apps/admin/template/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/template/routers.go rename to internal/apps/admin/template/routers.go diff --git a/openflare-server/internal/apps/admin/template/routers_test.go b/internal/apps/admin/template/routers_test.go similarity index 100% rename from openflare-server/internal/apps/admin/template/routers_test.go rename to internal/apps/admin/template/routers_test.go diff --git a/openflare-server/internal/apps/admin/updater/errs.go b/internal/apps/admin/updater/errs.go similarity index 100% rename from openflare-server/internal/apps/admin/updater/errs.go rename to internal/apps/admin/updater/errs.go diff --git a/openflare-server/internal/apps/admin/updater/export.go b/internal/apps/admin/updater/export.go similarity index 100% rename from openflare-server/internal/apps/admin/updater/export.go rename to internal/apps/admin/updater/export.go diff --git a/openflare-server/internal/apps/admin/updater/logics.go b/internal/apps/admin/updater/logics.go similarity index 100% rename from openflare-server/internal/apps/admin/updater/logics.go rename to internal/apps/admin/updater/logics.go diff --git a/openflare-server/internal/apps/admin/updater/logics_test.go b/internal/apps/admin/updater/logics_test.go similarity index 100% rename from openflare-server/internal/apps/admin/updater/logics_test.go rename to internal/apps/admin/updater/logics_test.go diff --git a/openflare-server/internal/apps/admin/updater/restart_unix.go b/internal/apps/admin/updater/restart_unix.go similarity index 100% rename from openflare-server/internal/apps/admin/updater/restart_unix.go rename to internal/apps/admin/updater/restart_unix.go diff --git a/openflare-server/internal/apps/admin/updater/restart_windows.go b/internal/apps/admin/updater/restart_windows.go similarity index 100% rename from openflare-server/internal/apps/admin/updater/restart_windows.go rename to internal/apps/admin/updater/restart_windows.go diff --git a/openflare-server/internal/apps/admin/updater/routers.go b/internal/apps/admin/updater/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/updater/routers.go rename to internal/apps/admin/updater/routers.go diff --git a/openflare-server/internal/apps/admin/user/errs.go b/internal/apps/admin/user/errs.go similarity index 100% rename from openflare-server/internal/apps/admin/user/errs.go rename to internal/apps/admin/user/errs.go diff --git a/openflare-server/internal/apps/admin/user/logics.go b/internal/apps/admin/user/logics.go similarity index 100% rename from openflare-server/internal/apps/admin/user/logics.go rename to internal/apps/admin/user/logics.go diff --git a/openflare-server/internal/apps/admin/user/routers.go b/internal/apps/admin/user/routers.go similarity index 100% rename from openflare-server/internal/apps/admin/user/routers.go rename to internal/apps/admin/user/routers.go diff --git a/openflare-server/internal/apps/admin/user/routers_test.go b/internal/apps/admin/user/routers_test.go similarity index 100% rename from openflare-server/internal/apps/admin/user/routers_test.go rename to internal/apps/admin/user/routers_test.go diff --git a/openflare-server/internal/agent/agent/runner.go b/internal/apps/agent/agent/runner.go similarity index 98% rename from openflare-server/internal/agent/agent/runner.go rename to internal/apps/agent/agent/runner.go index 1bb8f620..d27c5a2c 100644 --- a/openflare-server/internal/agent/agent/runner.go +++ b/internal/apps/agent/agent/runner.go @@ -8,11 +8,11 @@ import ( "strings" "time" - "github.com/Rain-kl/Wavelet/internal/agent/config" - "github.com/Rain-kl/Wavelet/internal/agent/observability" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" - "github.com/Rain-kl/Wavelet/internal/agent/state" - "github.com/Rain-kl/Wavelet/internal/agent/wsclient" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/observability" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" + "github.com/Rain-kl/Wavelet/internal/apps/agent/wsclient" ) type HeartbeatService interface { diff --git a/openflare-server/internal/agent/agent/runner_test.go b/internal/apps/agent/agent/runner_test.go similarity index 99% rename from openflare-server/internal/agent/agent/runner_test.go rename to internal/apps/agent/agent/runner_test.go index 0866f443..7e4b9267 100644 --- a/openflare-server/internal/agent/agent/runner_test.go +++ b/internal/apps/agent/agent/runner_test.go @@ -10,9 +10,9 @@ import ( "testing" "time" - "github.com/Rain-kl/Wavelet/internal/agent/config" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" - "github.com/Rain-kl/Wavelet/internal/agent/state" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" ) type fakeHeartbeatService struct { diff --git a/openflare-server/internal/agent/config/config.go b/internal/apps/agent/config/config.go similarity index 100% rename from openflare-server/internal/agent/config/config.go rename to internal/apps/agent/config/config.go diff --git a/openflare-server/internal/agent/config/config_test.go b/internal/apps/agent/config/config_test.go similarity index 100% rename from openflare-server/internal/agent/config/config_test.go rename to internal/apps/agent/config/config_test.go diff --git a/openflare-server/internal/agent/config/duration.go b/internal/apps/agent/config/duration.go similarity index 100% rename from openflare-server/internal/agent/config/duration.go rename to internal/apps/agent/config/duration.go diff --git a/openflare-server/internal/agent/config/version.go b/internal/apps/agent/config/version.go similarity index 100% rename from openflare-server/internal/agent/config/version.go rename to internal/apps/agent/config/version.go diff --git a/openflare-server/internal/agent/geoipdata/data.go b/internal/apps/agent/geoipdata/data.go similarity index 100% rename from openflare-server/internal/agent/geoipdata/data.go rename to internal/apps/agent/geoipdata/data.go diff --git a/openflare-server/internal/agent/geoipupdate/updater.go b/internal/apps/agent/geoipupdate/updater.go similarity index 96% rename from openflare-server/internal/agent/geoipupdate/updater.go rename to internal/apps/agent/geoipupdate/updater.go index 29a0ab17..b2a94134 100644 --- a/openflare-server/internal/agent/geoipupdate/updater.go +++ b/internal/apps/agent/geoipupdate/updater.go @@ -9,7 +9,7 @@ import ( "path/filepath" "time" - "github.com/Rain-kl/Wavelet/internal/agent/geoipdata" + "github.com/Rain-kl/Wavelet/internal/apps/agent/geoipdata" "github.com/Rain-kl/Wavelet/pkg/geoip" ) diff --git a/openflare-server/internal/agent/geoipupdate/updater_test.go b/internal/apps/agent/geoipupdate/updater_test.go similarity index 100% rename from openflare-server/internal/agent/geoipupdate/updater_test.go rename to internal/apps/agent/geoipupdate/updater_test.go diff --git a/openflare-server/internal/agent/heartbeat/service.go b/internal/apps/agent/heartbeat/service.go similarity index 93% rename from openflare-server/internal/agent/heartbeat/service.go rename to internal/apps/agent/heartbeat/service.go index e481620f..089839d3 100644 --- a/openflare-server/internal/agent/heartbeat/service.go +++ b/internal/apps/agent/heartbeat/service.go @@ -3,7 +3,7 @@ package heartbeat import ( "context" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) type Client interface { diff --git a/openflare-server/internal/agent/httpclient/client.go b/internal/apps/agent/httpclient/client.go similarity index 98% rename from openflare-server/internal/agent/httpclient/client.go rename to internal/apps/agent/httpclient/client.go index 6ba38cb7..32438d90 100644 --- a/openflare-server/internal/agent/httpclient/client.go +++ b/internal/apps/agent/httpclient/client.go @@ -12,7 +12,7 @@ import ( "strings" "time" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) type Client struct { diff --git a/openflare-server/internal/agent/logging/logger.go b/internal/apps/agent/logging/logger.go similarity index 100% rename from openflare-server/internal/agent/logging/logger.go rename to internal/apps/agent/logging/logger.go diff --git a/openflare-server/internal/agent/nginx/manager.go b/internal/apps/agent/nginx/manager.go similarity index 99% rename from openflare-server/internal/agent/nginx/manager.go rename to internal/apps/agent/nginx/manager.go index 822d2e15..8c838af3 100644 --- a/openflare-server/internal/agent/nginx/manager.go +++ b/internal/apps/agent/nginx/manager.go @@ -23,7 +23,7 @@ import ( openrestyrender "github.com/Rain-kl/Wavelet/pkg/render/openresty" "github.com/Rain-kl/Wavelet/pkg/utils" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) const RuntimeConfigDirPlaceholder = "__OPENFLARE_RUNTIME_CONFIG_DIR__" diff --git a/openflare-server/internal/agent/nginx/manager_test.go b/internal/apps/agent/nginx/manager_test.go similarity index 99% rename from openflare-server/internal/agent/nginx/manager_test.go rename to internal/apps/agent/nginx/manager_test.go index 4b54db6b..8b95aa91 100644 --- a/openflare-server/internal/agent/nginx/manager_test.go +++ b/internal/apps/agent/nginx/manager_test.go @@ -12,7 +12,7 @@ import ( "strings" "testing" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) type runCall struct { diff --git a/openflare-server/internal/agent/nginx/mimetypes.go b/internal/apps/agent/nginx/mimetypes.go similarity index 100% rename from openflare-server/internal/agent/nginx/mimetypes.go rename to internal/apps/agent/nginx/mimetypes.go diff --git a/openflare-server/internal/agent/nginx/observability_assets.go b/internal/apps/agent/nginx/observability_assets.go similarity index 98% rename from openflare-server/internal/agent/nginx/observability_assets.go rename to internal/apps/agent/nginx/observability_assets.go index 3953d48e..72657bd7 100644 --- a/openflare-server/internal/agent/nginx/observability_assets.go +++ b/internal/apps/agent/nginx/observability_assets.go @@ -1,6 +1,6 @@ package nginx -import "github.com/Rain-kl/Wavelet/internal/agent/protocol" +import "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" const ( openRestyObservabilityWindowTTL = "7200" diff --git a/openflare-server/internal/agent/nginx/pow_assets.go b/internal/apps/agent/nginx/pow_assets.go similarity index 99% rename from openflare-server/internal/agent/nginx/pow_assets.go rename to internal/apps/agent/nginx/pow_assets.go index ef48a7a7..5aaa18ee 100644 --- a/openflare-server/internal/agent/nginx/pow_assets.go +++ b/internal/apps/agent/nginx/pow_assets.go @@ -5,7 +5,7 @@ import ( "path/filepath" "strings" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) //go:embed pow_static diff --git a/openflare-server/internal/agent/nginx/pow_static/css/static/geist.woff2 b/internal/apps/agent/nginx/pow_static/css/static/geist.woff2 similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/css/static/geist.woff2 rename to internal/apps/agent/nginx/pow_static/css/static/geist.woff2 diff --git a/openflare-server/internal/agent/nginx/pow_static/css/static/iosevka-curly.woff2 b/internal/apps/agent/nginx/pow_static/css/static/iosevka-curly.woff2 similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/css/static/iosevka-curly.woff2 rename to internal/apps/agent/nginx/pow_static/css/static/iosevka-curly.woff2 diff --git a/openflare-server/internal/agent/nginx/pow_static/css/static/podkova.css b/internal/apps/agent/nginx/pow_static/css/static/podkova.css similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/css/static/podkova.css rename to internal/apps/agent/nginx/pow_static/css/static/podkova.css diff --git a/openflare-server/internal/agent/nginx/pow_static/css/static/podkova.woff2 b/internal/apps/agent/nginx/pow_static/css/static/podkova.woff2 similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/css/static/podkova.woff2 rename to internal/apps/agent/nginx/pow_static/css/static/podkova.woff2 diff --git a/openflare-server/internal/agent/nginx/pow_static/css/xess.css b/internal/apps/agent/nginx/pow_static/css/xess.css similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/css/xess.css rename to internal/apps/agent/nginx/pow_static/css/xess.css diff --git a/openflare-server/internal/agent/nginx/pow_static/img/happy.webp b/internal/apps/agent/nginx/pow_static/img/happy.webp similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/img/happy.webp rename to internal/apps/agent/nginx/pow_static/img/happy.webp diff --git a/openflare-server/internal/agent/nginx/pow_static/img/pensive.webp b/internal/apps/agent/nginx/pow_static/img/pensive.webp similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/img/pensive.webp rename to internal/apps/agent/nginx/pow_static/img/pensive.webp diff --git a/openflare-server/internal/agent/nginx/pow_static/img/reject.webp b/internal/apps/agent/nginx/pow_static/img/reject.webp similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/img/reject.webp rename to internal/apps/agent/nginx/pow_static/img/reject.webp diff --git a/openflare-server/internal/agent/nginx/pow_static/js/algorithms/index.mjs b/internal/apps/agent/nginx/pow_static/js/algorithms/index.mjs similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/js/algorithms/index.mjs rename to internal/apps/agent/nginx/pow_static/js/algorithms/index.mjs diff --git a/openflare-server/internal/agent/nginx/pow_static/js/main.mjs b/internal/apps/agent/nginx/pow_static/js/main.mjs similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/js/main.mjs rename to internal/apps/agent/nginx/pow_static/js/main.mjs diff --git a/openflare-server/internal/agent/nginx/pow_static/js/worker/sha256-purejs.mjs b/internal/apps/agent/nginx/pow_static/js/worker/sha256-purejs.mjs similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/js/worker/sha256-purejs.mjs rename to internal/apps/agent/nginx/pow_static/js/worker/sha256-purejs.mjs diff --git a/openflare-server/internal/agent/nginx/pow_static/js/worker/sha256-webcrypto.mjs b/internal/apps/agent/nginx/pow_static/js/worker/sha256-webcrypto.mjs similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/js/worker/sha256-webcrypto.mjs rename to internal/apps/agent/nginx/pow_static/js/worker/sha256-webcrypto.mjs diff --git a/openflare-server/internal/agent/nginx/pow_static/locales/en.json b/internal/apps/agent/nginx/pow_static/locales/en.json similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/locales/en.json rename to internal/apps/agent/nginx/pow_static/locales/en.json diff --git a/openflare-server/internal/agent/nginx/pow_static/locales/zh-CN.json b/internal/apps/agent/nginx/pow_static/locales/zh-CN.json similarity index 100% rename from openflare-server/internal/agent/nginx/pow_static/locales/zh-CN.json rename to internal/apps/agent/nginx/pow_static/locales/zh-CN.json diff --git a/openflare-server/internal/agent/nginx/waf_assets.go b/internal/apps/agent/nginx/waf_assets.go similarity index 99% rename from openflare-server/internal/agent/nginx/waf_assets.go rename to internal/apps/agent/nginx/waf_assets.go index 3edd8953..ff48cdb8 100644 --- a/openflare-server/internal/agent/nginx/waf_assets.go +++ b/internal/apps/agent/nginx/waf_assets.go @@ -1,6 +1,6 @@ package nginx -import "github.com/Rain-kl/Wavelet/internal/agent/protocol" +import "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" const openRestyWAFRuntimeLua = `local _M = {} diff --git a/openflare-server/internal/agent/observability/collector.go b/internal/apps/agent/observability/collector.go similarity index 98% rename from openflare-server/internal/agent/observability/collector.go rename to internal/apps/agent/observability/collector.go index 1ced9b97..2f20818b 100644 --- a/openflare-server/internal/agent/observability/collector.go +++ b/internal/apps/agent/observability/collector.go @@ -13,9 +13,9 @@ import ( "syscall" "time" - "github.com/Rain-kl/Wavelet/internal/agent/config" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" - "github.com/Rain-kl/Wavelet/internal/agent/state" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" ) func BuildProfile(cfg *config.Config, stateStore *state.Store) *protocol.NodeSystemProfile { diff --git a/openflare-server/internal/agent/observability/openresty_local.go b/internal/apps/agent/observability/openresty_local.go similarity index 97% rename from openflare-server/internal/agent/observability/openresty_local.go rename to internal/apps/agent/observability/openresty_local.go index 65702eea..ccf9b24d 100644 --- a/openflare-server/internal/agent/observability/openresty_local.go +++ b/internal/apps/agent/observability/openresty_local.go @@ -10,8 +10,8 @@ import ( "strings" "time" - "github.com/Rain-kl/Wavelet/internal/agent/config" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) const openRestyObservabilityPath = "/openflare/observability" diff --git a/openflare-server/internal/agent/observability/openresty_local_test.go b/internal/apps/agent/observability/openresty_local_test.go similarity index 98% rename from openflare-server/internal/agent/observability/openresty_local_test.go rename to internal/apps/agent/observability/openresty_local_test.go index dcfe7d35..028d8319 100644 --- a/openflare-server/internal/agent/observability/openresty_local_test.go +++ b/internal/apps/agent/observability/openresty_local_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "github.com/Rain-kl/Wavelet/internal/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" ) func TestCollectManagedOpenRestyMetrics(t *testing.T) { diff --git a/openflare-server/internal/agent/observability/traffic.go b/internal/apps/agent/observability/traffic.go similarity index 98% rename from openflare-server/internal/agent/observability/traffic.go rename to internal/apps/agent/observability/traffic.go index a1b425c5..aef7576c 100644 --- a/openflare-server/internal/agent/observability/traffic.go +++ b/internal/apps/agent/observability/traffic.go @@ -13,9 +13,9 @@ import ( "strings" "time" - "github.com/Rain-kl/Wavelet/internal/agent/config" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" - "github.com/Rain-kl/Wavelet/internal/agent/state" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" ) type accessLogRecord struct { diff --git a/openflare-server/internal/agent/observability/traffic_test.go b/internal/apps/agent/observability/traffic_test.go similarity index 97% rename from openflare-server/internal/agent/observability/traffic_test.go rename to internal/apps/agent/observability/traffic_test.go index 86892dfe..3f5cbf34 100644 --- a/openflare-server/internal/agent/observability/traffic_test.go +++ b/internal/apps/agent/observability/traffic_test.go @@ -6,9 +6,9 @@ import ( "strings" "testing" - "github.com/Rain-kl/Wavelet/internal/agent/config" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" - "github.com/Rain-kl/Wavelet/internal/agent/state" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" ) func TestBuildTrafficReportAggregatesManagedAccessLog(t *testing.T) { diff --git a/openflare-server/internal/agent/protocol/agent_api.go b/internal/apps/agent/protocol/agent_api.go similarity index 100% rename from openflare-server/internal/agent/protocol/agent_api.go rename to internal/apps/agent/protocol/agent_api.go diff --git a/openflare-server/internal/agent/state/observability_buffer.go b/internal/apps/agent/state/observability_buffer.go similarity index 99% rename from openflare-server/internal/agent/state/observability_buffer.go rename to internal/apps/agent/state/observability_buffer.go index 9748be23..b1f48e90 100644 --- a/openflare-server/internal/agent/state/observability_buffer.go +++ b/internal/apps/agent/state/observability_buffer.go @@ -8,7 +8,7 @@ import ( "strconv" "sync" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) const observabilityBufferWindowSeconds = 60 diff --git a/openflare-server/internal/agent/state/observability_buffer_test.go b/internal/apps/agent/state/observability_buffer_test.go similarity index 98% rename from openflare-server/internal/agent/state/observability_buffer_test.go rename to internal/apps/agent/state/observability_buffer_test.go index f2c2ccc1..94b7b4cf 100644 --- a/openflare-server/internal/agent/state/observability_buffer_test.go +++ b/internal/apps/agent/state/observability_buffer_test.go @@ -4,7 +4,7 @@ import ( "path/filepath" "testing" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) func TestObservabilityBufferStoreUpsertReplayAndAck(t *testing.T) { diff --git a/openflare-server/internal/agent/state/state.go b/internal/apps/agent/state/state.go similarity index 100% rename from openflare-server/internal/agent/state/state.go rename to internal/apps/agent/state/state.go diff --git a/openflare-server/internal/agent/state/state_test.go b/internal/apps/agent/state/state_test.go similarity index 100% rename from openflare-server/internal/agent/state/state_test.go rename to internal/apps/agent/state/state_test.go diff --git a/openflare-server/internal/agent/sync/pages.go b/internal/apps/agent/sync/pages.go similarity index 99% rename from openflare-server/internal/agent/sync/pages.go rename to internal/apps/agent/sync/pages.go index 22dd5c4b..3a903caf 100644 --- a/openflare-server/internal/agent/sync/pages.go +++ b/internal/apps/agent/sync/pages.go @@ -15,7 +15,7 @@ import ( "path/filepath" "strings" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" ) type pagesSourceDocument struct { diff --git a/openflare-server/internal/agent/sync/service.go b/internal/apps/agent/sync/service.go similarity index 99% rename from openflare-server/internal/agent/sync/service.go rename to internal/apps/agent/sync/service.go index de12c879..baa3491a 100644 --- a/openflare-server/internal/agent/sync/service.go +++ b/internal/apps/agent/sync/service.go @@ -13,9 +13,9 @@ import ( openrestyrender "github.com/Rain-kl/Wavelet/pkg/render/openresty" - "github.com/Rain-kl/Wavelet/internal/agent/nginx" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" - "github.com/Rain-kl/Wavelet/internal/agent/state" + "github.com/Rain-kl/Wavelet/internal/apps/agent/nginx" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" ) const ( diff --git a/openflare-server/internal/agent/sync/service_test.go b/internal/apps/agent/sync/service_test.go similarity index 99% rename from openflare-server/internal/agent/sync/service_test.go rename to internal/apps/agent/sync/service_test.go index 8aed0c7b..8b93f1ac 100644 --- a/openflare-server/internal/agent/sync/service_test.go +++ b/internal/apps/agent/sync/service_test.go @@ -13,9 +13,9 @@ import ( "testing" "time" - "github.com/Rain-kl/Wavelet/internal/agent/nginx" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" - "github.com/Rain-kl/Wavelet/internal/agent/state" + "github.com/Rain-kl/Wavelet/internal/apps/agent/nginx" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/state" ) type fakeExecutor struct { diff --git a/openflare-server/internal/agent/updater/restart_unix.go b/internal/apps/agent/updater/restart_unix.go similarity index 100% rename from openflare-server/internal/agent/updater/restart_unix.go rename to internal/apps/agent/updater/restart_unix.go diff --git a/openflare-server/internal/agent/updater/restart_unix_test.go b/internal/apps/agent/updater/restart_unix_test.go similarity index 100% rename from openflare-server/internal/agent/updater/restart_unix_test.go rename to internal/apps/agent/updater/restart_unix_test.go diff --git a/openflare-server/internal/agent/updater/restart_windows.go b/internal/apps/agent/updater/restart_windows.go similarity index 100% rename from openflare-server/internal/agent/updater/restart_windows.go rename to internal/apps/agent/updater/restart_windows.go diff --git a/openflare-server/internal/agent/updater/updater.go b/internal/apps/agent/updater/updater.go similarity index 98% rename from openflare-server/internal/agent/updater/updater.go rename to internal/apps/agent/updater/updater.go index b1f6144b..0a1de102 100644 --- a/openflare-server/internal/agent/updater/updater.go +++ b/internal/apps/agent/updater/updater.go @@ -16,8 +16,8 @@ import ( "github.com/Rain-kl/Wavelet/pkg/utils" - "github.com/Rain-kl/Wavelet/internal/agent/agent" - "github.com/Rain-kl/Wavelet/internal/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/agent" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" ) const maxChecksumAssetSize = 64 * 1024 diff --git a/openflare-server/internal/agent/updater/updater_test.go b/internal/apps/agent/updater/updater_test.go similarity index 98% rename from openflare-server/internal/agent/updater/updater_test.go rename to internal/apps/agent/updater/updater_test.go index c7f0b8c7..f7856412 100644 --- a/openflare-server/internal/agent/updater/updater_test.go +++ b/internal/apps/agent/updater/updater_test.go @@ -12,8 +12,8 @@ import ( "strings" "testing" - "github.com/Rain-kl/Wavelet/internal/agent/agent" - "github.com/Rain-kl/Wavelet/internal/agent/config" + "github.com/Rain-kl/Wavelet/internal/apps/agent/agent" + "github.com/Rain-kl/Wavelet/internal/apps/agent/config" ) type roundTripFunc func(req *http.Request) (*http.Response, error) diff --git a/openflare-server/internal/agent/wsclient/client.go b/internal/apps/agent/wsclient/client.go similarity index 96% rename from openflare-server/internal/agent/wsclient/client.go rename to internal/apps/agent/wsclient/client.go index 371f9d5f..c71750f1 100644 --- a/openflare-server/internal/agent/wsclient/client.go +++ b/internal/apps/agent/wsclient/client.go @@ -4,7 +4,7 @@ import ( "context" "time" - "github.com/Rain-kl/Wavelet/internal/agent/protocol" + "github.com/Rain-kl/Wavelet/internal/apps/agent/protocol" shared "github.com/Rain-kl/Wavelet/pkg/wsclient" ) diff --git a/openflare-server/internal/apps/cap/errs.go b/internal/apps/cap/errs.go similarity index 100% rename from openflare-server/internal/apps/cap/errs.go rename to internal/apps/cap/errs.go diff --git a/openflare-server/internal/apps/cap/manager.go b/internal/apps/cap/manager.go similarity index 100% rename from openflare-server/internal/apps/cap/manager.go rename to internal/apps/cap/manager.go diff --git a/openflare-server/internal/apps/cap/manager_test.go b/internal/apps/cap/manager_test.go similarity index 100% rename from openflare-server/internal/apps/cap/manager_test.go rename to internal/apps/cap/manager_test.go diff --git a/openflare-server/internal/apps/cap/middleware.go b/internal/apps/cap/middleware.go similarity index 100% rename from openflare-server/internal/apps/cap/middleware.go rename to internal/apps/cap/middleware.go diff --git a/openflare-server/internal/apps/cap/routers.go b/internal/apps/cap/routers.go similarity index 100% rename from openflare-server/internal/apps/cap/routers.go rename to internal/apps/cap/routers.go diff --git a/openflare-server/internal/apps/cap/routers_test.go b/internal/apps/cap/routers_test.go similarity index 100% rename from openflare-server/internal/apps/cap/routers_test.go rename to internal/apps/cap/routers_test.go diff --git a/openflare-server/internal/apps/cap/runtime_settings.go b/internal/apps/cap/runtime_settings.go similarity index 100% rename from openflare-server/internal/apps/cap/runtime_settings.go rename to internal/apps/cap/runtime_settings.go diff --git a/openflare-server/internal/apps/cap/runtime_settings_test.go b/internal/apps/cap/runtime_settings_test.go similarity index 100% rename from openflare-server/internal/apps/cap/runtime_settings_test.go rename to internal/apps/cap/runtime_settings_test.go diff --git a/openflare-server/internal/apps/cap/testhelper_hook.go b/internal/apps/cap/testhelper_hook.go similarity index 100% rename from openflare-server/internal/apps/cap/testhelper_hook.go rename to internal/apps/cap/testhelper_hook.go diff --git a/openflare-server/internal/apps/config/public_config_cache_test.go b/internal/apps/config/public_config_cache_test.go similarity index 100% rename from openflare-server/internal/apps/config/public_config_cache_test.go rename to internal/apps/config/public_config_cache_test.go diff --git a/openflare-server/internal/apps/config/routers.go b/internal/apps/config/routers.go similarity index 100% rename from openflare-server/internal/apps/config/routers.go rename to internal/apps/config/routers.go diff --git a/openflare-server/internal/apps/config/routers_test.go b/internal/apps/config/routers_test.go similarity index 100% rename from openflare-server/internal/apps/config/routers_test.go rename to internal/apps/config/routers_test.go diff --git a/openflare-server/internal/apps/config/system_config_cache_test.go b/internal/apps/config/system_config_cache_test.go similarity index 100% rename from openflare-server/internal/apps/config/system_config_cache_test.go rename to internal/apps/config/system_config_cache_test.go diff --git a/openflare-server/internal/apps/custom/routers.go b/internal/apps/custom/routers.go similarity index 100% rename from openflare-server/internal/apps/custom/routers.go rename to internal/apps/custom/routers.go diff --git a/openflare-server/internal/flared/config/config.go b/internal/apps/flared/config/config.go similarity index 100% rename from openflare-server/internal/flared/config/config.go rename to internal/apps/flared/config/config.go diff --git a/openflare-server/internal/flared/config/version.go b/internal/apps/flared/config/version.go similarity index 100% rename from openflare-server/internal/flared/config/version.go rename to internal/apps/flared/config/version.go diff --git a/openflare-server/internal/flared/flared/runner.go b/internal/apps/flared/flared/runner.go similarity index 83% rename from openflare-server/internal/flared/flared/runner.go rename to internal/apps/flared/flared/runner.go index 52fdbc40..d9f444bc 100644 --- a/openflare-server/internal/flared/flared/runner.go +++ b/internal/apps/flared/flared/runner.go @@ -5,12 +5,12 @@ import ( "log/slog" "time" - "github.com/Rain-kl/Wavelet/internal/flared/config" - "github.com/Rain-kl/Wavelet/internal/flared/frpc" - "github.com/Rain-kl/Wavelet/internal/flared/heartbeat" - "github.com/Rain-kl/Wavelet/internal/flared/httpclient" - "github.com/Rain-kl/Wavelet/internal/flared/sync" - "github.com/Rain-kl/Wavelet/internal/flared/wsclient" + "github.com/Rain-kl/Wavelet/internal/apps/flared/config" + "github.com/Rain-kl/Wavelet/internal/apps/flared/frpc" + "github.com/Rain-kl/Wavelet/internal/apps/flared/heartbeat" + "github.com/Rain-kl/Wavelet/internal/apps/flared/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/flared/sync" + "github.com/Rain-kl/Wavelet/internal/apps/flared/wsclient" ) type Runner struct { diff --git a/openflare-server/internal/flared/frpc/manager.go b/internal/apps/flared/frpc/manager.go similarity index 99% rename from openflare-server/internal/flared/frpc/manager.go rename to internal/apps/flared/frpc/manager.go index 26bb0432..99a428f0 100644 --- a/openflare-server/internal/flared/frpc/manager.go +++ b/internal/apps/flared/frpc/manager.go @@ -14,7 +14,7 @@ import ( "sync" "time" - "github.com/Rain-kl/Wavelet/internal/flared/config" + "github.com/Rain-kl/Wavelet/internal/apps/flared/config" service "github.com/Rain-kl/Wavelet/pkg/protocol" ) diff --git a/openflare-server/internal/flared/frpc/manager_test.go b/internal/apps/flared/frpc/manager_test.go similarity index 99% rename from openflare-server/internal/flared/frpc/manager_test.go rename to internal/apps/flared/frpc/manager_test.go index a94c7609..41f3b1cb 100644 --- a/openflare-server/internal/flared/frpc/manager_test.go +++ b/internal/apps/flared/frpc/manager_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "github.com/Rain-kl/Wavelet/internal/flared/config" + "github.com/Rain-kl/Wavelet/internal/apps/flared/config" service "github.com/Rain-kl/Wavelet/pkg/protocol" ) diff --git a/openflare-server/internal/flared/heartbeat/service.go b/internal/apps/flared/heartbeat/service.go similarity index 93% rename from openflare-server/internal/flared/heartbeat/service.go rename to internal/apps/flared/heartbeat/service.go index 75f6d2d2..fcdb87c5 100644 --- a/openflare-server/internal/flared/heartbeat/service.go +++ b/internal/apps/flared/heartbeat/service.go @@ -6,10 +6,10 @@ import ( "net" "time" - "github.com/Rain-kl/Wavelet/internal/flared/config" - "github.com/Rain-kl/Wavelet/internal/flared/frpc" - "github.com/Rain-kl/Wavelet/internal/flared/httpclient" - "github.com/Rain-kl/Wavelet/internal/flared/updater" + "github.com/Rain-kl/Wavelet/internal/apps/flared/config" + "github.com/Rain-kl/Wavelet/internal/apps/flared/frpc" + "github.com/Rain-kl/Wavelet/internal/apps/flared/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/flared/updater" "github.com/Rain-kl/Wavelet/pkg/geoip" "github.com/Rain-kl/Wavelet/pkg/geoip/iputil" service "github.com/Rain-kl/Wavelet/pkg/protocol" diff --git a/openflare-server/internal/flared/httpclient/client.go b/internal/apps/flared/httpclient/client.go similarity index 100% rename from openflare-server/internal/flared/httpclient/client.go rename to internal/apps/flared/httpclient/client.go diff --git a/openflare-server/internal/flared/sync/service.go b/internal/apps/flared/sync/service.go similarity index 91% rename from openflare-server/internal/flared/sync/service.go rename to internal/apps/flared/sync/service.go index 2783bcff..e3e42125 100644 --- a/openflare-server/internal/flared/sync/service.go +++ b/internal/apps/flared/sync/service.go @@ -5,9 +5,9 @@ import ( "log/slog" "time" - "github.com/Rain-kl/Wavelet/internal/flared/config" - "github.com/Rain-kl/Wavelet/internal/flared/frpc" - "github.com/Rain-kl/Wavelet/internal/flared/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/flared/config" + "github.com/Rain-kl/Wavelet/internal/apps/flared/frpc" + "github.com/Rain-kl/Wavelet/internal/apps/flared/httpclient" service "github.com/Rain-kl/Wavelet/pkg/protocol" ) diff --git a/openflare-server/internal/flared/updater/restart_unix.go b/internal/apps/flared/updater/restart_unix.go similarity index 100% rename from openflare-server/internal/flared/updater/restart_unix.go rename to internal/apps/flared/updater/restart_unix.go diff --git a/openflare-server/internal/flared/updater/restart_windows.go b/internal/apps/flared/updater/restart_windows.go similarity index 100% rename from openflare-server/internal/flared/updater/restart_windows.go rename to internal/apps/flared/updater/restart_windows.go diff --git a/openflare-server/internal/flared/updater/updater.go b/internal/apps/flared/updater/updater.go similarity index 99% rename from openflare-server/internal/flared/updater/updater.go rename to internal/apps/flared/updater/updater.go index f5c406e1..5d4faf46 100644 --- a/openflare-server/internal/flared/updater/updater.go +++ b/internal/apps/flared/updater/updater.go @@ -16,7 +16,7 @@ import ( "github.com/Rain-kl/Wavelet/pkg/utils" - "github.com/Rain-kl/Wavelet/internal/flared/config" + "github.com/Rain-kl/Wavelet/internal/apps/flared/config" ) const maxChecksumAssetSize = 64 * 1024 diff --git a/openflare-server/internal/flared/wsclient/client.go b/internal/apps/flared/wsclient/client.go similarity index 100% rename from openflare-server/internal/flared/wsclient/client.go rename to internal/apps/flared/wsclient/client.go diff --git a/openflare-server/internal/apps/health/routers.go b/internal/apps/health/routers.go similarity index 100% rename from openflare-server/internal/apps/health/routers.go rename to internal/apps/health/routers.go diff --git a/openflare-server/internal/apps/oauth/audit.go b/internal/apps/oauth/audit.go similarity index 100% rename from openflare-server/internal/apps/oauth/audit.go rename to internal/apps/oauth/audit.go diff --git a/openflare-server/internal/apps/oauth/auth_source_resolver.go b/internal/apps/oauth/auth_source_resolver.go similarity index 100% rename from openflare-server/internal/apps/oauth/auth_source_resolver.go rename to internal/apps/oauth/auth_source_resolver.go diff --git a/openflare-server/internal/apps/oauth/constants.go b/internal/apps/oauth/constants.go similarity index 100% rename from openflare-server/internal/apps/oauth/constants.go rename to internal/apps/oauth/constants.go diff --git a/openflare-server/internal/apps/oauth/errs.go b/internal/apps/oauth/errs.go similarity index 100% rename from openflare-server/internal/apps/oauth/errs.go rename to internal/apps/oauth/errs.go diff --git a/openflare-server/internal/apps/oauth/gin_context.go b/internal/apps/oauth/gin_context.go similarity index 100% rename from openflare-server/internal/apps/oauth/gin_context.go rename to internal/apps/oauth/gin_context.go diff --git a/openflare-server/internal/apps/oauth/handler_authorize.go b/internal/apps/oauth/handler_authorize.go similarity index 100% rename from openflare-server/internal/apps/oauth/handler_authorize.go rename to internal/apps/oauth/handler_authorize.go diff --git a/openflare-server/internal/apps/oauth/handler_callback.go b/internal/apps/oauth/handler_callback.go similarity index 100% rename from openflare-server/internal/apps/oauth/handler_callback.go rename to internal/apps/oauth/handler_callback.go diff --git a/openflare-server/internal/apps/oauth/handler_external_accounts.go b/internal/apps/oauth/handler_external_accounts.go similarity index 100% rename from openflare-server/internal/apps/oauth/handler_external_accounts.go rename to internal/apps/oauth/handler_external_accounts.go diff --git a/openflare-server/internal/apps/oauth/handler_sources.go b/internal/apps/oauth/handler_sources.go similarity index 100% rename from openflare-server/internal/apps/oauth/handler_sources.go rename to internal/apps/oauth/handler_sources.go diff --git a/openflare-server/internal/apps/oauth/middlewares.go b/internal/apps/oauth/middlewares.go similarity index 100% rename from openflare-server/internal/apps/oauth/middlewares.go rename to internal/apps/oauth/middlewares.go diff --git a/openflare-server/internal/apps/oauth/oauth_test.go b/internal/apps/oauth/oauth_test.go similarity index 100% rename from openflare-server/internal/apps/oauth/oauth_test.go rename to internal/apps/oauth/oauth_test.go diff --git a/openflare-server/internal/apps/oauth/oauth_types.go b/internal/apps/oauth/oauth_types.go similarity index 100% rename from openflare-server/internal/apps/oauth/oauth_types.go rename to internal/apps/oauth/oauth_types.go diff --git a/openflare-server/internal/apps/oauth/oauth_userinfo.go b/internal/apps/oauth/oauth_userinfo.go similarity index 100% rename from openflare-server/internal/apps/oauth/oauth_userinfo.go rename to internal/apps/oauth/oauth_userinfo.go diff --git a/openflare-server/internal/apps/oauth/provider_cache.go b/internal/apps/oauth/provider_cache.go similarity index 100% rename from openflare-server/internal/apps/oauth/provider_cache.go rename to internal/apps/oauth/provider_cache.go diff --git a/openflare-server/internal/apps/oauth/routers.go b/internal/apps/oauth/routers.go similarity index 100% rename from openflare-server/internal/apps/oauth/routers.go rename to internal/apps/oauth/routers.go diff --git a/openflare-server/internal/apps/oauth/session.go b/internal/apps/oauth/session.go similarity index 100% rename from openflare-server/internal/apps/oauth/session.go rename to internal/apps/oauth/session.go diff --git a/openflare-server/internal/apps/oauth/session_context.go b/internal/apps/oauth/session_context.go similarity index 100% rename from openflare-server/internal/apps/oauth/session_context.go rename to internal/apps/oauth/session_context.go diff --git a/openflare-server/internal/apps/openflare/agent/access_log_region.go b/internal/apps/openflare/agent/access_log_region.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/access_log_region.go rename to internal/apps/openflare/agent/access_log_region.go diff --git a/openflare-server/internal/apps/openflare/agent/auth_cache.go b/internal/apps/openflare/agent/auth_cache.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/auth_cache.go rename to internal/apps/openflare/agent/auth_cache.go diff --git a/openflare-server/internal/apps/openflare/agent/config.go b/internal/apps/openflare/agent/config.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/config.go rename to internal/apps/openflare/agent/config.go diff --git a/openflare-server/internal/apps/openflare/agent/config_test.go b/internal/apps/openflare/agent/config_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/config_test.go rename to internal/apps/openflare/agent/config_test.go diff --git a/openflare-server/internal/apps/openflare/agent/errs.go b/internal/apps/openflare/agent/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/errs.go rename to internal/apps/openflare/agent/errs.go diff --git a/openflare-server/internal/apps/openflare/agent/helpers.go b/internal/apps/openflare/agent/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/helpers.go rename to internal/apps/openflare/agent/helpers.go diff --git a/openflare-server/internal/apps/openflare/agent/helpers_test.go b/internal/apps/openflare/agent/helpers_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/helpers_test.go rename to internal/apps/openflare/agent/helpers_test.go diff --git a/openflare-server/internal/apps/openflare/agent/logics.go b/internal/apps/openflare/agent/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/logics.go rename to internal/apps/openflare/agent/logics.go diff --git a/openflare-server/internal/apps/openflare/agent/middleware.go b/internal/apps/openflare/agent/middleware.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/middleware.go rename to internal/apps/openflare/agent/middleware.go diff --git a/openflare-server/internal/apps/openflare/agent/middleware_test.go b/internal/apps/openflare/agent/middleware_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/middleware_test.go rename to internal/apps/openflare/agent/middleware_test.go diff --git a/openflare-server/internal/apps/openflare/agent/observability.go b/internal/apps/openflare/agent/observability.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/observability.go rename to internal/apps/openflare/agent/observability.go diff --git a/openflare-server/internal/apps/openflare/agent/routers.go b/internal/apps/openflare/agent/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/routers.go rename to internal/apps/openflare/agent/routers.go diff --git a/openflare-server/internal/apps/openflare/agent/types.go b/internal/apps/openflare/agent/types.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/types.go rename to internal/apps/openflare/agent/types.go diff --git a/openflare-server/internal/apps/openflare/agent/waf_ip_group.go b/internal/apps/openflare/agent/waf_ip_group.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/waf_ip_group.go rename to internal/apps/openflare/agent/waf_ip_group.go diff --git a/openflare-server/internal/apps/openflare/agent/waf_ip_group_test.go b/internal/apps/openflare/agent/waf_ip_group_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/waf_ip_group_test.go rename to internal/apps/openflare/agent/waf_ip_group_test.go diff --git a/openflare-server/internal/apps/openflare/agent/ws_status.go b/internal/apps/openflare/agent/ws_status.go similarity index 100% rename from openflare-server/internal/apps/openflare/agent/ws_status.go rename to internal/apps/openflare/agent/ws_status.go diff --git a/openflare-server/internal/apps/openflare/apiutil/bind.go b/internal/apps/openflare/apiutil/bind.go similarity index 100% rename from openflare-server/internal/apps/openflare/apiutil/bind.go rename to internal/apps/openflare/apiutil/bind.go diff --git a/openflare-server/internal/apps/openflare/apiutil/errors.go b/internal/apps/openflare/apiutil/errors.go similarity index 100% rename from openflare-server/internal/apps/openflare/apiutil/errors.go rename to internal/apps/openflare/apiutil/errors.go diff --git a/openflare-server/internal/apps/openflare/apiutil/middleware.go b/internal/apps/openflare/apiutil/middleware.go similarity index 100% rename from openflare-server/internal/apps/openflare/apiutil/middleware.go rename to internal/apps/openflare/apiutil/middleware.go diff --git a/openflare-server/internal/apps/openflare/apiutil/middleware_test.go b/internal/apps/openflare/apiutil/middleware_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/apiutil/middleware_test.go rename to internal/apps/openflare/apiutil/middleware_test.go diff --git a/openflare-server/internal/apps/openflare/apiutil/routes.go b/internal/apps/openflare/apiutil/routes.go similarity index 100% rename from openflare-server/internal/apps/openflare/apiutil/routes.go rename to internal/apps/openflare/apiutil/routes.go diff --git a/openflare-server/internal/apps/openflare/apply_log/errs.go b/internal/apps/openflare/apply_log/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/apply_log/errs.go rename to internal/apps/openflare/apply_log/errs.go diff --git a/openflare-server/internal/apps/openflare/apply_log/logics.go b/internal/apps/openflare/apply_log/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/apply_log/logics.go rename to internal/apps/openflare/apply_log/logics.go diff --git a/openflare-server/internal/apps/openflare/apply_log/logics_test.go b/internal/apps/openflare/apply_log/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/apply_log/logics_test.go rename to internal/apps/openflare/apply_log/logics_test.go diff --git a/openflare-server/internal/apps/openflare/apply_log/routers.go b/internal/apps/openflare/apply_log/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/apply_log/routers.go rename to internal/apps/openflare/apply_log/routers.go diff --git a/openflare-server/internal/apps/openflare/async_tasks.go b/internal/apps/openflare/async_tasks.go similarity index 100% rename from openflare-server/internal/apps/openflare/async_tasks.go rename to internal/apps/openflare/async_tasks.go diff --git a/openflare-server/internal/apps/openflare/async_tasks_test.go b/internal/apps/openflare/async_tasks_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/async_tasks_test.go rename to internal/apps/openflare/async_tasks_test.go diff --git a/openflare-server/internal/apps/openflare/config_version/errs.go b/internal/apps/openflare/config_version/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/config_version/errs.go rename to internal/apps/openflare/config_version/errs.go diff --git a/openflare-server/internal/apps/openflare/config_version/helpers.go b/internal/apps/openflare/config_version/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/config_version/helpers.go rename to internal/apps/openflare/config_version/helpers.go diff --git a/openflare-server/internal/apps/openflare/config_version/logics.go b/internal/apps/openflare/config_version/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/config_version/logics.go rename to internal/apps/openflare/config_version/logics.go diff --git a/openflare-server/internal/apps/openflare/config_version/logics_test.go b/internal/apps/openflare/config_version/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/config_version/logics_test.go rename to internal/apps/openflare/config_version/logics_test.go diff --git a/openflare-server/internal/apps/openflare/config_version/renderer.go b/internal/apps/openflare/config_version/renderer.go similarity index 100% rename from openflare-server/internal/apps/openflare/config_version/renderer.go rename to internal/apps/openflare/config_version/renderer.go diff --git a/openflare-server/internal/apps/openflare/config_version/routers.go b/internal/apps/openflare/config_version/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/config_version/routers.go rename to internal/apps/openflare/config_version/routers.go diff --git a/openflare-server/internal/apps/openflare/config_version/snapshot.go b/internal/apps/openflare/config_version/snapshot.go similarity index 100% rename from openflare-server/internal/apps/openflare/config_version/snapshot.go rename to internal/apps/openflare/config_version/snapshot.go diff --git a/openflare-server/internal/apps/openflare/dashboard/helpers.go b/internal/apps/openflare/dashboard/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/dashboard/helpers.go rename to internal/apps/openflare/dashboard/helpers.go diff --git a/openflare-server/internal/apps/openflare/dashboard/logics.go b/internal/apps/openflare/dashboard/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/dashboard/logics.go rename to internal/apps/openflare/dashboard/logics.go diff --git a/openflare-server/internal/apps/openflare/dashboard/logics_test.go b/internal/apps/openflare/dashboard/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/dashboard/logics_test.go rename to internal/apps/openflare/dashboard/logics_test.go diff --git a/openflare-server/internal/apps/openflare/dashboard/routers.go b/internal/apps/openflare/dashboard/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/dashboard/routers.go rename to internal/apps/openflare/dashboard/routers.go diff --git a/openflare-server/internal/apps/openflare/flared/errs.go b/internal/apps/openflare/flared/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/errs.go rename to internal/apps/openflare/flared/errs.go diff --git a/openflare-server/internal/apps/openflare/flared/helpers.go b/internal/apps/openflare/flared/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/helpers.go rename to internal/apps/openflare/flared/helpers.go diff --git a/openflare-server/internal/apps/openflare/flared/logics.go b/internal/apps/openflare/flared/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/logics.go rename to internal/apps/openflare/flared/logics.go diff --git a/openflare-server/internal/apps/openflare/flared/middleware.go b/internal/apps/openflare/flared/middleware.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/middleware.go rename to internal/apps/openflare/flared/middleware.go diff --git a/openflare-server/internal/apps/openflare/flared/middleware_test.go b/internal/apps/openflare/flared/middleware_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/middleware_test.go rename to internal/apps/openflare/flared/middleware_test.go diff --git a/openflare-server/internal/apps/openflare/flared/observability.go b/internal/apps/openflare/flared/observability.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/observability.go rename to internal/apps/openflare/flared/observability.go diff --git a/openflare-server/internal/apps/openflare/flared/observability_test.go b/internal/apps/openflare/flared/observability_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/observability_test.go rename to internal/apps/openflare/flared/observability_test.go diff --git a/openflare-server/internal/apps/openflare/flared/routers.go b/internal/apps/openflare/flared/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/flared/routers.go rename to internal/apps/openflare/flared/routers.go diff --git a/openflare-server/internal/apps/openflare/geoip/lookup.go b/internal/apps/openflare/geoip/lookup.go similarity index 100% rename from openflare-server/internal/apps/openflare/geoip/lookup.go rename to internal/apps/openflare/geoip/lookup.go diff --git a/openflare-server/internal/apps/openflare/geoip/lookup_test.go b/internal/apps/openflare/geoip/lookup_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/geoip/lookup_test.go rename to internal/apps/openflare/geoip/lookup_test.go diff --git a/openflare-server/internal/apps/openflare/integration/agent_protocol_test.go b/internal/apps/openflare/integration/agent_protocol_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/integration/agent_protocol_test.go rename to internal/apps/openflare/integration/agent_protocol_test.go diff --git a/openflare-server/internal/apps/openflare/integration/auth_option_test.go b/internal/apps/openflare/integration/auth_option_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/integration/auth_option_test.go rename to internal/apps/openflare/integration/auth_option_test.go diff --git a/openflare-server/internal/apps/openflare/integration/core_chain_test.go b/internal/apps/openflare/integration/core_chain_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/integration/core_chain_test.go rename to internal/apps/openflare/integration/core_chain_test.go diff --git a/openflare-server/internal/apps/openflare/integration/helpers_test.go b/internal/apps/openflare/integration/helpers_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/integration/helpers_test.go rename to internal/apps/openflare/integration/helpers_test.go diff --git a/openflare-server/internal/apps/openflare/integration/security_test.go b/internal/apps/openflare/integration/security_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/integration/security_test.go rename to internal/apps/openflare/integration/security_test.go diff --git a/openflare-server/internal/apps/openflare/node/errs.go b/internal/apps/openflare/node/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/node/errs.go rename to internal/apps/openflare/node/errs.go diff --git a/openflare-server/internal/apps/openflare/node/helpers.go b/internal/apps/openflare/node/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/node/helpers.go rename to internal/apps/openflare/node/helpers.go diff --git a/openflare-server/internal/apps/openflare/node/logics.go b/internal/apps/openflare/node/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/node/logics.go rename to internal/apps/openflare/node/logics.go diff --git a/openflare-server/internal/apps/openflare/node/logics_test.go b/internal/apps/openflare/node/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/node/logics_test.go rename to internal/apps/openflare/node/logics_test.go diff --git a/openflare-server/internal/apps/openflare/node/routers.go b/internal/apps/openflare/node/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/node/routers.go rename to internal/apps/openflare/node/routers.go diff --git a/openflare-server/internal/apps/openflare/observability/access_log_logics.go b/internal/apps/openflare/observability/access_log_logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/observability/access_log_logics.go rename to internal/apps/openflare/observability/access_log_logics.go diff --git a/openflare-server/internal/apps/openflare/observability/analytics.go b/internal/apps/openflare/observability/analytics.go similarity index 100% rename from openflare-server/internal/apps/openflare/observability/analytics.go rename to internal/apps/openflare/observability/analytics.go diff --git a/openflare-server/internal/apps/openflare/observability/node_logics.go b/internal/apps/openflare/observability/node_logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/observability/node_logics.go rename to internal/apps/openflare/observability/node_logics.go diff --git a/openflare-server/internal/apps/openflare/observability/routers.go b/internal/apps/openflare/observability/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/observability/routers.go rename to internal/apps/openflare/observability/routers.go diff --git a/openflare-server/internal/apps/openflare/option/errs.go b/internal/apps/openflare/option/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/option/errs.go rename to internal/apps/openflare/option/errs.go diff --git a/openflare-server/internal/apps/openflare/option/logics.go b/internal/apps/openflare/option/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/option/logics.go rename to internal/apps/openflare/option/logics.go diff --git a/openflare-server/internal/apps/openflare/option/logics_test.go b/internal/apps/openflare/option/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/option/logics_test.go rename to internal/apps/openflare/option/logics_test.go diff --git a/openflare-server/internal/apps/openflare/option/routers.go b/internal/apps/openflare/option/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/option/routers.go rename to internal/apps/openflare/option/routers.go diff --git a/openflare-server/internal/apps/openflare/option/validate.go b/internal/apps/openflare/option/validate.go similarity index 100% rename from openflare-server/internal/apps/openflare/option/validate.go rename to internal/apps/openflare/option/validate.go diff --git a/openflare-server/internal/apps/openflare/origin/errs.go b/internal/apps/openflare/origin/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/origin/errs.go rename to internal/apps/openflare/origin/errs.go diff --git a/openflare-server/internal/apps/openflare/origin/helpers.go b/internal/apps/openflare/origin/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/origin/helpers.go rename to internal/apps/openflare/origin/helpers.go diff --git a/openflare-server/internal/apps/openflare/origin/logics.go b/internal/apps/openflare/origin/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/origin/logics.go rename to internal/apps/openflare/origin/logics.go diff --git a/openflare-server/internal/apps/openflare/origin/logics_test.go b/internal/apps/openflare/origin/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/origin/logics_test.go rename to internal/apps/openflare/origin/logics_test.go diff --git a/openflare-server/internal/apps/openflare/origin/routers.go b/internal/apps/openflare/origin/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/origin/routers.go rename to internal/apps/openflare/origin/routers.go diff --git a/openflare-server/internal/apps/openflare/pages/data/pages/artifacts/published-site/1d0b1001941b126350515d2eaa00cea377a6ceffd4c72c76c77910686be8dc4e.zip b/internal/apps/openflare/pages/data/pages/artifacts/published-site/1d0b1001941b126350515d2eaa00cea377a6ceffd4c72c76c77910686be8dc4e.zip similarity index 100% rename from openflare-server/internal/apps/openflare/pages/data/pages/artifacts/published-site/1d0b1001941b126350515d2eaa00cea377a6ceffd4c72c76c77910686be8dc4e.zip rename to internal/apps/openflare/pages/data/pages/artifacts/published-site/1d0b1001941b126350515d2eaa00cea377a6ceffd4c72c76c77910686be8dc4e.zip diff --git a/openflare-server/internal/apps/openflare/pages/errs.go b/internal/apps/openflare/pages/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/pages/errs.go rename to internal/apps/openflare/pages/errs.go diff --git a/openflare-server/internal/apps/openflare/pages/helpers.go b/internal/apps/openflare/pages/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/pages/helpers.go rename to internal/apps/openflare/pages/helpers.go diff --git a/openflare-server/internal/apps/openflare/pages/logics.go b/internal/apps/openflare/pages/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/pages/logics.go rename to internal/apps/openflare/pages/logics.go diff --git a/openflare-server/internal/apps/openflare/pages/logics_test.go b/internal/apps/openflare/pages/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/pages/logics_test.go rename to internal/apps/openflare/pages/logics_test.go diff --git a/openflare-server/internal/apps/openflare/pages/routers.go b/internal/apps/openflare/pages/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/pages/routers.go rename to internal/apps/openflare/pages/routers.go diff --git a/openflare-server/internal/apps/openflare/proxy_route/errs.go b/internal/apps/openflare/proxy_route/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/proxy_route/errs.go rename to internal/apps/openflare/proxy_route/errs.go diff --git a/openflare-server/internal/apps/openflare/proxy_route/helpers.go b/internal/apps/openflare/proxy_route/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/proxy_route/helpers.go rename to internal/apps/openflare/proxy_route/helpers.go diff --git a/openflare-server/internal/apps/openflare/proxy_route/logics.go b/internal/apps/openflare/proxy_route/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/proxy_route/logics.go rename to internal/apps/openflare/proxy_route/logics.go diff --git a/openflare-server/internal/apps/openflare/proxy_route/logics_test.go b/internal/apps/openflare/proxy_route/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/proxy_route/logics_test.go rename to internal/apps/openflare/proxy_route/logics_test.go diff --git a/openflare-server/internal/apps/openflare/proxy_route/routers.go b/internal/apps/openflare/proxy_route/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/proxy_route/routers.go rename to internal/apps/openflare/proxy_route/routers.go diff --git a/openflare-server/internal/apps/openflare/relay/errs.go b/internal/apps/openflare/relay/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/errs.go rename to internal/apps/openflare/relay/errs.go diff --git a/openflare-server/internal/apps/openflare/relay/helpers.go b/internal/apps/openflare/relay/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/helpers.go rename to internal/apps/openflare/relay/helpers.go diff --git a/openflare-server/internal/apps/openflare/relay/logics.go b/internal/apps/openflare/relay/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/logics.go rename to internal/apps/openflare/relay/logics.go diff --git a/openflare-server/internal/apps/openflare/relay/logics_test.go b/internal/apps/openflare/relay/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/logics_test.go rename to internal/apps/openflare/relay/logics_test.go diff --git a/openflare-server/internal/apps/openflare/relay/middleware.go b/internal/apps/openflare/relay/middleware.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/middleware.go rename to internal/apps/openflare/relay/middleware.go diff --git a/openflare-server/internal/apps/openflare/relay/middleware_test.go b/internal/apps/openflare/relay/middleware_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/middleware_test.go rename to internal/apps/openflare/relay/middleware_test.go diff --git a/openflare-server/internal/apps/openflare/relay/observability.go b/internal/apps/openflare/relay/observability.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/observability.go rename to internal/apps/openflare/relay/observability.go diff --git a/openflare-server/internal/apps/openflare/relay/routers.go b/internal/apps/openflare/relay/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/relay/routers.go rename to internal/apps/openflare/relay/routers.go diff --git a/openflare-server/internal/apps/openflare/tasks/database_cleanup.go b/internal/apps/openflare/tasks/database_cleanup.go similarity index 100% rename from openflare-server/internal/apps/openflare/tasks/database_cleanup.go rename to internal/apps/openflare/tasks/database_cleanup.go diff --git a/openflare-server/internal/apps/openflare/tasks/database_cleanup_test.go b/internal/apps/openflare/tasks/database_cleanup_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/tasks/database_cleanup_test.go rename to internal/apps/openflare/tasks/database_cleanup_test.go diff --git a/openflare-server/internal/apps/openflare/tasks/doc.go b/internal/apps/openflare/tasks/doc.go similarity index 100% rename from openflare-server/internal/apps/openflare/tasks/doc.go rename to internal/apps/openflare/tasks/doc.go diff --git a/openflare-server/internal/apps/openflare/tasks/ssl_renew.go b/internal/apps/openflare/tasks/ssl_renew.go similarity index 100% rename from openflare-server/internal/apps/openflare/tasks/ssl_renew.go rename to internal/apps/openflare/tasks/ssl_renew.go diff --git a/openflare-server/internal/apps/openflare/tasks/ssl_renew_test.go b/internal/apps/openflare/tasks/ssl_renew_test.go similarity index 91% rename from openflare-server/internal/apps/openflare/tasks/ssl_renew_test.go rename to internal/apps/openflare/tasks/ssl_renew_test.go index f5571544..324537c1 100644 --- a/openflare-server/internal/apps/openflare/tasks/ssl_renew_test.go +++ b/internal/apps/openflare/tasks/ssl_renew_test.go @@ -8,6 +8,7 @@ import ( "testing" "time" + "github.com/Rain-kl/Wavelet/internal/apps/openflare/tls" "github.com/Rain-kl/Wavelet/internal/config" "github.com/Rain-kl/Wavelet/internal/db" "github.com/Rain-kl/Wavelet/internal/model" @@ -40,6 +41,11 @@ func TestRunSSLRenewJobTriggersDueCertificates(t *testing.T) { defer cleanup() ctx := context.Background() + restore := tls.SetObtainCertificateFuncForTest(func(ctx context.Context, cert *model.TLSCertificate) error { + return nil + }) + defer restore() + now := time.Date(2026, 6, 18, 12, 0, 0, 0, time.UTC) due := &model.TLSCertificate{ Name: "due-cert", diff --git a/openflare-server/internal/apps/openflare/tls/acme/client.go b/internal/apps/openflare/tls/acme/client.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/acme/client.go rename to internal/apps/openflare/tls/acme/client.go diff --git a/openflare-server/internal/apps/openflare/tls/acme_obtain_test.go b/internal/apps/openflare/tls/acme_obtain_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/acme_obtain_test.go rename to internal/apps/openflare/tls/acme_obtain_test.go diff --git a/openflare-server/internal/apps/openflare/tls/errs.go b/internal/apps/openflare/tls/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/errs.go rename to internal/apps/openflare/tls/errs.go diff --git a/openflare-server/internal/apps/openflare/tls/helpers.go b/internal/apps/openflare/tls/helpers.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/helpers.go rename to internal/apps/openflare/tls/helpers.go diff --git a/openflare-server/internal/apps/openflare/tls/logics.go b/internal/apps/openflare/tls/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/logics.go rename to internal/apps/openflare/tls/logics.go diff --git a/openflare-server/internal/apps/openflare/tls/logics_test.go b/internal/apps/openflare/tls/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/logics_test.go rename to internal/apps/openflare/tls/logics_test.go diff --git a/openflare-server/internal/apps/openflare/tls/managed_domain.go b/internal/apps/openflare/tls/managed_domain.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/managed_domain.go rename to internal/apps/openflare/tls/managed_domain.go diff --git a/openflare-server/internal/apps/openflare/tls/obtain.go b/internal/apps/openflare/tls/obtain.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/obtain.go rename to internal/apps/openflare/tls/obtain.go diff --git a/openflare-server/internal/apps/openflare/tls/routers.go b/internal/apps/openflare/tls/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/routers.go rename to internal/apps/openflare/tls/routers.go diff --git a/openflare-server/internal/apps/openflare/tls/sensitive.go b/internal/apps/openflare/tls/sensitive.go similarity index 100% rename from openflare-server/internal/apps/openflare/tls/sensitive.go rename to internal/apps/openflare/tls/sensitive.go diff --git a/openflare-server/internal/apps/openflare/uptimekuma/client.go b/internal/apps/openflare/uptimekuma/client.go similarity index 100% rename from openflare-server/internal/apps/openflare/uptimekuma/client.go rename to internal/apps/openflare/uptimekuma/client.go diff --git a/openflare-server/internal/apps/openflare/uptimekuma/sync.go b/internal/apps/openflare/uptimekuma/sync.go similarity index 100% rename from openflare-server/internal/apps/openflare/uptimekuma/sync.go rename to internal/apps/openflare/uptimekuma/sync.go diff --git a/openflare-server/internal/apps/openflare/uptimekuma/sync_test.go b/internal/apps/openflare/uptimekuma/sync_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/uptimekuma/sync_test.go rename to internal/apps/openflare/uptimekuma/sync_test.go diff --git a/openflare-server/internal/apps/openflare/waf/errs.go b/internal/apps/openflare/waf/errs.go similarity index 100% rename from openflare-server/internal/apps/openflare/waf/errs.go rename to internal/apps/openflare/waf/errs.go diff --git a/openflare-server/internal/apps/openflare/waf/ip_group_sync.go b/internal/apps/openflare/waf/ip_group_sync.go similarity index 100% rename from openflare-server/internal/apps/openflare/waf/ip_group_sync.go rename to internal/apps/openflare/waf/ip_group_sync.go diff --git a/openflare-server/internal/apps/openflare/waf/ip_group_sync_test.go b/internal/apps/openflare/waf/ip_group_sync_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/waf/ip_group_sync_test.go rename to internal/apps/openflare/waf/ip_group_sync_test.go diff --git a/openflare-server/internal/apps/openflare/waf/logics.go b/internal/apps/openflare/waf/logics.go similarity index 100% rename from openflare-server/internal/apps/openflare/waf/logics.go rename to internal/apps/openflare/waf/logics.go diff --git a/openflare-server/internal/apps/openflare/waf/logics_test.go b/internal/apps/openflare/waf/logics_test.go similarity index 100% rename from openflare-server/internal/apps/openflare/waf/logics_test.go rename to internal/apps/openflare/waf/logics_test.go diff --git a/openflare-server/internal/apps/openflare/waf/routers.go b/internal/apps/openflare/waf/routers.go similarity index 100% rename from openflare-server/internal/apps/openflare/waf/routers.go rename to internal/apps/openflare/waf/routers.go diff --git a/openflare-server/internal/apps/openflare/websocket/agent_hub.go b/internal/apps/openflare/websocket/agent_hub.go similarity index 100% rename from openflare-server/internal/apps/openflare/websocket/agent_hub.go rename to internal/apps/openflare/websocket/agent_hub.go diff --git a/openflare-server/internal/apps/openflare/websocket/common.go b/internal/apps/openflare/websocket/common.go similarity index 100% rename from openflare-server/internal/apps/openflare/websocket/common.go rename to internal/apps/openflare/websocket/common.go diff --git a/openflare-server/internal/apps/openflare/websocket/flared_hub.go b/internal/apps/openflare/websocket/flared_hub.go similarity index 100% rename from openflare-server/internal/apps/openflare/websocket/flared_hub.go rename to internal/apps/openflare/websocket/flared_hub.go diff --git a/openflare-server/internal/apps/openflare/websocket/relay_hub.go b/internal/apps/openflare/websocket/relay_hub.go similarity index 100% rename from openflare-server/internal/apps/openflare/websocket/relay_hub.go rename to internal/apps/openflare/websocket/relay_hub.go diff --git a/openflare-server/internal/relay/config/config.go b/internal/apps/relay/config/config.go similarity index 100% rename from openflare-server/internal/relay/config/config.go rename to internal/apps/relay/config/config.go diff --git a/openflare-server/internal/relay/config/version.go b/internal/apps/relay/config/version.go similarity index 100% rename from openflare-server/internal/relay/config/version.go rename to internal/apps/relay/config/version.go diff --git a/openflare-server/internal/relay/frps/manager.go b/internal/apps/relay/frps/manager.go similarity index 100% rename from openflare-server/internal/relay/frps/manager.go rename to internal/apps/relay/frps/manager.go diff --git a/openflare-server/internal/relay/frps/manager_test.go b/internal/apps/relay/frps/manager_test.go similarity index 100% rename from openflare-server/internal/relay/frps/manager_test.go rename to internal/apps/relay/frps/manager_test.go diff --git a/openflare-server/internal/relay/heartbeat/service.go b/internal/apps/relay/heartbeat/service.go similarity index 88% rename from openflare-server/internal/relay/heartbeat/service.go rename to internal/apps/relay/heartbeat/service.go index fb293f34..aa30fc3b 100644 --- a/openflare-server/internal/relay/heartbeat/service.go +++ b/internal/apps/relay/heartbeat/service.go @@ -5,12 +5,12 @@ import ( "log/slog" "time" - "github.com/Rain-kl/Wavelet/internal/relay/config" - "github.com/Rain-kl/Wavelet/internal/relay/frps" - "github.com/Rain-kl/Wavelet/internal/relay/httpclient" - "github.com/Rain-kl/Wavelet/internal/relay/observability" - "github.com/Rain-kl/Wavelet/internal/relay/state" - "github.com/Rain-kl/Wavelet/internal/relay/updater" + "github.com/Rain-kl/Wavelet/internal/apps/relay/config" + "github.com/Rain-kl/Wavelet/internal/apps/relay/frps" + "github.com/Rain-kl/Wavelet/internal/apps/relay/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/relay/observability" + "github.com/Rain-kl/Wavelet/internal/apps/relay/state" + "github.com/Rain-kl/Wavelet/internal/apps/relay/updater" service "github.com/Rain-kl/Wavelet/pkg/protocol" ) diff --git a/openflare-server/internal/relay/httpclient/client.go b/internal/apps/relay/httpclient/client.go similarity index 100% rename from openflare-server/internal/relay/httpclient/client.go rename to internal/apps/relay/httpclient/client.go diff --git a/openflare-server/internal/relay/observability/collector.go b/internal/apps/relay/observability/collector.go similarity index 97% rename from openflare-server/internal/relay/observability/collector.go rename to internal/apps/relay/observability/collector.go index c04ea0dc..dc103f6d 100644 --- a/openflare-server/internal/relay/observability/collector.go +++ b/internal/apps/relay/observability/collector.go @@ -13,9 +13,9 @@ import ( "syscall" "time" - "github.com/Rain-kl/Wavelet/internal/relay/config" - "github.com/Rain-kl/Wavelet/internal/relay/frps" - "github.com/Rain-kl/Wavelet/internal/relay/state" + "github.com/Rain-kl/Wavelet/internal/apps/relay/config" + "github.com/Rain-kl/Wavelet/internal/apps/relay/frps" + "github.com/Rain-kl/Wavelet/internal/apps/relay/state" service "github.com/Rain-kl/Wavelet/pkg/protocol" ) diff --git a/openflare-server/internal/relay/relay/runner.go b/internal/apps/relay/relay/runner.go similarity index 84% rename from openflare-server/internal/relay/relay/runner.go rename to internal/apps/relay/relay/runner.go index b4e79509..57ddd024 100644 --- a/openflare-server/internal/relay/relay/runner.go +++ b/internal/apps/relay/relay/runner.go @@ -6,12 +6,12 @@ import ( "log/slog" "time" - "github.com/Rain-kl/Wavelet/internal/relay/config" - "github.com/Rain-kl/Wavelet/internal/relay/frps" - "github.com/Rain-kl/Wavelet/internal/relay/heartbeat" - "github.com/Rain-kl/Wavelet/internal/relay/httpclient" - "github.com/Rain-kl/Wavelet/internal/relay/state" - "github.com/Rain-kl/Wavelet/internal/relay/wsclient" + "github.com/Rain-kl/Wavelet/internal/apps/relay/config" + "github.com/Rain-kl/Wavelet/internal/apps/relay/frps" + "github.com/Rain-kl/Wavelet/internal/apps/relay/heartbeat" + "github.com/Rain-kl/Wavelet/internal/apps/relay/httpclient" + "github.com/Rain-kl/Wavelet/internal/apps/relay/state" + "github.com/Rain-kl/Wavelet/internal/apps/relay/wsclient" service "github.com/Rain-kl/Wavelet/pkg/protocol" ) diff --git a/openflare-server/internal/relay/state/store.go b/internal/apps/relay/state/store.go similarity index 100% rename from openflare-server/internal/relay/state/store.go rename to internal/apps/relay/state/store.go diff --git a/openflare-server/internal/relay/updater/restart_unix.go b/internal/apps/relay/updater/restart_unix.go similarity index 100% rename from openflare-server/internal/relay/updater/restart_unix.go rename to internal/apps/relay/updater/restart_unix.go diff --git a/openflare-server/internal/relay/updater/restart_windows.go b/internal/apps/relay/updater/restart_windows.go similarity index 100% rename from openflare-server/internal/relay/updater/restart_windows.go rename to internal/apps/relay/updater/restart_windows.go diff --git a/openflare-server/internal/relay/updater/updater.go b/internal/apps/relay/updater/updater.go similarity index 99% rename from openflare-server/internal/relay/updater/updater.go rename to internal/apps/relay/updater/updater.go index 9c044578..524be4a3 100644 --- a/openflare-server/internal/relay/updater/updater.go +++ b/internal/apps/relay/updater/updater.go @@ -16,7 +16,7 @@ import ( "github.com/Rain-kl/Wavelet/pkg/utils" - "github.com/Rain-kl/Wavelet/internal/relay/config" + "github.com/Rain-kl/Wavelet/internal/apps/relay/config" ) const maxChecksumAssetSize = 64 * 1024 diff --git a/openflare-server/internal/relay/wsclient/client.go b/internal/apps/relay/wsclient/client.go similarity index 100% rename from openflare-server/internal/relay/wsclient/client.go rename to internal/apps/relay/wsclient/client.go diff --git a/openflare-server/internal/apps/risk_control/logics.go b/internal/apps/risk_control/logics.go similarity index 100% rename from openflare-server/internal/apps/risk_control/logics.go rename to internal/apps/risk_control/logics.go diff --git a/openflare-server/internal/apps/risk_control/middleware.go b/internal/apps/risk_control/middleware.go similarity index 100% rename from openflare-server/internal/apps/risk_control/middleware.go rename to internal/apps/risk_control/middleware.go diff --git a/openflare-server/internal/apps/risk_control/middleware_test.go b/internal/apps/risk_control/middleware_test.go similarity index 100% rename from openflare-server/internal/apps/risk_control/middleware_test.go rename to internal/apps/risk_control/middleware_test.go diff --git a/openflare-server/internal/apps/upload/cache/access_cache.go b/internal/apps/upload/cache/access_cache.go similarity index 100% rename from openflare-server/internal/apps/upload/cache/access_cache.go rename to internal/apps/upload/cache/access_cache.go diff --git a/openflare-server/internal/apps/upload/cache/access_cache_test.go b/internal/apps/upload/cache/access_cache_test.go similarity index 100% rename from openflare-server/internal/apps/upload/cache/access_cache_test.go rename to internal/apps/upload/cache/access_cache_test.go diff --git a/openflare-server/internal/apps/upload/errs.go b/internal/apps/upload/errs.go similarity index 100% rename from openflare-server/internal/apps/upload/errs.go rename to internal/apps/upload/errs.go diff --git a/openflare-server/internal/apps/upload/exports.go b/internal/apps/upload/exports.go similarity index 100% rename from openflare-server/internal/apps/upload/exports.go rename to internal/apps/upload/exports.go diff --git a/openflare-server/internal/apps/upload/filesrv/file_server.go b/internal/apps/upload/filesrv/file_server.go similarity index 100% rename from openflare-server/internal/apps/upload/filesrv/file_server.go rename to internal/apps/upload/filesrv/file_server.go diff --git a/openflare-server/internal/apps/upload/filesrv/file_server_test.go b/internal/apps/upload/filesrv/file_server_test.go similarity index 100% rename from openflare-server/internal/apps/upload/filesrv/file_server_test.go rename to internal/apps/upload/filesrv/file_server_test.go diff --git a/openflare-server/internal/apps/upload/handler/file_management.go b/internal/apps/upload/handler/file_management.go similarity index 100% rename from openflare-server/internal/apps/upload/handler/file_management.go rename to internal/apps/upload/handler/file_management.go diff --git a/openflare-server/internal/apps/upload/handler/file_management_test.go b/internal/apps/upload/handler/file_management_test.go similarity index 100% rename from openflare-server/internal/apps/upload/handler/file_management_test.go rename to internal/apps/upload/handler/file_management_test.go diff --git a/openflare-server/internal/apps/upload/handler/logics.go b/internal/apps/upload/handler/logics.go similarity index 100% rename from openflare-server/internal/apps/upload/handler/logics.go rename to internal/apps/upload/handler/logics.go diff --git a/openflare-server/internal/apps/upload/handler/routers.go b/internal/apps/upload/handler/routers.go similarity index 100% rename from openflare-server/internal/apps/upload/handler/routers.go rename to internal/apps/upload/handler/routers.go diff --git a/openflare-server/internal/apps/upload/handler/routers_test.go b/internal/apps/upload/handler/routers_test.go similarity index 100% rename from openflare-server/internal/apps/upload/handler/routers_test.go rename to internal/apps/upload/handler/routers_test.go diff --git a/openflare-server/internal/apps/upload/handler/stats.go b/internal/apps/upload/handler/stats.go similarity index 100% rename from openflare-server/internal/apps/upload/handler/stats.go rename to internal/apps/upload/handler/stats.go diff --git a/openflare-server/internal/apps/upload/ingest/errors.go b/internal/apps/upload/ingest/errors.go similarity index 100% rename from openflare-server/internal/apps/upload/ingest/errors.go rename to internal/apps/upload/ingest/errors.go diff --git a/openflare-server/internal/apps/upload/ingest/helpers.go b/internal/apps/upload/ingest/helpers.go similarity index 100% rename from openflare-server/internal/apps/upload/ingest/helpers.go rename to internal/apps/upload/ingest/helpers.go diff --git a/openflare-server/internal/apps/upload/ingest/ingest.go b/internal/apps/upload/ingest/ingest.go similarity index 100% rename from openflare-server/internal/apps/upload/ingest/ingest.go rename to internal/apps/upload/ingest/ingest.go diff --git a/openflare-server/internal/apps/upload/ingest/ingest_test.go b/internal/apps/upload/ingest/ingest_test.go similarity index 100% rename from openflare-server/internal/apps/upload/ingest/ingest_test.go rename to internal/apps/upload/ingest/ingest_test.go diff --git a/openflare-server/internal/apps/upload/ingest/remove.go b/internal/apps/upload/ingest/remove.go similarity index 100% rename from openflare-server/internal/apps/upload/ingest/remove.go rename to internal/apps/upload/ingest/remove.go diff --git a/openflare-server/internal/apps/upload/ingest/types.go b/internal/apps/upload/ingest/types.go similarity index 100% rename from openflare-server/internal/apps/upload/ingest/types.go rename to internal/apps/upload/ingest/types.go diff --git a/openflare-server/internal/apps/upload/shared/constants.go b/internal/apps/upload/shared/constants.go similarity index 100% rename from openflare-server/internal/apps/upload/shared/constants.go rename to internal/apps/upload/shared/constants.go diff --git a/openflare-server/internal/apps/upload/shared/errs.go b/internal/apps/upload/shared/errs.go similarity index 100% rename from openflare-server/internal/apps/upload/shared/errs.go rename to internal/apps/upload/shared/errs.go diff --git a/openflare-server/internal/apps/upload/stats/category.go b/internal/apps/upload/stats/category.go similarity index 100% rename from openflare-server/internal/apps/upload/stats/category.go rename to internal/apps/upload/stats/category.go diff --git a/openflare-server/internal/apps/upload/stats/stats_counter.go b/internal/apps/upload/stats/stats_counter.go similarity index 100% rename from openflare-server/internal/apps/upload/stats/stats_counter.go rename to internal/apps/upload/stats/stats_counter.go diff --git a/openflare-server/internal/apps/upload/stats/stats_counter_test.go b/internal/apps/upload/stats/stats_counter_test.go similarity index 100% rename from openflare-server/internal/apps/upload/stats/stats_counter_test.go rename to internal/apps/upload/stats/stats_counter_test.go diff --git a/openflare-server/internal/apps/upload/storage/access_state.go b/internal/apps/upload/storage/access_state.go similarity index 100% rename from openflare-server/internal/apps/upload/storage/access_state.go rename to internal/apps/upload/storage/access_state.go diff --git a/openflare-server/internal/apps/upload/storage/migration.go b/internal/apps/upload/storage/migration.go similarity index 100% rename from openflare-server/internal/apps/upload/storage/migration.go rename to internal/apps/upload/storage/migration.go diff --git a/openflare-server/internal/apps/upload/storage/storage_ops.go b/internal/apps/upload/storage/storage_ops.go similarity index 100% rename from openflare-server/internal/apps/upload/storage/storage_ops.go rename to internal/apps/upload/storage/storage_ops.go diff --git a/openflare-server/internal/apps/upload/task/cleanup.go b/internal/apps/upload/task/cleanup.go similarity index 100% rename from openflare-server/internal/apps/upload/task/cleanup.go rename to internal/apps/upload/task/cleanup.go diff --git a/openflare-server/internal/apps/upload/task/rebuild_stats.go b/internal/apps/upload/task/rebuild_stats.go similarity index 100% rename from openflare-server/internal/apps/upload/task/rebuild_stats.go rename to internal/apps/upload/task/rebuild_stats.go diff --git a/openflare-server/internal/apps/upload/task/rebuild_stats_test.go b/internal/apps/upload/task/rebuild_stats_test.go similarity index 100% rename from openflare-server/internal/apps/upload/task/rebuild_stats_test.go rename to internal/apps/upload/task/rebuild_stats_test.go diff --git a/openflare-server/internal/apps/upload/task/storage_migration.go b/internal/apps/upload/task/storage_migration.go similarity index 100% rename from openflare-server/internal/apps/upload/task/storage_migration.go rename to internal/apps/upload/task/storage_migration.go diff --git a/openflare-server/internal/apps/upload/task/storage_migration_task_test.go b/internal/apps/upload/task/storage_migration_task_test.go similarity index 100% rename from openflare-server/internal/apps/upload/task/storage_migration_task_test.go rename to internal/apps/upload/task/storage_migration_task_test.go diff --git a/openflare-server/internal/apps/upload/task/tasks.go b/internal/apps/upload/task/tasks.go similarity index 100% rename from openflare-server/internal/apps/upload/task/tasks.go rename to internal/apps/upload/task/tasks.go diff --git a/openflare-server/internal/apps/upload/task/tasks_test.go b/internal/apps/upload/task/tasks_test.go similarity index 100% rename from openflare-server/internal/apps/upload/task/tasks_test.go rename to internal/apps/upload/task/tasks_test.go diff --git a/openflare-server/internal/apps/upload/util/media.go b/internal/apps/upload/util/media.go similarity index 100% rename from openflare-server/internal/apps/upload/util/media.go rename to internal/apps/upload/util/media.go diff --git a/openflare-server/internal/apps/upload/util/utils.go b/internal/apps/upload/util/utils.go similarity index 100% rename from openflare-server/internal/apps/upload/util/utils.go rename to internal/apps/upload/util/utils.go diff --git a/openflare-server/internal/apps/user/access_tokens.go b/internal/apps/user/access_tokens.go similarity index 100% rename from openflare-server/internal/apps/user/access_tokens.go rename to internal/apps/user/access_tokens.go diff --git a/openflare-server/internal/apps/user/constants.go b/internal/apps/user/constants.go similarity index 100% rename from openflare-server/internal/apps/user/constants.go rename to internal/apps/user/constants.go diff --git a/openflare-server/internal/apps/user/errs.go b/internal/apps/user/errs.go similarity index 100% rename from openflare-server/internal/apps/user/errs.go rename to internal/apps/user/errs.go diff --git a/openflare-server/internal/apps/user/logics.go b/internal/apps/user/logics.go similarity index 100% rename from openflare-server/internal/apps/user/logics.go rename to internal/apps/user/logics.go diff --git a/openflare-server/internal/apps/user/logics_test.go b/internal/apps/user/logics_test.go similarity index 100% rename from openflare-server/internal/apps/user/logics_test.go rename to internal/apps/user/logics_test.go diff --git a/openflare-server/internal/apps/user/routers.go b/internal/apps/user/routers.go similarity index 100% rename from openflare-server/internal/apps/user/routers.go rename to internal/apps/user/routers.go diff --git a/openflare-server/internal/apps/user/routers_test.go b/internal/apps/user/routers_test.go similarity index 100% rename from openflare-server/internal/apps/user/routers_test.go rename to internal/apps/user/routers_test.go diff --git a/openflare-server/internal/apps/user/tasks.go b/internal/apps/user/tasks.go similarity index 100% rename from openflare-server/internal/apps/user/tasks.go rename to internal/apps/user/tasks.go diff --git a/openflare-server/internal/bootstrap/bootstrap.go b/internal/bootstrap/bootstrap.go similarity index 100% rename from openflare-server/internal/bootstrap/bootstrap.go rename to internal/bootstrap/bootstrap.go diff --git a/openflare-server/internal/bootstrap/bootstrap_test.go b/internal/bootstrap/bootstrap_test.go similarity index 100% rename from openflare-server/internal/bootstrap/bootstrap_test.go rename to internal/bootstrap/bootstrap_test.go diff --git a/openflare-server/internal/buildinfo/buildinfo.go b/internal/buildinfo/buildinfo.go similarity index 100% rename from openflare-server/internal/buildinfo/buildinfo.go rename to internal/buildinfo/buildinfo.go diff --git a/openflare-server/internal/cmd/all.go b/internal/cmd/all.go similarity index 100% rename from openflare-server/internal/cmd/all.go rename to internal/cmd/all.go diff --git a/openflare-server/internal/cmd/api.go b/internal/cmd/api.go similarity index 100% rename from openflare-server/internal/cmd/api.go rename to internal/cmd/api.go diff --git a/openflare-server/internal/cmd/bootstrap.go b/internal/cmd/bootstrap.go similarity index 100% rename from openflare-server/internal/cmd/bootstrap.go rename to internal/cmd/bootstrap.go diff --git a/openflare-server/internal/cmd/root.go b/internal/cmd/root.go similarity index 100% rename from openflare-server/internal/cmd/root.go rename to internal/cmd/root.go diff --git a/openflare-server/internal/cmd/scheduler.go b/internal/cmd/scheduler.go similarity index 100% rename from openflare-server/internal/cmd/scheduler.go rename to internal/cmd/scheduler.go diff --git a/openflare-server/internal/cmd/worker.go b/internal/cmd/worker.go similarity index 100% rename from openflare-server/internal/cmd/worker.go rename to internal/cmd/worker.go diff --git a/openflare-server/internal/common/constants.go b/internal/common/constants.go similarity index 100% rename from openflare-server/internal/common/constants.go rename to internal/common/constants.go diff --git a/openflare-server/internal/common/errs.go b/internal/common/errs.go similarity index 100% rename from openflare-server/internal/common/errs.go rename to internal/common/errs.go diff --git a/openflare-server/internal/common/response/abort.go b/internal/common/response/abort.go similarity index 100% rename from openflare-server/internal/common/response/abort.go rename to internal/common/response/abort.go diff --git a/openflare-server/internal/common/response/middleware.go b/internal/common/response/middleware.go similarity index 100% rename from openflare-server/internal/common/response/middleware.go rename to internal/common/response/middleware.go diff --git a/openflare-server/internal/common/response/middleware_test.go b/internal/common/response/middleware_test.go similarity index 100% rename from openflare-server/internal/common/response/middleware_test.go rename to internal/common/response/middleware_test.go diff --git a/openflare-server/internal/common/response/response.go b/internal/common/response/response.go similarity index 100% rename from openflare-server/internal/common/response/response.go rename to internal/common/response/response.go diff --git a/openflare-server/internal/config/config.go b/internal/config/config.go similarity index 100% rename from openflare-server/internal/config/config.go rename to internal/config/config.go diff --git a/openflare-server/internal/config/model.go b/internal/config/model.go similarity index 100% rename from openflare-server/internal/config/model.go rename to internal/config/model.go diff --git a/openflare-server/internal/db/clickhouse.go b/internal/db/clickhouse.go similarity index 100% rename from openflare-server/internal/db/clickhouse.go rename to internal/db/clickhouse.go diff --git a/openflare-server/internal/db/errs.go b/internal/db/errs.go similarity index 100% rename from openflare-server/internal/db/errs.go rename to internal/db/errs.go diff --git a/openflare-server/internal/db/idgen/snowflake.go b/internal/db/idgen/snowflake.go similarity index 100% rename from openflare-server/internal/db/idgen/snowflake.go rename to internal/db/idgen/snowflake.go diff --git a/openflare-server/internal/db/idgen/snowflake_test.go b/internal/db/idgen/snowflake_test.go similarity index 100% rename from openflare-server/internal/db/idgen/snowflake_test.go rename to internal/db/idgen/snowflake_test.go diff --git a/openflare-server/internal/db/migrator/clickhouse.go b/internal/db/migrator/clickhouse.go similarity index 100% rename from openflare-server/internal/db/migrator/clickhouse.go rename to internal/db/migrator/clickhouse.go diff --git a/openflare-server/internal/db/migrator/clickhouse_test.go b/internal/db/migrator/clickhouse_test.go similarity index 100% rename from openflare-server/internal/db/migrator/clickhouse_test.go rename to internal/db/migrator/clickhouse_test.go diff --git a/openflare-server/internal/db/migrator/goose/clickhouse/202606190001_create_user_access_logs.sql b/internal/db/migrator/goose/clickhouse/202606190001_create_user_access_logs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/clickhouse/202606190001_create_user_access_logs.sql rename to internal/db/migrator/goose/clickhouse/202606190001_create_user_access_logs.sql diff --git a/openflare-server/internal/db/migrator/goose/clickhouse/202606200001_create_node_access_logs.sql b/internal/db/migrator/goose/clickhouse/202606200001_create_node_access_logs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/clickhouse/202606200001_create_node_access_logs.sql rename to internal/db/migrator/goose/clickhouse/202606200001_create_node_access_logs.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606090001_initial_schema.sql b/internal/db/migrator/goose/postgres/202606090001_initial_schema.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606090001_initial_schema.sql rename to internal/db/migrator/goose/postgres/202606090001_initial_schema.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606100001_create_schedules.sql b/internal/db/migrator/goose/postgres/202606100001_create_schedules.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606100001_create_schedules.sql rename to internal/db/migrator/goose/postgres/202606100001_create_schedules.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606100002_access_token_is_admin.sql b/internal/db/migrator/goose/postgres/202606100002_access_token_is_admin.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606100002_access_token_is_admin.sql rename to internal/db/migrator/goose/postgres/202606100002_access_token_is_admin.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606110001_remove_access_token_last_used_at.sql b/internal/db/migrator/goose/postgres/202606110001_remove_access_token_last_used_at.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606110001_remove_access_token_last_used_at.sql rename to internal/db/migrator/goose/postgres/202606110001_remove_access_token_last_used_at.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606110002_alter_schedules_id_auto_increment.sql b/internal/db/migrator/goose/postgres/202606110002_alter_schedules_id_auto_increment.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606110002_alter_schedules_id_auto_increment.sql rename to internal/db/migrator/goose/postgres/202606110002_alter_schedules_id_auto_increment.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606110003_rename_tables_to_w_prefix.sql b/internal/db/migrator/goose/postgres/202606110003_rename_tables_to_w_prefix.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606110003_rename_tables_to_w_prefix.sql rename to internal/db/migrator/goose/postgres/202606110003_rename_tables_to_w_prefix.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606110004_add_file_access_whitelist_config.sql b/internal/db/migrator/goose/postgres/202606110004_add_file_access_whitelist_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606110004_add_file_access_whitelist_config.sql rename to internal/db/migrator/goose/postgres/202606110004_add_file_access_whitelist_config.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606110005_add_disk_cache_configs.sql b/internal/db/migrator/goose/postgres/202606110005_add_disk_cache_configs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606110005_add_disk_cache_configs.sql rename to internal/db/migrator/goose/postgres/202606110005_add_disk_cache_configs.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606120001_add_login_session_ttl_config.sql b/internal/db/migrator/goose/postgres/202606120001_add_login_session_ttl_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606120001_add_login_session_ttl_config.sql rename to internal/db/migrator/goose/postgres/202606120001_add_login_session_ttl_config.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606120002_add_update_upstream_repository_config.sql b/internal/db/migrator/goose/postgres/202606120002_add_update_upstream_repository_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606120002_add_update_upstream_repository_config.sql rename to internal/db/migrator/goose/postgres/202606120002_add_update_upstream_repository_config.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606130001_add_upload_access_mode.sql b/internal/db/migrator/goose/postgres/202606130001_add_upload_access_mode.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606130001_add_upload_access_mode.sql rename to internal/db/migrator/goose/postgres/202606130001_add_upload_access_mode.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606130002_expand_system_config_value.sql b/internal/db/migrator/goose/postgres/202606130002_expand_system_config_value.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606130002_expand_system_config_value.sql rename to internal/db/migrator/goose/postgres/202606130002_expand_system_config_value.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606130003_add_storage_config.sql b/internal/db/migrator/goose/postgres/202606130003_add_storage_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606130003_add_storage_config.sql rename to internal/db/migrator/goose/postgres/202606130003_add_storage_config.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606140001_create_push_tables.sql b/internal/db/migrator/goose/postgres/202606140001_create_push_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606140001_create_push_tables.sql rename to internal/db/migrator/goose/postgres/202606140001_create_push_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606140003_add_system_user.sql b/internal/db/migrator/goose/postgres/202606140003_add_system_user.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606140003_add_system_user.sql rename to internal/db/migrator/goose/postgres/202606140003_add_system_user.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606140004_create_push_channels.sql b/internal/db/migrator/goose/postgres/202606140004_create_push_channels.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606140004_create_push_channels.sql rename to internal/db/migrator/goose/postgres/202606140004_create_push_channels.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606140005_update_system_cleanup_schedule.sql b/internal/db/migrator/goose/postgres/202606140005_update_system_cleanup_schedule.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606140005_update_system_cleanup_schedule.sql rename to internal/db/migrator/goose/postgres/202606140005_update_system_cleanup_schedule.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606150001_add_task_type_to_push_events.sql b/internal/db/migrator/goose/postgres/202606150001_add_task_type_to_push_events.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606150001_add_task_type_to_push_events.sql rename to internal/db/migrator/goose/postgres/202606150001_add_task_type_to_push_events.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606160001_remove_push_config.sql b/internal/db/migrator/goose/postgres/202606160001_remove_push_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606160001_remove_push_config.sql rename to internal/db/migrator/goose/postgres/202606160001_remove_push_config.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606170001_add_upload_composite_indexes.sql b/internal/db/migrator/goose/postgres/202606170001_add_upload_composite_indexes.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606170001_add_upload_composite_indexes.sql rename to internal/db/migrator/goose/postgres/202606170001_add_upload_composite_indexes.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606170002_create_upload_stats_table.sql b/internal/db/migrator/goose/postgres/202606170002_create_upload_stats_table.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606170002_create_upload_stats_table.sql rename to internal/db/migrator/goose/postgres/202606170002_create_upload_stats_table.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606170003_backfill_upload_stats.sql b/internal/db/migrator/goose/postgres/202606170003_backfill_upload_stats.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606170003_backfill_upload_stats.sql rename to internal/db/migrator/goose/postgres/202606170003_backfill_upload_stats.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606180001_drop_upload_storage_driver.sql b/internal/db/migrator/goose/postgres/202606180001_drop_upload_storage_driver.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606180001_drop_upload_storage_driver.sql rename to internal/db/migrator/goose/postgres/202606180001_drop_upload_storage_driver.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190001_create_of_options.sql b/internal/db/migrator/goose/postgres/202606190001_create_of_options.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190001_create_of_options.sql rename to internal/db/migrator/goose/postgres/202606190001_create_of_options.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190002_create_of_origins.sql b/internal/db/migrator/goose/postgres/202606190002_create_of_origins.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190002_create_of_origins.sql rename to internal/db/migrator/goose/postgres/202606190002_create_of_origins.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190003_create_of_apply_logs.sql b/internal/db/migrator/goose/postgres/202606190003_create_of_apply_logs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190003_create_of_apply_logs.sql rename to internal/db/migrator/goose/postgres/202606190003_create_of_apply_logs.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190004_create_of_proxy_routes.sql b/internal/db/migrator/goose/postgres/202606190004_create_of_proxy_routes.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190004_create_of_proxy_routes.sql rename to internal/db/migrator/goose/postgres/202606190004_create_of_proxy_routes.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190005_create_of_nodes.sql b/internal/db/migrator/goose/postgres/202606190005_create_of_nodes.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190005_create_of_nodes.sql rename to internal/db/migrator/goose/postgres/202606190005_create_of_nodes.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190006_create_of_waf_tables.sql b/internal/db/migrator/goose/postgres/202606190006_create_of_waf_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190006_create_of_waf_tables.sql rename to internal/db/migrator/goose/postgres/202606190006_create_of_waf_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190007_create_of_tls_tables.sql b/internal/db/migrator/goose/postgres/202606190007_create_of_tls_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190007_create_of_tls_tables.sql rename to internal/db/migrator/goose/postgres/202606190007_create_of_tls_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190008_create_of_config_versions.sql b/internal/db/migrator/goose/postgres/202606190008_create_of_config_versions.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190008_create_of_config_versions.sql rename to internal/db/migrator/goose/postgres/202606190008_create_of_config_versions.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190009_create_of_pages_tables.sql b/internal/db/migrator/goose/postgres/202606190009_create_of_pages_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190009_create_of_pages_tables.sql rename to internal/db/migrator/goose/postgres/202606190009_create_of_pages_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190010_create_of_observability_tables.sql b/internal/db/migrator/goose/postgres/202606190010_create_of_observability_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190010_create_of_observability_tables.sql rename to internal/db/migrator/goose/postgres/202606190010_create_of_observability_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190011_add_of_node_access_logs_composite_index.sql b/internal/db/migrator/goose/postgres/202606190011_add_of_node_access_logs_composite_index.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190011_add_of_node_access_logs_composite_index.sql rename to internal/db/migrator/goose/postgres/202606190011_add_of_node_access_logs_composite_index.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190012_create_of_node_obs_frpc.sql b/internal/db/migrator/goose/postgres/202606190012_create_of_node_obs_frpc.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190012_create_of_node_obs_frpc.sql rename to internal/db/migrator/goose/postgres/202606190012_create_of_node_obs_frpc.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190013_seed_openflare_schedules.sql b/internal/db/migrator/goose/postgres/202606190013_seed_openflare_schedules.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190013_seed_openflare_schedules.sql rename to internal/db/migrator/goose/postgres/202606190013_seed_openflare_schedules.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606190014_add_pages_deployment_upload_id.sql b/internal/db/migrator/goose/postgres/202606190014_add_pages_deployment_upload_id.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606190014_add_pages_deployment_upload_id.sql rename to internal/db/migrator/goose/postgres/202606190014_add_pages_deployment_upload_id.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606200001_rebrand_openflare_defaults.sql b/internal/db/migrator/goose/postgres/202606200001_rebrand_openflare_defaults.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606200001_rebrand_openflare_defaults.sql rename to internal/db/migrator/goose/postgres/202606200001_rebrand_openflare_defaults.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606200002_update_security_defaults.sql b/internal/db/migrator/goose/postgres/202606200002_update_security_defaults.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606200002_update_security_defaults.sql rename to internal/db/migrator/goose/postgres/202606200002_update_security_defaults.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606200003_remove_legacy_rate_limit_options.sql b/internal/db/migrator/goose/postgres/202606200003_remove_legacy_rate_limit_options.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606200003_remove_legacy_rate_limit_options.sql rename to internal/db/migrator/goose/postgres/202606200003_remove_legacy_rate_limit_options.sql diff --git a/openflare-server/internal/db/migrator/goose/postgres/202606200004_drop_of_node_access_logs.sql b/internal/db/migrator/goose/postgres/202606200004_drop_of_node_access_logs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/postgres/202606200004_drop_of_node_access_logs.sql rename to internal/db/migrator/goose/postgres/202606200004_drop_of_node_access_logs.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606090001_initial_schema.sql b/internal/db/migrator/goose/sqlite/202606090001_initial_schema.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606090001_initial_schema.sql rename to internal/db/migrator/goose/sqlite/202606090001_initial_schema.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606100001_create_schedules.sql b/internal/db/migrator/goose/sqlite/202606100001_create_schedules.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606100001_create_schedules.sql rename to internal/db/migrator/goose/sqlite/202606100001_create_schedules.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606100002_access_token_is_admin.sql b/internal/db/migrator/goose/sqlite/202606100002_access_token_is_admin.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606100002_access_token_is_admin.sql rename to internal/db/migrator/goose/sqlite/202606100002_access_token_is_admin.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606110001_remove_access_token_last_used_at.sql b/internal/db/migrator/goose/sqlite/202606110001_remove_access_token_last_used_at.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606110001_remove_access_token_last_used_at.sql rename to internal/db/migrator/goose/sqlite/202606110001_remove_access_token_last_used_at.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606110002_alter_schedules_id_auto_increment.sql b/internal/db/migrator/goose/sqlite/202606110002_alter_schedules_id_auto_increment.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606110002_alter_schedules_id_auto_increment.sql rename to internal/db/migrator/goose/sqlite/202606110002_alter_schedules_id_auto_increment.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606110003_rename_tables_to_w_prefix.sql b/internal/db/migrator/goose/sqlite/202606110003_rename_tables_to_w_prefix.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606110003_rename_tables_to_w_prefix.sql rename to internal/db/migrator/goose/sqlite/202606110003_rename_tables_to_w_prefix.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606110004_add_file_access_whitelist_config.sql b/internal/db/migrator/goose/sqlite/202606110004_add_file_access_whitelist_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606110004_add_file_access_whitelist_config.sql rename to internal/db/migrator/goose/sqlite/202606110004_add_file_access_whitelist_config.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606110005_add_disk_cache_configs.sql b/internal/db/migrator/goose/sqlite/202606110005_add_disk_cache_configs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606110005_add_disk_cache_configs.sql rename to internal/db/migrator/goose/sqlite/202606110005_add_disk_cache_configs.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606120001_add_login_session_ttl_config.sql b/internal/db/migrator/goose/sqlite/202606120001_add_login_session_ttl_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606120001_add_login_session_ttl_config.sql rename to internal/db/migrator/goose/sqlite/202606120001_add_login_session_ttl_config.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606120002_add_update_upstream_repository_config.sql b/internal/db/migrator/goose/sqlite/202606120002_add_update_upstream_repository_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606120002_add_update_upstream_repository_config.sql rename to internal/db/migrator/goose/sqlite/202606120002_add_update_upstream_repository_config.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606130001_add_upload_access_mode.sql b/internal/db/migrator/goose/sqlite/202606130001_add_upload_access_mode.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606130001_add_upload_access_mode.sql rename to internal/db/migrator/goose/sqlite/202606130001_add_upload_access_mode.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606130002_expand_system_config_value.sql b/internal/db/migrator/goose/sqlite/202606130002_expand_system_config_value.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606130002_expand_system_config_value.sql rename to internal/db/migrator/goose/sqlite/202606130002_expand_system_config_value.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606130003_add_storage_config.sql b/internal/db/migrator/goose/sqlite/202606130003_add_storage_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606130003_add_storage_config.sql rename to internal/db/migrator/goose/sqlite/202606130003_add_storage_config.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606140001_create_push_tables.sql b/internal/db/migrator/goose/sqlite/202606140001_create_push_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606140001_create_push_tables.sql rename to internal/db/migrator/goose/sqlite/202606140001_create_push_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606140003_add_system_user.sql b/internal/db/migrator/goose/sqlite/202606140003_add_system_user.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606140003_add_system_user.sql rename to internal/db/migrator/goose/sqlite/202606140003_add_system_user.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606140004_create_push_channels.sql b/internal/db/migrator/goose/sqlite/202606140004_create_push_channels.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606140004_create_push_channels.sql rename to internal/db/migrator/goose/sqlite/202606140004_create_push_channels.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606140005_update_system_cleanup_schedule.sql b/internal/db/migrator/goose/sqlite/202606140005_update_system_cleanup_schedule.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606140005_update_system_cleanup_schedule.sql rename to internal/db/migrator/goose/sqlite/202606140005_update_system_cleanup_schedule.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606150001_add_task_type_to_push_events.sql b/internal/db/migrator/goose/sqlite/202606150001_add_task_type_to_push_events.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606150001_add_task_type_to_push_events.sql rename to internal/db/migrator/goose/sqlite/202606150001_add_task_type_to_push_events.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606160001_remove_push_config.sql b/internal/db/migrator/goose/sqlite/202606160001_remove_push_config.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606160001_remove_push_config.sql rename to internal/db/migrator/goose/sqlite/202606160001_remove_push_config.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606170001_add_upload_composite_indexes.sql b/internal/db/migrator/goose/sqlite/202606170001_add_upload_composite_indexes.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606170001_add_upload_composite_indexes.sql rename to internal/db/migrator/goose/sqlite/202606170001_add_upload_composite_indexes.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606170002_create_upload_stats_table.sql b/internal/db/migrator/goose/sqlite/202606170002_create_upload_stats_table.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606170002_create_upload_stats_table.sql rename to internal/db/migrator/goose/sqlite/202606170002_create_upload_stats_table.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606170003_backfill_upload_stats.sql b/internal/db/migrator/goose/sqlite/202606170003_backfill_upload_stats.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606170003_backfill_upload_stats.sql rename to internal/db/migrator/goose/sqlite/202606170003_backfill_upload_stats.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606180001_drop_upload_storage_driver.sql b/internal/db/migrator/goose/sqlite/202606180001_drop_upload_storage_driver.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606180001_drop_upload_storage_driver.sql rename to internal/db/migrator/goose/sqlite/202606180001_drop_upload_storage_driver.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190001_create_of_options.sql b/internal/db/migrator/goose/sqlite/202606190001_create_of_options.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190001_create_of_options.sql rename to internal/db/migrator/goose/sqlite/202606190001_create_of_options.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190002_create_of_origins.sql b/internal/db/migrator/goose/sqlite/202606190002_create_of_origins.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190002_create_of_origins.sql rename to internal/db/migrator/goose/sqlite/202606190002_create_of_origins.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190003_create_of_apply_logs.sql b/internal/db/migrator/goose/sqlite/202606190003_create_of_apply_logs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190003_create_of_apply_logs.sql rename to internal/db/migrator/goose/sqlite/202606190003_create_of_apply_logs.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190004_create_of_proxy_routes.sql b/internal/db/migrator/goose/sqlite/202606190004_create_of_proxy_routes.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190004_create_of_proxy_routes.sql rename to internal/db/migrator/goose/sqlite/202606190004_create_of_proxy_routes.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190005_create_of_nodes.sql b/internal/db/migrator/goose/sqlite/202606190005_create_of_nodes.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190005_create_of_nodes.sql rename to internal/db/migrator/goose/sqlite/202606190005_create_of_nodes.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190006_create_of_waf_tables.sql b/internal/db/migrator/goose/sqlite/202606190006_create_of_waf_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190006_create_of_waf_tables.sql rename to internal/db/migrator/goose/sqlite/202606190006_create_of_waf_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190007_create_of_tls_tables.sql b/internal/db/migrator/goose/sqlite/202606190007_create_of_tls_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190007_create_of_tls_tables.sql rename to internal/db/migrator/goose/sqlite/202606190007_create_of_tls_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190008_create_of_config_versions.sql b/internal/db/migrator/goose/sqlite/202606190008_create_of_config_versions.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190008_create_of_config_versions.sql rename to internal/db/migrator/goose/sqlite/202606190008_create_of_config_versions.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190009_create_of_pages_tables.sql b/internal/db/migrator/goose/sqlite/202606190009_create_of_pages_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190009_create_of_pages_tables.sql rename to internal/db/migrator/goose/sqlite/202606190009_create_of_pages_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190010_create_of_observability_tables.sql b/internal/db/migrator/goose/sqlite/202606190010_create_of_observability_tables.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190010_create_of_observability_tables.sql rename to internal/db/migrator/goose/sqlite/202606190010_create_of_observability_tables.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190011_add_of_node_access_logs_composite_index.sql b/internal/db/migrator/goose/sqlite/202606190011_add_of_node_access_logs_composite_index.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190011_add_of_node_access_logs_composite_index.sql rename to internal/db/migrator/goose/sqlite/202606190011_add_of_node_access_logs_composite_index.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190012_create_of_node_obs_frpc.sql b/internal/db/migrator/goose/sqlite/202606190012_create_of_node_obs_frpc.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190012_create_of_node_obs_frpc.sql rename to internal/db/migrator/goose/sqlite/202606190012_create_of_node_obs_frpc.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190013_seed_openflare_schedules.sql b/internal/db/migrator/goose/sqlite/202606190013_seed_openflare_schedules.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190013_seed_openflare_schedules.sql rename to internal/db/migrator/goose/sqlite/202606190013_seed_openflare_schedules.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606190014_add_pages_deployment_upload_id.sql b/internal/db/migrator/goose/sqlite/202606190014_add_pages_deployment_upload_id.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606190014_add_pages_deployment_upload_id.sql rename to internal/db/migrator/goose/sqlite/202606190014_add_pages_deployment_upload_id.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606200001_rebrand_openflare_defaults.sql b/internal/db/migrator/goose/sqlite/202606200001_rebrand_openflare_defaults.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606200001_rebrand_openflare_defaults.sql rename to internal/db/migrator/goose/sqlite/202606200001_rebrand_openflare_defaults.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606200002_update_security_defaults.sql b/internal/db/migrator/goose/sqlite/202606200002_update_security_defaults.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606200002_update_security_defaults.sql rename to internal/db/migrator/goose/sqlite/202606200002_update_security_defaults.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606200003_remove_legacy_rate_limit_options.sql b/internal/db/migrator/goose/sqlite/202606200003_remove_legacy_rate_limit_options.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606200003_remove_legacy_rate_limit_options.sql rename to internal/db/migrator/goose/sqlite/202606200003_remove_legacy_rate_limit_options.sql diff --git a/openflare-server/internal/db/migrator/goose/sqlite/202606200004_drop_of_node_access_logs.sql b/internal/db/migrator/goose/sqlite/202606200004_drop_of_node_access_logs.sql similarity index 100% rename from openflare-server/internal/db/migrator/goose/sqlite/202606200004_drop_of_node_access_logs.sql rename to internal/db/migrator/goose/sqlite/202606200004_drop_of_node_access_logs.sql diff --git a/openflare-server/internal/db/migrator/migrator.go b/internal/db/migrator/migrator.go similarity index 100% rename from openflare-server/internal/db/migrator/migrator.go rename to internal/db/migrator/migrator.go diff --git a/openflare-server/internal/db/migrator/migrator_test.go b/internal/db/migrator/migrator_test.go similarity index 100% rename from openflare-server/internal/db/migrator/migrator_test.go rename to internal/db/migrator/migrator_test.go diff --git a/openflare-server/internal/db/postgres.go b/internal/db/postgres.go similarity index 100% rename from openflare-server/internal/db/postgres.go rename to internal/db/postgres.go diff --git a/openflare-server/internal/db/postgres_logger.go b/internal/db/postgres_logger.go similarity index 100% rename from openflare-server/internal/db/postgres_logger.go rename to internal/db/postgres_logger.go diff --git a/openflare-server/internal/db/redis.go b/internal/db/redis.go similarity index 100% rename from openflare-server/internal/db/redis.go rename to internal/db/redis.go diff --git a/openflare-server/internal/diskcache/cache.go b/internal/diskcache/cache.go similarity index 100% rename from openflare-server/internal/diskcache/cache.go rename to internal/diskcache/cache.go diff --git a/openflare-server/internal/diskcache/cache_test.go b/internal/diskcache/cache_test.go similarity index 100% rename from openflare-server/internal/diskcache/cache_test.go rename to internal/diskcache/cache_test.go diff --git a/openflare-server/internal/listener/admin_login.go b/internal/listener/admin_login.go similarity index 100% rename from openflare-server/internal/listener/admin_login.go rename to internal/listener/admin_login.go diff --git a/openflare-server/internal/model/access_token.go b/internal/model/access_token.go similarity index 100% rename from openflare-server/internal/model/access_token.go rename to internal/model/access_token.go diff --git a/openflare-server/internal/model/analytics/node_access_log.go b/internal/model/analytics/node_access_log.go similarity index 100% rename from openflare-server/internal/model/analytics/node_access_log.go rename to internal/model/analytics/node_access_log.go diff --git a/openflare-server/internal/model/analytics/user_access_log.go b/internal/model/analytics/user_access_log.go similarity index 100% rename from openflare-server/internal/model/analytics/user_access_log.go rename to internal/model/analytics/user_access_log.go diff --git a/openflare-server/internal/model/auth_source.go b/internal/model/auth_source.go similarity index 100% rename from openflare-server/internal/model/auth_source.go rename to internal/model/auth_source.go diff --git a/openflare-server/internal/model/errs.go b/internal/model/errs.go similarity index 100% rename from openflare-server/internal/model/errs.go rename to internal/model/errs.go diff --git a/openflare-server/internal/model/openflare_access_log.go b/internal/model/openflare_access_log.go similarity index 100% rename from openflare-server/internal/model/openflare_access_log.go rename to internal/model/openflare_access_log.go diff --git a/openflare-server/internal/model/openflare_access_log_store.go b/internal/model/openflare_access_log_store.go similarity index 100% rename from openflare-server/internal/model/openflare_access_log_store.go rename to internal/model/openflare_access_log_store.go diff --git a/openflare-server/internal/model/openflare_access_log_store_memory.go b/internal/model/openflare_access_log_store_memory.go similarity index 100% rename from openflare-server/internal/model/openflare_access_log_store_memory.go rename to internal/model/openflare_access_log_store_memory.go diff --git a/openflare-server/internal/model/openflare_access_log_test.go b/internal/model/openflare_access_log_test.go similarity index 100% rename from openflare-server/internal/model/openflare_access_log_test.go rename to internal/model/openflare_access_log_test.go diff --git a/openflare-server/internal/model/openflare_acme_account.go b/internal/model/openflare_acme_account.go similarity index 100% rename from openflare-server/internal/model/openflare_acme_account.go rename to internal/model/openflare_acme_account.go diff --git a/openflare-server/internal/model/openflare_apply_log.go b/internal/model/openflare_apply_log.go similarity index 100% rename from openflare-server/internal/model/openflare_apply_log.go rename to internal/model/openflare_apply_log.go diff --git a/openflare-server/internal/model/openflare_config_version.go b/internal/model/openflare_config_version.go similarity index 100% rename from openflare-server/internal/model/openflare_config_version.go rename to internal/model/openflare_config_version.go diff --git a/openflare-server/internal/model/openflare_dns_account.go b/internal/model/openflare_dns_account.go similarity index 100% rename from openflare-server/internal/model/openflare_dns_account.go rename to internal/model/openflare_dns_account.go diff --git a/openflare-server/internal/model/openflare_managed_domain.go b/internal/model/openflare_managed_domain.go similarity index 100% rename from openflare-server/internal/model/openflare_managed_domain.go rename to internal/model/openflare_managed_domain.go diff --git a/openflare-server/internal/model/openflare_node.go b/internal/model/openflare_node.go similarity index 100% rename from openflare-server/internal/model/openflare_node.go rename to internal/model/openflare_node.go diff --git a/openflare-server/internal/model/openflare_observability.go b/internal/model/openflare_observability.go similarity index 100% rename from openflare-server/internal/model/openflare_observability.go rename to internal/model/openflare_observability.go diff --git a/openflare-server/internal/model/openflare_option.go b/internal/model/openflare_option.go similarity index 100% rename from openflare-server/internal/model/openflare_option.go rename to internal/model/openflare_option.go diff --git a/openflare-server/internal/model/openflare_origin.go b/internal/model/openflare_origin.go similarity index 100% rename from openflare-server/internal/model/openflare_origin.go rename to internal/model/openflare_origin.go diff --git a/openflare-server/internal/model/openflare_pages.go b/internal/model/openflare_pages.go similarity index 100% rename from openflare-server/internal/model/openflare_pages.go rename to internal/model/openflare_pages.go diff --git a/openflare-server/internal/model/openflare_proxy_route.go b/internal/model/openflare_proxy_route.go similarity index 100% rename from openflare-server/internal/model/openflare_proxy_route.go rename to internal/model/openflare_proxy_route.go diff --git a/openflare-server/internal/model/openflare_tls.go b/internal/model/openflare_tls.go similarity index 100% rename from openflare-server/internal/model/openflare_tls.go rename to internal/model/openflare_tls.go diff --git a/openflare-server/internal/model/openflare_waf.go b/internal/model/openflare_waf.go similarity index 100% rename from openflare-server/internal/model/openflare_waf.go rename to internal/model/openflare_waf.go diff --git a/openflare-server/internal/model/push_channel.go b/internal/model/push_channel.go similarity index 100% rename from openflare-server/internal/model/push_channel.go rename to internal/model/push_channel.go diff --git a/openflare-server/internal/model/push_event.go b/internal/model/push_event.go similarity index 100% rename from openflare-server/internal/model/push_event.go rename to internal/model/push_event.go diff --git a/openflare-server/internal/model/push_history.go b/internal/model/push_history.go similarity index 100% rename from openflare-server/internal/model/push_history.go rename to internal/model/push_history.go diff --git a/openflare-server/internal/model/schedule.go b/internal/model/schedule.go similarity index 100% rename from openflare-server/internal/model/schedule.go rename to internal/model/schedule.go diff --git a/openflare-server/internal/model/system_configs.go b/internal/model/system_configs.go similarity index 100% rename from openflare-server/internal/model/system_configs.go rename to internal/model/system_configs.go diff --git a/openflare-server/internal/model/task_execution.go b/internal/model/task_execution.go similarity index 100% rename from openflare-server/internal/model/task_execution.go rename to internal/model/task_execution.go diff --git a/openflare-server/internal/model/task_execution_test.go b/internal/model/task_execution_test.go similarity index 100% rename from openflare-server/internal/model/task_execution_test.go rename to internal/model/task_execution_test.go diff --git a/openflare-server/internal/model/templates.go b/internal/model/templates.go similarity index 100% rename from openflare-server/internal/model/templates.go rename to internal/model/templates.go diff --git a/openflare-server/internal/model/upload_stats.go b/internal/model/upload_stats.go similarity index 100% rename from openflare-server/internal/model/upload_stats.go rename to internal/model/upload_stats.go diff --git a/openflare-server/internal/model/uploads.go b/internal/model/uploads.go similarity index 100% rename from openflare-server/internal/model/uploads.go rename to internal/model/uploads.go diff --git a/openflare-server/internal/model/users.go b/internal/model/users.go similarity index 100% rename from openflare-server/internal/model/users.go rename to internal/model/users.go diff --git a/openflare-server/internal/repository/analytics/access_log.go b/internal/repository/analytics/access_log.go similarity index 100% rename from openflare-server/internal/repository/analytics/access_log.go rename to internal/repository/analytics/access_log.go diff --git a/openflare-server/internal/repository/analytics/access_log_filter.go b/internal/repository/analytics/access_log_filter.go similarity index 100% rename from openflare-server/internal/repository/analytics/access_log_filter.go rename to internal/repository/analytics/access_log_filter.go diff --git a/openflare-server/internal/repository/analytics/access_log_stats.go b/internal/repository/analytics/access_log_stats.go similarity index 100% rename from openflare-server/internal/repository/analytics/access_log_stats.go rename to internal/repository/analytics/access_log_stats.go diff --git a/openflare-server/internal/repository/analytics/access_log_test.go b/internal/repository/analytics/access_log_test.go similarity index 100% rename from openflare-server/internal/repository/analytics/access_log_test.go rename to internal/repository/analytics/access_log_test.go diff --git a/openflare-server/internal/repository/analytics/access_log_writer.go b/internal/repository/analytics/access_log_writer.go similarity index 100% rename from openflare-server/internal/repository/analytics/access_log_writer.go rename to internal/repository/analytics/access_log_writer.go diff --git a/openflare-server/internal/repository/analytics/browser.go b/internal/repository/analytics/browser.go similarity index 100% rename from openflare-server/internal/repository/analytics/browser.go rename to internal/repository/analytics/browser.go diff --git a/openflare-server/internal/repository/analytics/node_access_log.go b/internal/repository/analytics/node_access_log.go similarity index 100% rename from openflare-server/internal/repository/analytics/node_access_log.go rename to internal/repository/analytics/node_access_log.go diff --git a/openflare-server/internal/repository/analytics/node_access_log_delete.go b/internal/repository/analytics/node_access_log_delete.go similarity index 100% rename from openflare-server/internal/repository/analytics/node_access_log_delete.go rename to internal/repository/analytics/node_access_log_delete.go diff --git a/openflare-server/internal/repository/analytics/node_access_log_filter.go b/internal/repository/analytics/node_access_log_filter.go similarity index 100% rename from openflare-server/internal/repository/analytics/node_access_log_filter.go rename to internal/repository/analytics/node_access_log_filter.go diff --git a/openflare-server/internal/repository/analytics/node_access_log_stats.go b/internal/repository/analytics/node_access_log_stats.go similarity index 100% rename from openflare-server/internal/repository/analytics/node_access_log_stats.go rename to internal/repository/analytics/node_access_log_stats.go diff --git a/openflare-server/internal/repository/analytics/node_access_log_test.go b/internal/repository/analytics/node_access_log_test.go similarity index 100% rename from openflare-server/internal/repository/analytics/node_access_log_test.go rename to internal/repository/analytics/node_access_log_test.go diff --git a/openflare-server/internal/repository/analytics/node_access_log_writer.go b/internal/repository/analytics/node_access_log_writer.go similarity index 100% rename from openflare-server/internal/repository/analytics/node_access_log_writer.go rename to internal/repository/analytics/node_access_log_writer.go diff --git a/openflare-server/internal/repository/push_channel.go b/internal/repository/push_channel.go similarity index 100% rename from openflare-server/internal/repository/push_channel.go rename to internal/repository/push_channel.go diff --git a/openflare-server/internal/repository/push_event.go b/internal/repository/push_event.go similarity index 100% rename from openflare-server/internal/repository/push_event.go rename to internal/repository/push_event.go diff --git a/openflare-server/internal/repository/push_history.go b/internal/repository/push_history.go similarity index 100% rename from openflare-server/internal/repository/push_history.go rename to internal/repository/push_history.go diff --git a/openflare-server/internal/repository/system_config.go b/internal/repository/system_config.go similarity index 100% rename from openflare-server/internal/repository/system_config.go rename to internal/repository/system_config.go diff --git a/openflare-server/internal/repository/system_config_admin.go b/internal/repository/system_config_admin.go similarity index 100% rename from openflare-server/internal/repository/system_config_admin.go rename to internal/repository/system_config_admin.go diff --git a/openflare-server/internal/repository/system_config_cache.go b/internal/repository/system_config_cache.go similarity index 100% rename from openflare-server/internal/repository/system_config_cache.go rename to internal/repository/system_config_cache.go diff --git a/openflare-server/internal/repository/template.go b/internal/repository/template.go similarity index 100% rename from openflare-server/internal/repository/template.go rename to internal/repository/template.go diff --git a/openflare-server/internal/repository/upload.go b/internal/repository/upload.go similarity index 100% rename from openflare-server/internal/repository/upload.go rename to internal/repository/upload.go diff --git a/openflare-server/internal/repository/upload_stat.go b/internal/repository/upload_stat.go similarity index 100% rename from openflare-server/internal/repository/upload_stat.go rename to internal/repository/upload_stat.go diff --git a/openflare-server/internal/repository/user.go b/internal/repository/user.go similarity index 100% rename from openflare-server/internal/repository/user.go rename to internal/repository/user.go diff --git a/openflare-server/internal/router/middlewares.go b/internal/router/middlewares.go similarity index 100% rename from openflare-server/internal/router/middlewares.go rename to internal/router/middlewares.go diff --git a/openflare-server/internal/router/middlewares_test.go b/internal/router/middlewares_test.go similarity index 100% rename from openflare-server/internal/router/middlewares_test.go rename to internal/router/middlewares_test.go diff --git a/openflare-server/internal/router/root/custom.go b/internal/router/root/custom.go similarity index 100% rename from openflare-server/internal/router/root/custom.go rename to internal/router/root/custom.go diff --git a/openflare-server/internal/router/root/default.go b/internal/router/root/default.go similarity index 100% rename from openflare-server/internal/router/root/default.go rename to internal/router/root/default.go diff --git a/openflare-server/internal/router/root/frontend.go b/internal/router/root/frontend.go similarity index 100% rename from openflare-server/internal/router/root/frontend.go rename to internal/router/root/frontend.go diff --git a/openflare-server/internal/router/root/root.go b/internal/router/root/root.go similarity index 100% rename from openflare-server/internal/router/root/root.go rename to internal/router/root/root.go diff --git a/openflare-server/internal/router/router.go b/internal/router/router.go similarity index 100% rename from openflare-server/internal/router/router.go rename to internal/router/router.go diff --git a/openflare-server/internal/router/v1/admin.go b/internal/router/v1/admin.go similarity index 100% rename from openflare-server/internal/router/v1/admin.go rename to internal/router/v1/admin.go diff --git a/openflare-server/internal/router/v1/custom.go b/internal/router/v1/custom.go similarity index 100% rename from openflare-server/internal/router/v1/custom.go rename to internal/router/v1/custom.go diff --git a/openflare-server/internal/router/v1/openflare/openflare.go b/internal/router/v1/openflare/openflare.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/openflare.go rename to internal/router/v1/openflare/openflare.go diff --git a/openflare-server/internal/router/v1/openflare/register_agent.go b/internal/router/v1/openflare/register_agent.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_agent.go rename to internal/router/v1/openflare/register_agent.go diff --git a/openflare-server/internal/router/v1/openflare/register_apply_log.go b/internal/router/v1/openflare/register_apply_log.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_apply_log.go rename to internal/router/v1/openflare/register_apply_log.go diff --git a/openflare-server/internal/router/v1/openflare/register_config_version.go b/internal/router/v1/openflare/register_config_version.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_config_version.go rename to internal/router/v1/openflare/register_config_version.go diff --git a/openflare-server/internal/router/v1/openflare/register_dashboard.go b/internal/router/v1/openflare/register_dashboard.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_dashboard.go rename to internal/router/v1/openflare/register_dashboard.go diff --git a/openflare-server/internal/router/v1/openflare/register_node.go b/internal/router/v1/openflare/register_node.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_node.go rename to internal/router/v1/openflare/register_node.go diff --git a/openflare-server/internal/router/v1/openflare/register_observability.go b/internal/router/v1/openflare/register_observability.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_observability.go rename to internal/router/v1/openflare/register_observability.go diff --git a/openflare-server/internal/router/v1/openflare/register_option.go b/internal/router/v1/openflare/register_option.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_option.go rename to internal/router/v1/openflare/register_option.go diff --git a/openflare-server/internal/router/v1/openflare/register_origin.go b/internal/router/v1/openflare/register_origin.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_origin.go rename to internal/router/v1/openflare/register_origin.go diff --git a/openflare-server/internal/router/v1/openflare/register_pages.go b/internal/router/v1/openflare/register_pages.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_pages.go rename to internal/router/v1/openflare/register_pages.go diff --git a/openflare-server/internal/router/v1/openflare/register_proxy_route.go b/internal/router/v1/openflare/register_proxy_route.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_proxy_route.go rename to internal/router/v1/openflare/register_proxy_route.go diff --git a/openflare-server/internal/router/v1/openflare/register_relay_flared.go b/internal/router/v1/openflare/register_relay_flared.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_relay_flared.go rename to internal/router/v1/openflare/register_relay_flared.go diff --git a/openflare-server/internal/router/v1/openflare/register_tls.go b/internal/router/v1/openflare/register_tls.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_tls.go rename to internal/router/v1/openflare/register_tls.go diff --git a/openflare-server/internal/router/v1/openflare/register_waf.go b/internal/router/v1/openflare/register_waf.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/register_waf.go rename to internal/router/v1/openflare/register_waf.go diff --git a/openflare-server/internal/router/v1/openflare/v1.go b/internal/router/v1/openflare/v1.go similarity index 100% rename from openflare-server/internal/router/v1/openflare/v1.go rename to internal/router/v1/openflare/v1.go diff --git a/openflare-server/internal/router/v1/user.go b/internal/router/v1/user.go similarity index 100% rename from openflare-server/internal/router/v1/user.go rename to internal/router/v1/user.go diff --git a/openflare-server/internal/router/v1/v1.go b/internal/router/v1/v1.go similarity index 100% rename from openflare-server/internal/router/v1/v1.go rename to internal/router/v1/v1.go diff --git a/openflare-server/internal/storage/config.go b/internal/storage/config.go similarity index 100% rename from openflare-server/internal/storage/config.go rename to internal/storage/config.go diff --git a/openflare-server/internal/storage/http.go b/internal/storage/http.go similarity index 100% rename from openflare-server/internal/storage/http.go rename to internal/storage/http.go diff --git a/openflare-server/internal/storage/local.go b/internal/storage/local.go similarity index 100% rename from openflare-server/internal/storage/local.go rename to internal/storage/local.go diff --git a/openflare-server/internal/storage/local_test.go b/internal/storage/local_test.go similarity index 100% rename from openflare-server/internal/storage/local_test.go rename to internal/storage/local_test.go diff --git a/openflare-server/internal/storage/oss.go b/internal/storage/oss.go similarity index 100% rename from openflare-server/internal/storage/oss.go rename to internal/storage/oss.go diff --git a/openflare-server/internal/storage/s3.go b/internal/storage/s3.go similarity index 100% rename from openflare-server/internal/storage/s3.go rename to internal/storage/s3.go diff --git a/openflare-server/internal/storage/storage.go b/internal/storage/storage.go similarity index 100% rename from openflare-server/internal/storage/storage.go rename to internal/storage/storage.go diff --git a/openflare-server/internal/storage/storage_test.go b/internal/storage/storage_test.go similarity index 100% rename from openflare-server/internal/storage/storage_test.go rename to internal/storage/storage_test.go diff --git a/openflare-server/internal/storage/webdav.go b/internal/storage/webdav.go similarity index 100% rename from openflare-server/internal/storage/webdav.go rename to internal/storage/webdav.go diff --git a/openflare-server/internal/task/constants.go b/internal/task/constants.go similarity index 100% rename from openflare-server/internal/task/constants.go rename to internal/task/constants.go diff --git a/openflare-server/internal/task/errs.go b/internal/task/errs.go similarity index 100% rename from openflare-server/internal/task/errs.go rename to internal/task/errs.go diff --git a/openflare-server/internal/task/executor.go b/internal/task/executor.go similarity index 100% rename from openflare-server/internal/task/executor.go rename to internal/task/executor.go diff --git a/openflare-server/internal/task/executor_test.go b/internal/task/executor_test.go similarity index 100% rename from openflare-server/internal/task/executor_test.go rename to internal/task/executor_test.go diff --git a/openflare-server/internal/task/handler.go b/internal/task/handler.go similarity index 100% rename from openflare-server/internal/task/handler.go rename to internal/task/handler.go diff --git a/openflare-server/internal/task/handlers/register.go b/internal/task/handlers/register.go similarity index 100% rename from openflare-server/internal/task/handlers/register.go rename to internal/task/handlers/register.go diff --git a/openflare-server/internal/task/meta.go b/internal/task/meta.go similarity index 100% rename from openflare-server/internal/task/meta.go rename to internal/task/meta.go diff --git a/openflare-server/internal/task/meta_test.go b/internal/task/meta_test.go similarity index 100% rename from openflare-server/internal/task/meta_test.go rename to internal/task/meta_test.go diff --git a/openflare-server/internal/task/scheduler/errs.go b/internal/task/scheduler/errs.go similarity index 100% rename from openflare-server/internal/task/scheduler/errs.go rename to internal/task/scheduler/errs.go diff --git a/openflare-server/internal/task/scheduler/scheduler.go b/internal/task/scheduler/scheduler.go similarity index 100% rename from openflare-server/internal/task/scheduler/scheduler.go rename to internal/task/scheduler/scheduler.go diff --git a/openflare-server/internal/task/scheduler/scheduler_test.go b/internal/task/scheduler/scheduler_test.go similarity index 100% rename from openflare-server/internal/task/scheduler/scheduler_test.go rename to internal/task/scheduler/scheduler_test.go diff --git a/openflare-server/internal/task/utils.go b/internal/task/utils.go similarity index 100% rename from openflare-server/internal/task/utils.go rename to internal/task/utils.go diff --git a/openflare-server/internal/task/worker/middlewares.go b/internal/task/worker/middlewares.go similarity index 100% rename from openflare-server/internal/task/worker/middlewares.go rename to internal/task/worker/middlewares.go diff --git a/openflare-server/internal/task/worker/worker.go b/internal/task/worker/worker.go similarity index 100% rename from openflare-server/internal/task/worker/worker.go rename to internal/task/worker/worker.go diff --git a/openflare-server/internal/testhelper/cleanup.go b/internal/testhelper/cleanup.go similarity index 100% rename from openflare-server/internal/testhelper/cleanup.go rename to internal/testhelper/cleanup.go diff --git a/openflare-server/internal/testhelper/gin.go b/internal/testhelper/gin.go similarity index 100% rename from openflare-server/internal/testhelper/gin.go rename to internal/testhelper/gin.go diff --git a/openflare-server/internal/testhelper/test_helper.go b/internal/testhelper/test_helper.go similarity index 100% rename from openflare-server/internal/testhelper/test_helper.go rename to internal/testhelper/test_helper.go diff --git a/openflare-server/internal/util/custom_types.go b/internal/util/custom_types.go similarity index 100% rename from openflare-server/internal/util/custom_types.go rename to internal/util/custom_types.go diff --git a/openflare-server/internal/util/errs.go b/internal/util/errs.go similarity index 100% rename from openflare-server/internal/util/errs.go rename to internal/util/errs.go diff --git a/openflare-server/internal/util/http_clients.go b/internal/util/http_clients.go similarity index 100% rename from openflare-server/internal/util/http_clients.go rename to internal/util/http_clients.go diff --git a/openflare-server/main.go b/main.go similarity index 100% rename from openflare-server/main.go rename to main.go diff --git a/openflare-server/.dockerignore b/openflare-server/.dockerignore deleted file mode 100644 index 65420584..00000000 --- a/openflare-server/.dockerignore +++ /dev/null @@ -1,30 +0,0 @@ -.git -.idea -.vscode -.DS_Store -Thumbs.db - -config.yaml -.env -.env.* - -bin/ -build/ -dist/ -data/ -logs/ -uploads/ -s3_cache/ - -frontend/node_modules/ -frontend/.next/ -frontend/out/ -frontend/build/ -frontend/disk/ -frontend/.env -frontend/next-env.d.ts -frontend/*.tsbuildinfo -frontend/package-lock.json - -internal/router/dist/ -internal/router/root/dist/ diff --git a/openflare-server/.github/ISSUE_TEMPLATE/bug_report.yml b/openflare-server/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 1ff0c89a..00000000 --- a/openflare-server/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: 使用时的错误报告 -description: 某些事情不按照预期工作。 -title: "bug: " -labels: ["bug"] - -body: - - type: markdown - attributes: - value: | - 感谢您花时间填写此 Bug 报告! - - - **提交错误报告前**:请检查 [已有 Issues](https://github.com/Rain-kl/Wavelet/issues) 列表,了解是否有类似问题被报告。如果不确定,请进行搜索,这有助于我们高效地专注于改进项目。 - - type: checkboxes - id: issue-check - attributes: - label: 检查现有问题 - description: 确认您在提交新报告之前已经检查了现有报告。 - options: - - label: 我已经搜索了现有问题和讨论。 - required: true - - label: 我正在使用 wavelet 的最新版本或当前部署实例。 - required: true - - type: textarea - id: what-happened - attributes: - label: 发生了什么? - description: 请详细描述您正在进行的操作,您期待看到什么,实际发生了什么。 - placeholder: 请告诉我们您看到了什么! - validations: - required: true - - type: textarea - id: steps-to-reproduce - attributes: - label: 如何重现此 Bug? - description: 请提供详细的步骤来重现此 Bug。 - placeholder: | - 1. 在此环境中... - 2. 使用此配置... - 3. 运行 '...' - 4. 看到错误... - validations: - required: true - - type: dropdown - id: browsers - attributes: - label: 在哪些浏览器中出现问题? - multiple: true - options: - - Firefox - - Chrome - - Safari - - Microsoft Edge - - Other (请在“其他信息”中说明) - validations: - required: false - - type: textarea - id: other-info - attributes: - label: 任何其他信息 - description: 您有任何其他关于此报告的信息吗? - validations: - required: false - - type: checkboxes - id: confirmation - attributes: - label: 确认 - description: 确保已满足以下先决条件。 - options: - - label: 我已阅读并遵循了 `README.md` 中的所有说明。 - required: true - - label: 我正在使用 Rain-kl/Wavelet 的最新版本。 - required: true - - label: 我已提供我能够提供的尽可能多的相关日志,屏幕截图等。 - required: true - - label: | - 我已详细记录了精确、按顺序且无歧义的逐步重现说明。我的步骤: - - 从正在执行的操作开始, - - 指定进入了什么页面, - - 列出访问的 URL、用户输入(包括所需的示例值/电子邮件/密码), - - 描述所有已启用或更改的选项和开关, - - 包含任何可能的浏览器控制台日志, - - 识别每个阶段的预期和实际结果, - - 确保任何有合理技能的用户都可以遵循并遇到相同的问题。 - required: true - - type: markdown - attributes: - value: | - ## 注意 - 如果 Bug 报告不完整或不遵循说明,则可能不会得到处理。请确保您已遵循所有 **README.md** 指南,并提供所有必要信息以便我们重现该问题。 - 感谢您为 wavelet 做出贡献! diff --git a/openflare-server/.github/ISSUE_TEMPLATE/config.yml b/openflare-server/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index ec4bb386..00000000 --- a/openflare-server/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false \ No newline at end of file diff --git a/openflare-server/.github/ISSUE_TEMPLATE/feature_request.yml b/openflare-server/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index bd14554c..00000000 --- a/openflare-server/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: 新功能建议 -description: 请求新的功能或对现有功能进行改进。 -title: "feature: " -labels: ["enhancement"] - -body: - - type: markdown - attributes: - value: | - 感谢您花时间填写此功能请求! - - - **提交功能请求前**:请检查 [已有 Issues](https://github.com/Rain-kl/Wavelet/issues) 列表和讨论区,了解是否有类似功能已被讨论或请求。这有助于我们避免重复工作,并高效地专注于改进项目。 - - type: checkboxes - id: check-existing - attributes: - label: 检查现有问题和讨论 - description: 确认您在提交新请求之前已经检查了现有报告和讨论。 - options: - - label: 我已经搜索了现有问题和讨论。 - required: true - - label: 我正在使用 wavelet 的最新版本或当前部署实例。 - required: true - - type: textarea - id: feature-description - attributes: - label: 你希望添加什么功能或改进什么? - description: 请详细描述您希望添加的功能或进行的改进。 - placeholder: 我希望可以... - validations: - required: true - - type: textarea - id: why-needed - attributes: - label: 为什么需要此功能? - description: 请说明此功能解决了什么问题,或提供了什么价值。请提供具体的用例和场景,帮助我们理解其重要性。 - placeholder: | - 目前我遇到... - 如果有了此功能,我可以... - 这将为用户带来... - validations: - required: true - - type: textarea - id: proposed-solution - attributes: - label: 建议的解决方案(可选) - description: 如果您对如何实现此功能有任何想法,请在此处描述。这可以包括用户界面草图、API 设想、技术方案等。 - placeholder: | - 我设想此功能可以通过以下方式实现: - 1. ... - 2. ... - validations: - required: false - - type: textarea - id: other-info - attributes: - label: 任何其他信息 - description: 您有任何其他关于此报告的信息吗?例如,您目前如何解决这个问题,或者其他类似项目的实现方式等。 - validations: - required: false - - type: checkboxes - id: confirmation - attributes: - label: 确认 - description: 确保已满足以下先决条件。 - options: - - label: 我已阅读并遵循了 `README.md` 中的所有说明。 - required: true - - label: 我正在使用 Rain-kl/Wavelet 的最新版本。 - required: true - - label: 我已提供我能够提供的尽可能多的相关信息,包括用例和场景。 - required: true - - label: 我理解功能请求的实现取决于项目优先级和资源。 - required: true - - type: markdown - attributes: - value: | - ## 注意 - 如果功能请求不完整或不遵循说明,则可能不会得到处理。请确保您已提供所有必要信息以便我们理解您的建议。 - 感谢您为 wavelet 做出贡献! diff --git a/openflare-server/.github/copilot-instructions.md b/openflare-server/.github/copilot-instructions.md deleted file mode 100644 index 2e543a9c..00000000 --- a/openflare-server/.github/copilot-instructions.md +++ /dev/null @@ -1,31 +0,0 @@ -## 基础规范 - -- 在任何情况都使用简体中文 -- 你是一个专业的代码助手,专门为 wavelet 项目提供代码编写和优化服务 -- 严格遵循项目的代码规范和最佳实践,确保代码质量和一致性 -- 保持代码简洁、可读、高效 -- 优先考虑项目的可维护性、性能和安全性,避免引入不必要的复杂性 -- 注释和上一行代码之间保留一行空格 -- 编写代码前仔细分析需求,确保改动有实际价值和意义 -- 避免仅修改格式、注释或无影响力的拼写错误 -- 重构代码时必须带来可维护性或功能上的实质提升 -- 新增功能时考虑向后兼容性和 API 稳定性 -- 遵循项目的 Apache2.0 许可证要求 -- 遵循语义化版本控制规范 -- 新增异步任务时使用项目技能 `.agent/new-async-task/SKILL.md` - -## 后端规范 - -- 后端开发使用 Go 语言,所有接口需要符合 Restful 风格 -- 数据库使用 PostgreSQL 作为主存储,Redis 作为缓存和会话存储 -- Go 代码遵循 gofmt 标准格式,使用 snake_case 命名数据库字段 -- 所有 API 接口必须编写完整的 Swagger 文档 -- API 响应格式统一为 {"error_msg": "", "data": {}} 结构 -- 分页数据返回 {"error_msg": "", "data": {"total": 0, "results": []}} 格式 -- 数据库设计禁止使用外键,但必须保留对应字段的索引 - -## 前端规范 - -- TypeScript 代码严禁使用 any 类型,优先使用 unknown 进行类型安全处理 -- 组件按功能分类:公共组件放在 components/common,UI 组件放在 components/ui -- 自定义图标统一放置在 components/icons 目录,常规图标使用 Lucide 库 diff --git a/openflare-server/.github/git-commit-instructions.md b/openflare-server/.github/git-commit-instructions.md deleted file mode 100644 index d8cf4949..00000000 --- a/openflare-server/.github/git-commit-instructions.md +++ /dev/null @@ -1,3 +0,0 @@ -- 如果有其他代码文件,忽略 Swagger 变更和版本号变更,只需要关注其他代码文件的变更 -- 需要符合 Github 的提交规范,使用 (): 格式 -- Commit Message 必须有 Scope 信息 \ No newline at end of file diff --git a/openflare-server/.github/pull_request_template.md b/openflare-server/.github/pull_request_template.md deleted file mode 100644 index 3c3dcd8f..00000000 --- a/openflare-server/.github/pull_request_template.md +++ /dev/null @@ -1,25 +0,0 @@ -**例行检查** - - - -- [ ] 我已阅读并理解 [贡献者公约](https://github.com/Rain-kl/Wavelet/blob/main/CODE_OF_CONDUCT.md) -- [ ] 我已阅读并同意 [贡献者许可协议 (CLA)](https://github.com/Rain-kl/Wavelet/blob/main/CLA.md),确认我的贡献将根据项目的 Apache2.0 许可证进行许可 -- [ ] 我知晓如果此 PR 并不做出实质性更改,或可被认为是*为了PR被合并而提交PR*的,则可能不会被合并 - -**关联信息** - - - - - -**变更内容** - - - -**变更原因** - - diff --git a/openflare-server/.github/workflows/build-image.yml b/openflare-server/.github/workflows/build-image.yml deleted file mode 100644 index e013df1c..00000000 --- a/openflare-server/.github/workflows/build-image.yml +++ /dev/null @@ -1,199 +0,0 @@ -name: Build Image - -on: - workflow_dispatch: - inputs: - version: - description: "Image version/tag to publish, for example v1.0.0-beta" - required: false - type: string - push: - tags: ["v*"] - -permissions: - contents: read - packages: write - attestations: write - id-token: write - -jobs: - build: - name: Build (${{ matrix.arch }}) - strategy: - fail-fast: false - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: arm64 - platform: linux/arm64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-tags: true - fetch-depth: 0 - persist-credentials: false - - - name: Set image metadata - shell: bash - env: - INPUT_VERSION: ${{ github.event.inputs.version }} - run: | - POINTED_TAG="$(git tag --points-at HEAD --list 'v*' | sort -V | tail -n1)" - INPUT_VERSION="${INPUT_VERSION//[[:space:]]/}" - - echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY,,}" >> "$GITHUB_ENV" - if [[ "${GITHUB_REF}" == refs/tags/* ]]; then - VERSION="${GITHUB_REF_NAME}" - elif [[ -n "$INPUT_VERSION" ]]; then - VERSION="$INPUT_VERSION" - elif [[ -n "$POINTED_TAG" ]]; then - VERSION="$POINTED_TAG" - else - echo "workflow_dispatch requires an explicit version input when HEAD is not tagged" >&2 - exit 1 - fi - - echo "VERSION=$VERSION" >> "$GITHUB_ENV" - echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> "$GITHUB_ENV" - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 - - - name: Log into registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push - id: build - uses: docker/build-push-action@v7 - with: - context: . - file: ./docker/Dockerfile - platforms: ${{ matrix.platform }} - outputs: type=image,name=${{ env.IMAGE }},push-by-digest=true,name-canonical=true,push=true - build-args: | - VERSION=${{ env.VERSION }} - BUILD_DATE=${{ env.BUILD_DATE }} - cache-from: type=gha,scope=docker-server-${{ matrix.arch }} - cache-to: type=gha,mode=max,ignore-error=true,timeout=20m,scope=docker-server-${{ matrix.arch }} - - - name: Export digest - shell: bash - run: | - mkdir -p /tmp/server-digests - touch "/tmp/server-digests/${DIGEST#sha256:}" - env: - DIGEST: ${{ steps.build.outputs.digest }} - - - name: Upload digest - uses: actions/upload-artifact@v4 - with: - name: server-digests-${{ matrix.arch }} - path: /tmp/server-digests/* - if-no-files-found: error - retention-days: 1 - - - name: Generate artifact attestation - uses: actions/attest-build-provenance@v3 - with: - subject-name: ${{ env.IMAGE }} - subject-digest: ${{ steps.build.outputs.digest }} - push-to-registry: true - - merge: - name: Merge multi-arch manifest - runs-on: ubuntu-24.04 - needs: build - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-tags: true - fetch-depth: 0 - persist-credentials: false - - - name: Set image metadata - shell: bash - env: - INPUT_VERSION: ${{ github.event.inputs.version }} - run: | - POINTED_TAG="$(git tag --points-at HEAD --list 'v*' | sort -V | tail -n1)" - INPUT_VERSION="${INPUT_VERSION//[[:space:]]/}" - - echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY,,}" >> "$GITHUB_ENV" - if [[ "${GITHUB_REF}" == refs/tags/* ]]; then - VERSION="${GITHUB_REF_NAME}" - elif [[ -n "$INPUT_VERSION" ]]; then - VERSION="$INPUT_VERSION" - elif [[ -n "$POINTED_TAG" ]]; then - VERSION="$POINTED_TAG" - else - echo "workflow_dispatch requires an explicit version input when HEAD is not tagged" >&2 - exit 1 - fi - - echo "VERSION=$VERSION" >> "$GITHUB_ENV" - - - name: Download digests - uses: actions/download-artifact@v4 - with: - path: /tmp/server-digests - pattern: server-digests-* - merge-multiple: true - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 - - - name: Log into registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Create and push manifest list - working-directory: /tmp/server-digests - shell: bash - run: | - shopt -s nullglob - references=() - for digest in *; do - references+=("${IMAGE}@sha256:${digest}") - done - - if [ ${#references[@]} -eq 0 ]; then - echo "No digests found in /tmp/server-digests" >&2 - exit 1 - fi - - if [[ "${VERSION}" =~ (alpha|beta|rc) ]]; then - FLOATING_TAG="beta" - else - FLOATING_TAG="latest" - fi - - docker buildx imagetools create \ - -t "${IMAGE}:${VERSION}" \ - -t "${IMAGE}:${FLOATING_TAG}" \ - "${references[@]}" - - - name: Inspect image - run: docker buildx imagetools inspect "${IMAGE}:${VERSION}" - - - name: Trigger webhook - env: - WEBHOOK_URL: ${{ secrets.WEBHOOK_URL }} - run: | - if [ -n "$WEBHOOK_URL" ]; then - curl -fsSL "$WEBHOOK_URL" - else - echo "Webhook URL is not set, skipping." - fi diff --git a/openflare-server/.github/workflows/build-release.yml b/openflare-server/.github/workflows/build-release.yml deleted file mode 100644 index ae89e8fe..00000000 --- a/openflare-server/.github/workflows/build-release.yml +++ /dev/null @@ -1,270 +0,0 @@ -name: Build Release - -on: - push: - tags: ["v*"] - workflow_dispatch: - inputs: - version: - description: "Release version/tag to build, for example v1.0.0-beta" - required: true - type: string - -env: - APP_NAME: wavelet - GO_MAIN: ./main.go - GO_BUILD_TAGS: embed_frontend - GO_LDFLAGS: -s -w - NODE_VERSION: "22" - PNPM_VERSION: "10.10.0" - FRONTEND_DIR: frontend - FRONTEND_BUILD_COMMAND: pnpm build:embed - FRONTEND_OUT_DIR: frontend/out - EMBED_DIST_DIR: internal/router/root/dist - EXTRA_FILES: | - LICENSE - README.md - README_zh.md - config.example.yaml - DEPLOYMENT_zh.md - -permissions: - contents: write - -jobs: - prepare-message: - runs-on: ubuntu-latest - outputs: - commit_msg: ${{ steps.trans.outputs.commit_msg }} - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.ref }} - fetch-depth: 0 - - - name: Prepare Commit Message - id: trans - shell: bash - run: | - msg=$(git log -1 --pretty=%B) - pip install deep-translator > /dev/null 2>&1 || true - - export COMMIT_MSG="$msg" - echo "commit_msg<> "$GITHUB_OUTPUT" - if [ -f "scripts/translate_commit.py" ]; then - python3 scripts/translate_commit.py >> "$GITHUB_OUTPUT" - else - echo "Translation script not found, using raw message" - echo "$msg" >> "$GITHUB_OUTPUT" - fi - echo "EOF" >> "$GITHUB_OUTPUT" - - create-release: - name: Create Release - needs: prepare-message - runs-on: ubuntu-latest - outputs: - version: ${{ steps.metadata.outputs.version }} - version_without_v: ${{ steps.metadata.outputs.version_without_v }} - build_date: ${{ steps.metadata.outputs.build_date }} - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - fetch-tags: true - - - name: Set release metadata - id: metadata - shell: bash - env: - INPUT_VERSION: ${{ github.event.inputs.version }} - run: | - set -euo pipefail - - input_version="${INPUT_VERSION//[[:space:]]/}" - if [[ "$GITHUB_REF" == refs/tags/* ]]; then - version="$GITHUB_REF_NAME" - elif [[ -n "$input_version" ]]; then - version="$input_version" - else - echo "workflow_dispatch requires a version input" >&2 - exit 1 - fi - - { - echo "version=$version" - echo "version_without_v=${version#v}" - echo "build_date=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" - } >> "$GITHUB_OUTPUT" - - - name: Create release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ steps.metadata.outputs.version }} - name: ${{ steps.metadata.outputs.version }} - body: ${{ needs.prepare-message.outputs.commit_msg }} - prerelease: ${{ contains(steps.metadata.outputs.version, 'alpha') || contains(steps.metadata.outputs.version, 'beta') || contains(steps.metadata.outputs.version, 'rc') }} - - build-frontend: - name: Build Embedded Frontend - runs-on: ubuntu-latest - needs: create-release - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: ${{ env.PNPM_VERSION }} - run_install: false - - - name: Setup Node - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - cache: pnpm - cache-dependency-path: ${{ env.FRONTEND_DIR }}/pnpm-lock.yaml - - - name: Install frontend dependencies - working-directory: ${{ env.FRONTEND_DIR }} - run: pnpm install --frozen-lockfile - - - name: Build frontend - env: - NEXT_PUBLIC_APP_VERSION: ${{ needs.create-release.outputs.version }} - NEXT_PUBLIC_APP_BUILD_DATE: ${{ needs.create-release.outputs.build_date }} - run: ${{ env.FRONTEND_BUILD_COMMAND }} - working-directory: ${{ env.FRONTEND_DIR }} - - - name: Prepare embed directory - shell: bash - run: | - set -euo pipefail - rm -rf "$EMBED_DIST_DIR" - mkdir -p "$(dirname "$EMBED_DIST_DIR")" - cp -R "$FRONTEND_OUT_DIR" "$EMBED_DIST_DIR" - - - name: Upload embedded frontend - uses: actions/upload-artifact@v4 - with: - name: embedded-frontend - path: ${{ env.EMBED_DIST_DIR }} - if-no-files-found: error - retention-days: 1 - - build-binaries: - name: Build ${{ matrix.goos }}/${{ matrix.goarch }} - runs-on: ubuntu-latest - needs: - - create-release - - build-frontend - strategy: - fail-fast: false - matrix: - include: - - goos: linux - goarch: amd64 - archive: tar.gz - - goos: linux - goarch: arm64 - archive: tar.gz - - goos: darwin - goarch: amd64 - archive: tar.gz - - goos: darwin - goarch: arm64 - archive: tar.gz - - goos: windows - goarch: amd64 - archive: zip - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download embedded frontend - uses: actions/download-artifact@v4 - with: - name: embedded-frontend - path: ${{ env.EMBED_DIST_DIR }} - - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version-file: go.mod - cache: true - - - name: Build binary - shell: bash - env: - GOOS: ${{ matrix.goos }} - GOARCH: ${{ matrix.goarch }} - CGO_ENABLED: "0" - VERSION: ${{ needs.create-release.outputs.version }} - BUILD_DATE: ${{ needs.create-release.outputs.build_date }} - run: | - set -euo pipefail - - mkdir -p dist - binary_name="$APP_NAME" - if [[ "$GOOS" == "windows" ]]; then - binary_name="${binary_name}.exe" - fi - - ldflags="$GO_LDFLAGS -X github.com/Rain-kl/Wavelet/internal/buildinfo.Version=$VERSION -X github.com/Rain-kl/Wavelet/internal/buildinfo.BuildTime=$BUILD_DATE" - build_args=( - -trimpath - -ldflags "$ldflags" - -o "dist/$binary_name" - ) - - if [[ -n "$GO_BUILD_TAGS" ]]; then - build_args=(-tags "$GO_BUILD_TAGS" "${build_args[@]}") - fi - - go build "${build_args[@]}" "$GO_MAIN" - - - name: Package artifact - id: package - shell: bash - env: - VERSION: ${{ needs.create-release.outputs.version }} - GOOS: ${{ matrix.goos }} - GOARCH: ${{ matrix.goarch }} - ARCHIVE_FORMAT: ${{ matrix.archive }} - run: | - set -euo pipefail - - package_name="${APP_NAME}_${VERSION}_${GOOS}_${GOARCH}" - staging_dir="dist/$package_name" - mkdir -p "$staging_dir" - - if [[ "$GOOS" == "windows" ]]; then - cp "dist/${APP_NAME}.exe" "$staging_dir/" - else - cp "dist/${APP_NAME}" "$staging_dir/" - fi - - while IFS= read -r extra_file; do - [[ -z "$extra_file" ]] && continue - if [[ -e "$extra_file" ]]; then - cp -R "$extra_file" "$staging_dir/" - fi - done <<< "$EXTRA_FILES" - - if [[ "$ARCHIVE_FORMAT" == "zip" ]]; then - (cd dist && zip -r "${package_name}.zip" "$package_name") - artifact="dist/${package_name}.zip" - else - tar -C dist -czf "dist/${package_name}.tar.gz" "$package_name" - artifact="dist/${package_name}.tar.gz" - fi - - echo "artifact=$artifact" >> "$GITHUB_OUTPUT" - - - name: Upload release artifact - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ needs.create-release.outputs.version }} - files: ${{ steps.package.outputs.artifact }} diff --git a/openflare-server/.github/workflows/cleanup-prerelease-tags.yml b/openflare-server/.github/workflows/cleanup-prerelease-tags.yml deleted file mode 100644 index ad32e2e4..00000000 --- a/openflare-server/.github/workflows/cleanup-prerelease-tags.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Cleanup Prerelease - -on: - workflow_dispatch: - schedule: - - cron: '0 3 * * *' - -permissions: - contents: write - -jobs: - cleanup: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Resolve version metadata - id: version - run: | - SHOULD_RUN=true - VERSION="all-prerelease-tags" - - echo "should_run=$SHOULD_RUN" >> "$GITHUB_OUTPUT" - echo "version=$VERSION" >> "$GITHUB_OUTPUT" - if [[ "$VERSION" =~ ^v[0-9]+(\.[0-9]+)*$ ]]; then - echo "is_prerelease=false" >> "$GITHUB_OUTPUT" - else - echo "is_prerelease=true" >> "$GITHUB_OUTPUT" - fi - - - name: Delete prerelease, dangling, and unbound releases/tags - if: steps.version.outputs.should_run == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # Fetch all tags from remote to ensure full synchronization - git fetch --tags --force - - # Get all local/remote git tags starting with 'v' - mapfile -t GIT_TAGS < <(git tag --list 'v*' | sort -V) - - # Get all GitHub releases (tags associated with releases) - mapfile -t GH_RELEASES < <(gh release list --limit 1000 --json tagName --jq '.[].tagName' 2>/dev/null || true) - - # Helper function to check array containment - contains_element() { - local e match="$1" - shift - for e; do [[ "$e" == "$match" ]] && return 0; done - return 1 - } - - DELETED_TAGS=0 - DELETED_RELEASES=0 - - echo "=== Phase 1: Checking and cleaning Git tags ===" - for TAG in "${GIT_TAGS[@]}"; do - if [[ "$TAG" =~ ^v[0-9]+(\.[0-9]+)*$ ]]; then - # Formal release tag - if ! contains_element "$TAG" "${GH_RELEASES[@]}"; then - echo "Delete formal tag not bound to any GitHub release: $TAG" - git push origin --delete "refs/tags/$TAG" || true - git tag -d "$TAG" || true - DELETED_TAGS=$((DELETED_TAGS + 1)) - else - echo "Keep formal release tag (bound to release): $TAG" - fi - else - # Prerelease tag - if contains_element "$TAG" "${GH_RELEASES[@]}"; then - echo "Delete prerelease release: $TAG" - gh release delete "$TAG" --yes || true - DELETED_RELEASES=$((DELETED_RELEASES + 1)) - fi - - echo "Delete prerelease tag: $TAG" - git push origin --delete "refs/tags/$TAG" || true - git tag -d "$TAG" || true - DELETED_TAGS=$((DELETED_TAGS + 1)) - fi - done - - echo "=== Phase 2: Checking and cleaning dangling GitHub releases ===" - for REL_TAG in "${GH_RELEASES[@]}"; do - if ! contains_element "$REL_TAG" "${GIT_TAGS[@]}"; then - echo "Delete GitHub release not bound to any Git tag: $REL_TAG" - gh release delete "$REL_TAG" --yes || true - DELETED_RELEASES=$((DELETED_RELEASES + 1)) - fi - done - - echo "=== Summary ===" - echo "Successfully deleted $DELETED_TAGS tag(s) and $DELETED_RELEASES release(s)." diff --git a/openflare-server/.github/workflows/close_ticket.yml b/openflare-server/.github/workflows/close_ticket.yml deleted file mode 100644 index 4ebf1f4a..00000000 --- a/openflare-server/.github/workflows/close_ticket.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Close Ticket - -on: - schedule: - - cron: "0 0 * * *" - -jobs: - close_ticket: - runs-on: ubuntu-24.04 - permissions: - issues: write - pull-requests: write - - steps: - - uses: actions/stale@v9 - with: - days-before-issue-stale: 14 - days-before-issue-close: 14 - stale-issue-message: "此 issue 长期无活动,将在 14 天后自动关闭。如需继续讨论请回复" - close-issue-message: "此 issue 因长期无活动已自动关闭,如有需要请重新开启" - days-before-pr-stale: 14 - days-before-pr-close: 14 - stale-pr-message: "此 PR 长期无活动,将在 14 天后自动关闭。如需继续讨论请回复" - close-pr-message: "此 PR 因长期无活动已自动关闭,如有需要请重新开启" diff --git a/openflare-server/.github/workflows/codeql.yml b/openflare-server/.github/workflows/codeql.yml deleted file mode 100644 index 7d76f9c8..00000000 --- a/openflare-server/.github/workflows/codeql.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: "CodeQL" - -on: - pull_request: - branches: [ "*" ] - push: - branches: - - "dev" - - "main" - -jobs: - analyze: - name: Analyze (${{ matrix.language }}) - runs-on: ubuntu-24.04 - permissions: - security-events: write - packages: read - actions: read - contents: read - - strategy: - fail-fast: false - matrix: - include: - - language: go - build-mode: autobuild - - language: javascript-typescript - build-mode: none - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 - with: - category: "/language:${{matrix.language}}" diff --git a/openflare-server/.github/workflows/copilot-setup-steps.yml b/openflare-server/.github/workflows/copilot-setup-steps.yml deleted file mode 100644 index dfc6162e..00000000 --- a/openflare-server/.github/workflows/copilot-setup-steps.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: "Copilot Setup Steps" - -on: - workflow_dispatch: - push: - paths: - - .github/workflows/copilot-setup-steps.yml - pull_request: - paths: - - .github/workflows/copilot-setup-steps.yml - -jobs: - copilot-setup-steps: - runs-on: ubuntu-24.04 - - permissions: - contents: read - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 10.10.0 - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: "22" - cache: "pnpm" - cache-dependency-path: frontend/pnpm-lock.yaml - - - name: Install JavaScript dependencies - working-directory: frontend - run: pnpm install - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: "1.25" - check-latest: true - - - name: Install dependencies - run: | - go mod download - go install github.com/swaggo/swag/cmd/swag@v1.16.6 diff --git a/openflare-server/.github/workflows/eslint.yml b/openflare-server/.github/workflows/eslint.yml deleted file mode 100644 index 647c2eb2..00000000 --- a/openflare-server/.github/workflows/eslint.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: ESLint - -on: - pull_request: - branches: [ "*" ] - push: - branches: - - "dev" - - "main" - -jobs: - lint: - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - - - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 10.10.0 - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: "22" - cache: 'pnpm' - cache-dependency-path: frontend/pnpm-lock.yaml - - - name: Install dependencies - working-directory: frontend - run: pnpm install - - - name: Run ESLint - working-directory: frontend - run: npx eslint . --max-warnings 0 diff --git a/openflare-server/.github/workflows/pr-template-check.yml b/openflare-server/.github/workflows/pr-template-check.yml deleted file mode 100644 index e61365de..00000000 --- a/openflare-server/.github/workflows/pr-template-check.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Check PR Template Checklist - -on: - pull_request: - types: [opened, edited, synchronize] - -jobs: - check-pr-template: - runs-on: ubuntu-24.04 - steps: - - name: check all checklist items are checked - uses: actions/github-script@v7 - with: - script: | - // get the pull request body - const prBody = context.payload.pull_request.body || ''; - - // regex to match all checklist items in the template - // matches lines like: - [ ] ... or - [x] ... - const checklistRegex = /^- \[( |x|X)\] .+$/gm; - const matches = prBody.match(checklistRegex) || []; - - // check if any checklist item is not checked - const unchecked = matches.filter(line => line.startsWith('- [ ]')); - - // if any unchecked, fail the workflow - if (unchecked.length > 0) { - core.setFailed(`PR checklist 未全部勾选,请确保所有 checklist 项都已勾选。未勾选项如下:\n${unchecked.join('\n')}`); - } else { - console.log('all checklist items are checked.'); - } - diff --git a/openflare-server/.gitignore b/openflare-server/.gitignore deleted file mode 100644 index 47f0d767..00000000 --- a/openflare-server/.gitignore +++ /dev/null @@ -1,61 +0,0 @@ -# IDE -.idea/* -.idea -!.idea/icon.png -.vscode -.pnpm-store/ - -# logs -/logs/ -*.log - -# config -config.yaml -.env - -# sqlite -*.db -*.db-journal -*.db-shm -*.db-wal - -# frontend -frontend/build -frontend/disk -frontend/node_modules/* -frontend/.next/* -frontend/next-env.d.ts -frontend/package-lock.json -frontend/.env -.env.* -!.env.example -*.tsbuildinfo - -# os -.DS_Store -Thumbs.db - -# build -/build/ -/bin/ -/dist/ - -# go workspace -go.work -go.work.sum -main - -# upload -uploads/* - -s3_cache -/frontend/.next/ -/data/ -/internal/router/dist/ -/frontend/out/ -/.idea/ -/uploads/ -/*-source/ -/.cache/ -/internal/router/root/dist/ -.dmux/ diff --git a/openflare-server/docker-compose.yml b/openflare-server/docker-compose.yml deleted file mode 100644 index 0952cfcf..00000000 --- a/openflare-server/docker-compose.yml +++ /dev/null @@ -1,93 +0,0 @@ -services: - wavelet: - build: - context: . - dockerfile: docker/Dockerfile - args: - VERSION: v0.9.9 -# image: ghcr.io/rain-kl/wavelet:latest - restart: unless-stopped - env_file: .env - environment: - TZ: ${TZ:-Asia/Shanghai} - OTEL_EXPORTER_OTLP_ENDPOINT: ${OTEL_EXPORTER_OTLP_ENDPOINT:-http://jaeger:4317} - OTEL_EXPORTER_OTLP_INSECURE: ${OTEL_EXPORTER_OTLP_INSECURE:-true} - OTEL_SAMPLING_RATE: ${OTEL_SAMPLING_RATE:-1.0} - ports: - - "${APP_PORT:-3000}:3000" - volumes: - - ./uploads:/app/uploads - - ./data/sqlite:/app/data - depends_on: - postgres: - condition: service_healthy - redis: - condition: service_healthy - clickhouse: - condition: service_healthy - jaeger: - condition: service_started - - postgres: - image: postgres:17-alpine - restart: unless-stopped - environment: - POSTGRES_DB: ${POSTGRES_DB:-openflare} - POSTGRES_USER: ${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} - TZ: ${TZ:-Asia/Shanghai} - ports: - - "${POSTGRES_PORT:-5432}:5432" - volumes: - - ./data/postgres_data:/var/lib/postgresql/data - healthcheck: - test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-openflare}"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 10s - - redis: - image: valkey/valkey:8.0-alpine - restart: unless-stopped - command: ["valkey-server", "--appendonly", "yes"] - ports: - - "${REDIS_PORT:-6379}:6379" - volumes: - - ./data/valkey:/data - healthcheck: - test: ["CMD", "valkey-cli", "ping"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 5s - - jaeger: - image: jaegertracing/jaeger:${JAEGER_VERSION:-2.19.0} - restart: unless-stopped - environment: - TZ: ${TZ:-Asia/Shanghai} - ports: - - "${JAEGER_UI_PORT:-16686}:16686" - - "${JAEGER_OTLP_GRPC_PORT:-4317}:4317" - - "${JAEGER_OTLP_HTTP_PORT:-4318}:4318" - clickhouse: - image: clickhouse/clickhouse-server:25.3-alpine - restart: unless-stopped - environment: - CLICKHOUSE_DB: ${CLICKHOUSE_DB:-openflare} - CLICKHOUSE_USER: ${CLICKHOUSE_USER:-default} - CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-} - CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 - TZ: ${TZ:-Asia/Shanghai} - ports: - - "${CLICKHOUSE_HTTP_PORT:-8123}:8123" - - "${CLICKHOUSE_NATIVE_PORT:-9000}:9000" - volumes: - - ./data/clickhouse_data:/var/lib/clickhouse - healthcheck: - test: ["CMD", "clickhouse-client", "--query", "SELECT 1"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 15s diff --git a/openflare-server/internal/agent/geoipdata/GeoLite2-Country.mmdb b/openflare-server/internal/agent/geoipdata/GeoLite2-Country.mmdb deleted file mode 100644 index c7195dd1..00000000 Binary files a/openflare-server/internal/agent/geoipdata/GeoLite2-Country.mmdb and /dev/null differ diff --git a/openflare-server/pkg/cache/disk/cache.go b/pkg/cache/disk/cache.go similarity index 100% rename from openflare-server/pkg/cache/disk/cache.go rename to pkg/cache/disk/cache.go diff --git a/openflare-server/pkg/cache/disk/cache_test.go b/pkg/cache/disk/cache_test.go similarity index 100% rename from openflare-server/pkg/cache/disk/cache_test.go rename to pkg/cache/disk/cache_test.go diff --git a/openflare-server/pkg/cache/ram/cache.go b/pkg/cache/ram/cache.go similarity index 100% rename from openflare-server/pkg/cache/ram/cache.go rename to pkg/cache/ram/cache.go diff --git a/openflare-server/pkg/cache/ram/cache_test.go b/pkg/cache/ram/cache_test.go similarity index 100% rename from openflare-server/pkg/cache/ram/cache_test.go rename to pkg/cache/ram/cache_test.go diff --git a/openflare-server/pkg/cap/cap.go b/pkg/cap/cap.go similarity index 100% rename from openflare-server/pkg/cap/cap.go rename to pkg/cap/cap.go diff --git a/openflare-server/pkg/cap/errs.go b/pkg/cap/errs.go similarity index 100% rename from openflare-server/pkg/cap/errs.go rename to pkg/cap/errs.go diff --git a/openflare-server/pkg/cap/prng.go b/pkg/cap/prng.go similarity index 100% rename from openflare-server/pkg/cap/prng.go rename to pkg/cap/prng.go diff --git a/openflare-server/pkg/cap/store.go b/pkg/cap/store.go similarity index 100% rename from openflare-server/pkg/cap/store.go rename to pkg/cap/store.go diff --git a/openflare-server/pkg/geoip/emptyProvider.go b/pkg/geoip/emptyProvider.go similarity index 100% rename from openflare-server/pkg/geoip/emptyProvider.go rename to pkg/geoip/emptyProvider.go diff --git a/openflare-server/pkg/geoip/geoip.go b/pkg/geoip/geoip.go similarity index 100% rename from openflare-server/pkg/geoip/geoip.go rename to pkg/geoip/geoip.go diff --git a/openflare-server/pkg/geoip/geoip_test.go b/pkg/geoip/geoip_test.go similarity index 100% rename from openflare-server/pkg/geoip/geoip_test.go rename to pkg/geoip/geoip_test.go diff --git a/openflare-server/pkg/geoip/geojs.go b/pkg/geoip/geojs.go similarity index 100% rename from openflare-server/pkg/geoip/geojs.go rename to pkg/geoip/geojs.go diff --git a/openflare-server/pkg/geoip/ipapi.go b/pkg/geoip/ipapi.go similarity index 100% rename from openflare-server/pkg/geoip/ipapi.go rename to pkg/geoip/ipapi.go diff --git a/openflare-server/pkg/geoip/ipinfo.go b/pkg/geoip/ipinfo.go similarity index 100% rename from openflare-server/pkg/geoip/ipinfo.go rename to pkg/geoip/ipinfo.go diff --git a/openflare-server/pkg/geoip/iputil/iputil.go b/pkg/geoip/iputil/iputil.go similarity index 100% rename from openflare-server/pkg/geoip/iputil/iputil.go rename to pkg/geoip/iputil/iputil.go diff --git a/openflare-server/pkg/geoip/iputil/iputil_test.go b/pkg/geoip/iputil/iputil_test.go similarity index 100% rename from openflare-server/pkg/geoip/iputil/iputil_test.go rename to pkg/geoip/iputil/iputil_test.go diff --git a/openflare-server/pkg/geoip/mmdb.go b/pkg/geoip/mmdb.go similarity index 100% rename from openflare-server/pkg/geoip/mmdb.go rename to pkg/geoip/mmdb.go diff --git a/openflare-server/pkg/geoip/outboundip.go b/pkg/geoip/outboundip.go similarity index 100% rename from openflare-server/pkg/geoip/outboundip.go rename to pkg/geoip/outboundip.go diff --git a/openflare-server/pkg/geoip/outboundip_test.go b/pkg/geoip/outboundip_test.go similarity index 100% rename from openflare-server/pkg/geoip/outboundip_test.go rename to pkg/geoip/outboundip_test.go diff --git a/openflare-server/pkg/httppool/httppool.go b/pkg/httppool/httppool.go similarity index 100% rename from openflare-server/pkg/httppool/httppool.go rename to pkg/httppool/httppool.go diff --git a/openflare-server/pkg/httppool/httppool_test.go b/pkg/httppool/httppool_test.go similarity index 100% rename from openflare-server/pkg/httppool/httppool_test.go rename to pkg/httppool/httppool_test.go diff --git a/openflare-server/pkg/logger/errs.go b/pkg/logger/errs.go similarity index 100% rename from openflare-server/pkg/logger/errs.go rename to pkg/logger/errs.go diff --git a/openflare-server/pkg/logger/logger.go b/pkg/logger/logger.go similarity index 100% rename from openflare-server/pkg/logger/logger.go rename to pkg/logger/logger.go diff --git a/openflare-server/pkg/logger/ringbuffer.go b/pkg/logger/ringbuffer.go similarity index 100% rename from openflare-server/pkg/logger/ringbuffer.go rename to pkg/logger/ringbuffer.go diff --git a/openflare-server/pkg/logger/ringbuffer_test.go b/pkg/logger/ringbuffer_test.go similarity index 100% rename from openflare-server/pkg/logger/ringbuffer_test.go rename to pkg/logger/ringbuffer_test.go diff --git a/openflare-server/pkg/logger/utils.go b/pkg/logger/utils.go similarity index 100% rename from openflare-server/pkg/logger/utils.go rename to pkg/logger/utils.go diff --git a/openflare-server/pkg/mail/errs.go b/pkg/mail/errs.go similarity index 100% rename from openflare-server/pkg/mail/errs.go rename to pkg/mail/errs.go diff --git a/openflare-server/pkg/mail/mail.go b/pkg/mail/mail.go similarity index 100% rename from openflare-server/pkg/mail/mail.go rename to pkg/mail/mail.go diff --git a/openflare-server/pkg/mail/mail_test.go b/pkg/mail/mail_test.go similarity index 100% rename from openflare-server/pkg/mail/mail_test.go rename to pkg/mail/mail_test.go diff --git a/openflare-server/pkg/protocol/server.go b/pkg/protocol/server.go similarity index 100% rename from openflare-server/pkg/protocol/server.go rename to pkg/protocol/server.go diff --git a/openflare-server/pkg/push/custom.go b/pkg/push/custom.go similarity index 100% rename from openflare-server/pkg/push/custom.go rename to pkg/push/custom.go diff --git a/openflare-server/pkg/push/email.go b/pkg/push/email.go similarity index 100% rename from openflare-server/pkg/push/email.go rename to pkg/push/email.go diff --git a/openflare-server/pkg/push/lark.go b/pkg/push/lark.go similarity index 100% rename from openflare-server/pkg/push/lark.go rename to pkg/push/lark.go diff --git a/openflare-server/pkg/push/push.go b/pkg/push/push.go similarity index 100% rename from openflare-server/pkg/push/push.go rename to pkg/push/push.go diff --git a/openflare-server/pkg/push/telegram.go b/pkg/push/telegram.go similarity index 100% rename from openflare-server/pkg/push/telegram.go rename to pkg/push/telegram.go diff --git a/openflare-server/pkg/push/telegram_test.go b/pkg/push/telegram_test.go similarity index 100% rename from openflare-server/pkg/push/telegram_test.go rename to pkg/push/telegram_test.go diff --git a/openflare-server/pkg/push/template.go b/pkg/push/template.go similarity index 100% rename from openflare-server/pkg/push/template.go rename to pkg/push/template.go diff --git a/openflare-server/pkg/push/template_test.go b/pkg/push/template_test.go similarity index 100% rename from openflare-server/pkg/push/template_test.go rename to pkg/push/template_test.go diff --git a/openflare-server/pkg/render/openresty/render.go b/pkg/render/openresty/render.go similarity index 100% rename from openflare-server/pkg/render/openresty/render.go rename to pkg/render/openresty/render.go diff --git a/openflare-server/pkg/render/openresty/render_test.go b/pkg/render/openresty/render_test.go similarity index 100% rename from openflare-server/pkg/render/openresty/render_test.go rename to pkg/render/openresty/render_test.go diff --git a/openflare-server/pkg/render/openresty/types.go b/pkg/render/openresty/types.go similarity index 100% rename from openflare-server/pkg/render/openresty/types.go rename to pkg/render/openresty/types.go diff --git a/openflare-server/pkg/trace/propagator.go b/pkg/trace/propagator.go similarity index 100% rename from openflare-server/pkg/trace/propagator.go rename to pkg/trace/propagator.go diff --git a/openflare-server/pkg/trace/sampler.go b/pkg/trace/sampler.go similarity index 100% rename from openflare-server/pkg/trace/sampler.go rename to pkg/trace/sampler.go diff --git a/openflare-server/pkg/trace/trace.go b/pkg/trace/trace.go similarity index 100% rename from openflare-server/pkg/trace/trace.go rename to pkg/trace/trace.go diff --git a/openflare-server/pkg/trace/trace_provider.go b/pkg/trace/trace_provider.go similarity index 100% rename from openflare-server/pkg/trace/trace_provider.go rename to pkg/trace/trace_provider.go diff --git a/openflare-server/pkg/util/crypto.go b/pkg/util/crypto.go similarity index 100% rename from openflare-server/pkg/util/crypto.go rename to pkg/util/crypto.go diff --git a/openflare-server/pkg/util/password.go b/pkg/util/password.go similarity index 100% rename from openflare-server/pkg/util/password.go rename to pkg/util/password.go diff --git a/openflare-server/pkg/util/strings.go b/pkg/util/strings.go similarity index 100% rename from openflare-server/pkg/util/strings.go rename to pkg/util/strings.go diff --git a/openflare-server/pkg/util/uuid.go b/pkg/util/uuid.go similarity index 100% rename from openflare-server/pkg/util/uuid.go rename to pkg/util/uuid.go diff --git a/openflare-server/pkg/utils/format.go b/pkg/utils/format.go similarity index 100% rename from openflare-server/pkg/utils/format.go rename to pkg/utils/format.go diff --git a/openflare-server/pkg/utils/network.go b/pkg/utils/network.go similarity index 100% rename from openflare-server/pkg/utils/network.go rename to pkg/utils/network.go diff --git a/openflare-server/pkg/utils/slice.go b/pkg/utils/slice.go similarity index 100% rename from openflare-server/pkg/utils/slice.go rename to pkg/utils/slice.go diff --git a/openflare-server/pkg/utils/string.go b/pkg/utils/string.go similarity index 100% rename from openflare-server/pkg/utils/string.go rename to pkg/utils/string.go diff --git a/openflare-server/pkg/utils/value.go b/pkg/utils/value.go similarity index 100% rename from openflare-server/pkg/utils/value.go rename to pkg/utils/value.go diff --git a/openflare-server/pkg/utils/version.go b/pkg/utils/version.go similarity index 100% rename from openflare-server/pkg/utils/version.go rename to pkg/utils/version.go diff --git a/openflare-server/pkg/wsclient/client.go b/pkg/wsclient/client.go similarity index 100% rename from openflare-server/pkg/wsclient/client.go rename to pkg/wsclient/client.go diff --git a/openflare-server/scripts/swagger.sh b/scripts/swagger.sh similarity index 100% rename from openflare-server/scripts/swagger.sh rename to scripts/swagger.sh diff --git a/openflare-server/scripts/tidy.sh b/scripts/tidy.sh similarity index 100% rename from openflare-server/scripts/tidy.sh rename to scripts/tidy.sh diff --git a/openflare-server/scripts/translate_commit.py b/scripts/translate_commit.py similarity index 100% rename from openflare-server/scripts/translate_commit.py rename to scripts/translate_commit.py diff --git a/openflare-server/scripts/update_go_license.sh b/scripts/update_go_license.sh similarity index 100% rename from openflare-server/scripts/update_go_license.sh rename to scripts/update_go_license.sh