以下是编译 Alist 前后端的详细步骤：

---

### **1. 准备工作**
#### 环境要求：
- **Go 1.16+** (后端依赖)
- **Node.js 14+** (前端依赖)
- **Git** (代码管理)
- **Yarn** 或 **npm** (前端包管理)

#### 安装依赖：
```bash
# 安装 Go (以 Linux 为例)
wget https://golang.org/dl/go1.20.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

# 安装 Node.js (推荐使用 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install 16
nvm use 16

# 安装 Yarn
npm install -g yarn
```

---

### **2. 后端编译**
#### 获取源码：
```bash
git clone https://github.com/alist-org/alist.git
cd alist
```

#### 安装依赖并编译：
```bash
# 进入后端目录
cd alist

# 下载 Go 依赖
go mod download

# 编译（默认生成当前系统的可执行文件）
go build -o alist main.go

# 交叉编译（示例：编译 Linux AMD64）
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o alist-linux-amd64 main.go
```

编译完成后，会在当前目录生成可执行文件 `alist`（或指定名称）。

---

### **3. 前端编译**
#### 进入前端目录：
```bash
cd ../web # 假设源码根目录为 alist/
```

#### 安装依赖并构建：
```bash
yarn install        # 或使用 npm install
yarn build          # 或使用 npm run build
```

构建完成后，静态文件会生成在 `dist` 目录中。

---

### **4. 整合前后端**
将前端构建的静态文件复制到后端目录的 `public` 文件夹中：
```bash
# 创建 public 目录（如果不存在）
mkdir -p ../alist/public

# 复制前端文件
cp -r dist/* ../alist/public/
```

---

### **5. 运行 Alist**
```bash
# 进入后端目录
cd ../alist

# 赋予执行权限（Linux/macOS）
chmod +x alist

# 启动服务
./alist server
```

默认访问地址：`http://localhost:5244`

---

### **6. 高级配置**
1. **修改配置文件**  
   首次运行后会在程序目录生成 `data/config.json`，可按需修改端口、存储驱动等。

2. **自定义前端变量**  
   在 `web/.env` 文件中修改环境变量（如 API 地址）：
   ```env
   VITE_API_URL=http://your-domain.com:5244
   ```

3. **Docker 编译（可选）**  
   Alist 官方提供 Docker 镜像，也可自行构建：
   ```bash
   docker build -t alist .
   ```

---

### **常见问题**
1. **依赖安装失败**  
   - 检查网络是否通畅（尤其是 Go 依赖可能需要代理）。
   - 确保 Node.js 和 Go 版本符合要求。

2. **前端构建报错**  
   - 清理缓存：`yarn cache clean` 或 `rm -rf node_modules`。
   - 检查 `web/package.json` 中的依赖版本是否冲突。

3. **启动后无法访问**  
   - 检查防火墙是否开放端口（默认 `5244`）。
   - 确认 `config.json` 中 `address` 设置为 `0.0.0.0`（允许外部访问）。

---

通过以上步骤，你可以成功编译并运行 Alist 的完整服务。如需更多定制化配置，建议参考 [Alist 官方文档](https://alist.nn.ci/)。