CONTRIBUTING_zh.md
感谢您对 EasyTier 项目的关注!本文档提供了参与项目贡献的指南和说明。
Linux (Ubuntu/Debian)
# 核心构建依赖
sudo apt-get update && sudo apt-get install -y \
musl-tools \
llvm \
clang \
protobuf-compiler
# GUI 构建依赖
sudo apt install -y \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libgtk-3-dev \
librsvg2-dev \
libxdo-dev \
libssl-dev \
libappindicator3-dev \
patchelf
# 测试依赖
sudo apt install -y bridge-utils
交叉编译依赖
.github/workflows/ 目录)Android 开发依赖
克隆仓库:
git clone https://github.com/EasyTier/EasyTier.git
cd EasyTier
安装依赖:
# 安装 Rust 工具链
rustup install 1.95
rustup default 1.95
# 安装项目依赖
pnpm -r install
easytier/ # 核心功能和库
easytier-web/ # Web 仪表盘和前端
easytier-gui/ # 桌面 GUI 应用
.github/workflows/ # CI/CD 配置文件
# 标准构建
cargo build --release
# 特定平台构建
cargo build --release --target x86_64-unknown-linux-musl # Linux x86_64
cargo build --release --target aarch64-unknown-linux-musl # Linux ARM64
cargo build --release --target x86_64-apple-darwin # macOS x86_64
cargo build --release --target aarch64-apple-darwin # macOS M1/M2
cargo build --release --target x86_64-pc-windows-msvc # Windows x86_64
构建产物位置:target/[target-triple]/release/
# 1. 构建前端
pnpm -r build
# 2. 构建 GUI 应用
cd easytier-gui
# Linux
pnpm tauri build --target x86_64-unknown-linux-gnu
# macOS
pnpm tauri build --target x86_64-apple-darwin # Intel
pnpm tauri build --target aarch64-apple-darwin # Apple Silicon
# Windows
pnpm tauri build --target x86_64-pc-windows-msvc # x64
构建产物位置:easytier-gui/src-tauri/target/release/bundle/
# 1. 安装 Android 目标平台
rustup target add aarch64-linux-android
rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add x86_64-linux-android
# 2. 构建 Android 应用
cd easytier-gui
pnpm tauri android build
构建产物位置:easytier-gui/src-tauri/gen/android/app/build/outputs/apk/universal/release/
.github/workflows/ 目录从 develop 分支创建特性分支:
git checkout develop
git checkout -b feature/your-feature-name
按照代码规范进行修改
编写或更新测试
使用规范的提交信息:
feat: 添加新功能
fix: 修复问题
docs: 更新文档
test: 添加测试
chore: 更新依赖
提交 Pull Request 到 develop 分支
# 配置系统(Linux)
sudo modprobe br_netfilter
sudo sysctl net.bridge.bridge-nf-call-iptables=0
sudo sysctl net.bridge.bridge-nf-call-ip6tables=0
# 运行测试
cargo test --no-default-features --features=full --verbose
develop欢迎:
感谢您为 EasyTier 做出贡献!