Back to Registry
View Author Profile
Official Verified
faa-wsl
将 FastapiAdmin 在 Windows WSL2 Ubuntu 环境下自动部署。包括环境检查、依赖安装(pip/pnpm/MySQL/Redis/Nginx)、前后端代码克隆与构建、Nginx SPA 路由修复(alias+try_files 循环问题)、WSL2 网络访问(宿主机浏览器访问)、SSL 证书配置。当用户要求部署 FastapiAdmin、在 WSL2 中安装 FastapiAdmin、或需要完整部署前后端服务时使用。
skill-install — Terminal
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/bamboo-art/faa-wslOr
FastapiAdmin WSL2 部署
环境要求
| 组件 | 版本 | 说明 |
|---|---|---|
| Python | ≥ 3.10 | WSL2 Ubuntu 默认 3.12 |
| Node.js | ≥ 20.0 | WSL2 已装 v22 |
| pnpm | ≥ 9.0 | 需单独安装 |
| MySQL | ≥ 8.0 | 需单独安装 |
| Redis | ≥ 7.0 | 需单独安装 |
| Nginx | 任意 | 需单独安装 |
工作目录
统一使用 ~/workdir(即 /home/<user>/workdir)作为部署根目录。
Step 1:安装系统依赖(pip/pnpm/MySQL/Redis/Nginx)
# 安装 pip(Ubuntu 强制模式)
curl -sS https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py
python3 /tmp/get-pip.py --break-system-packages
# 安装 pnpm
npm install -g pnpm
# 安装 MySQL + Redis + Nginx
sudo apt-get update
sudo apt-get install -y mysql-server redis-server nginx
# 安装 python3-venv(venv 创建必需)
sudo apt-get install -y python3.12-venv
# 启动服务
sudo service mysql start
sudo service redis-server start
Step 2:配置 MySQL 数据库
sudo mysql -e "CREATE DATABASE IF NOT EXISTS fastapiadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
sudo mysql -e "CREATE USER IF NOT EXISTS 'fastapiadmin'@'localhost' IDENTIFIED BY 'fastapiadmin123';"
sudo mysql -e "GRANT ALL PRIVILEGES ON fastapiadmin.* TO 'fastapiadmin'@'localhost'; FLUSH PRIVILEGES;"
Step 3:克隆代码
mkdir -p ~/workdir && cd ~/workdir
git clone https://gitee.com/fastapiadmin/FastapiAdmin.git
git clone https://gitee.com/fastapiadmin/FastDocs.git
Step 4:后端初始化
cd ~/workdir/FastapiAdmin/backend
# 创建虚拟环境
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
# 配置环境变量
cp env/.env.dev.example env/.env.dev
# 编辑 env/.env.dev,修改:
# DATABASE_USER = "fastapiadmin"
# DATABASE_PASSWORD = "fastapiadmin123"
# REDIS_PASSWORD = ""(无密码则留空)
# 生成并执行迁移
./venv/bin/python main.py revision --env=dev
./venv/bin/python main.py upgrade --env=dev
Step 5:前端构建
cd ~/workdir/FastapiAdmin/frontend
# 安装依赖
pnpm install
# 创建生产环境配置
cat > .env.production << 'EOF'
VITE_APP_ENV=production
VITE_APP_TITLE=FastapiAdmin
VITE_API_BASE_URL=http://<WSL2_IP>
VITE_APP_BASE_API=/api/v1
VITE_TIMEOUT=10000
VITE_APP_WS_ENDPOINT=ws://<WSL2_IP>
EOF
# 构建
pnpm run build
Step 6:Nginx 配置(关键)
Nginx 配置源码位于 ~/workdir/FastapiAdmin/devops/nginx/nginx.conf,部署时复制到 /etc/nginx/nginx.conf。
6.1 生成自签名 SSL 证书
sudo mkdir -p /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.pem \
-subj "/C=CN/ST=Beijing/L=Beijing/O=FastapiAdmin/OU=Dev/CN=localhost"
sudo chmod 600 /etc/nginx/ssl/server.key
6.2 Nginx 配置模板
⚠️ 关键修复:原配置中
alias+try_files组合会导致重定向循环。必须用精确匹配location = /web/index.html作为内部 fallback,而非 named location 或路径重写。
编辑 ~/workdir/FastapiAdmin/devops/nginx/nginx.conf,替换 location /web 部分:
# HTTP server块
server {
listen 80;
server_name service.fastapiadmin.com;
Metadata
AI Skill Finder
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skill Add to Configuration
Paste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-bamboo-art-faa-wsl": {
"enabled": true,
"auto_update": true
}
}
}Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.