Skip to content

๐Ÿ“ ้กน็›ฎ็ป“ๆž„ โ€‹

ๆœฌๆ–‡ๆกฃ่ฏฆ็ป†ไป‹็ป FastAPI-Vue-Admin ็š„็›ฎๅฝ•็ป“ๆž„ๅ’Œๅ„ๆจกๅ—่Œ่ดฃใ€‚

๐Ÿ—๏ธ ๆ•ดไฝ“ๆžถๆž„ โ€‹

fastapi-vue-admin/
โ”œโ”€โ”€ server/                 # ๐Ÿ”ง ๅŽ็ซฏๆœๅŠก๏ผˆFastAPI๏ผ‰
โ”œโ”€โ”€ web/                    # ๐ŸŽจ ๅ‰็ซฏๅบ”็”จ๏ผˆVue 3๏ผ‰
โ”œโ”€โ”€ docs/                   # ๐Ÿ“– ้กน็›ฎๆ–‡ๆกฃ๏ผˆVitePress๏ผ‰
โ”œโ”€โ”€ docker/                 # ๐Ÿณ Docker ้…็ฝฎ
โ”œโ”€โ”€ logs/                   # ๐Ÿ“ ่ฟ่กŒๆ—ฅๅฟ—
โ”œโ”€โ”€ docker-compose.yml      # Docker ็ผ–ๆŽ’
โ”œโ”€โ”€ deploy.sh              # Linux ้ƒจ็ฝฒ่„šๆœฌ
โ”œโ”€โ”€ deploy.bat             # Windows ้ƒจ็ฝฒ่„šๆœฌ
โ””โ”€โ”€ README.md              # ้กน็›ฎ่ฏดๆ˜Ž

๐Ÿ”ง ๅŽ็ซฏ็ป“ๆž„ (server/) โ€‹

server/
โ”œโ”€โ”€ main.py                 # ๐Ÿš€ ๅบ”็”จๅ…ฅๅฃ๏ผˆ่‡ชๅŠจๆฃ€ๆต‹้…็ฝฎ๏ผ‰
โ”œโ”€โ”€ app.py                  # ๐Ÿ“ฆ FastAPI ๅบ”็”จๅฎžไพ‹
โ”œโ”€โ”€ config.yaml             # โš™๏ธ ้…็ฝฎๆ–‡ไปถ๏ผˆๅˆๅง‹ๅŒ–ๅŽ็”Ÿๆˆ๏ผ‰
โ”œโ”€โ”€ requirements.txt        # ๐Ÿ“‹ Python ไพ่ต–
โ”œโ”€โ”€ uvicorn_config.json     # ๐Ÿ“ Uvicorn ๆ—ฅๅฟ—้…็ฝฎ
โ”‚
โ”œโ”€โ”€ apis/                   # ๐ŸŒ API ่ทฏ็”ฑๅฑ‚
โ”‚   โ”œโ”€โ”€ __init__.py        # ่ทฏ็”ฑๆณจๅ†Œ
โ”‚   โ”œโ”€โ”€ auth.py            # ่ฎค่ฏๆŽฅๅฃ
โ”‚   โ”œโ”€โ”€ user.py            # ็”จๆˆท็ฎก็†
โ”‚   โ”œโ”€โ”€ role.py            # ่ง’่‰ฒ็ฎก็†
โ”‚   โ”œโ”€โ”€ department.py      # ้ƒจ้—จ็ฎก็†
โ”‚   โ”œโ”€โ”€ permission.py      # ๆƒ้™็ฎก็†
โ”‚   โ”œโ”€โ”€ config.py          # ้…็ฝฎ็ฎก็†
โ”‚   โ”œโ”€โ”€ cache.py           # ็ผ“ๅญ˜็ฎก็†
โ”‚   โ”œโ”€โ”€ file.py            # ๆ–‡ไปถ็ฎก็†
โ”‚   โ”œโ”€โ”€ notification.py    # ้€š็Ÿฅ็ฎก็†
โ”‚   โ”œโ”€โ”€ log.py             # ๆ—ฅๅฟ—็ฎก็†
โ”‚   โ”œโ”€โ”€ server.py          # ๆœๅŠกๅ™จ็›‘ๆŽง
โ”‚   โ””โ”€โ”€ dashboard.py       # ไปช่กจ็›˜็ปŸ่ฎก
โ”‚
โ”œโ”€โ”€ models/                 # ๐Ÿ“Š ๆ•ฐๆฎๆจกๅž‹ๅฑ‚๏ผˆTortoise-ORM๏ผ‰
โ”‚   โ”œโ”€โ”€ __init__.py        # ๆจกๅž‹ๅฏผๅ‡บ
โ”‚   โ”œโ”€โ”€ common.py          # ๅŸบ็ก€ๆจกๅž‹็ฑป
โ”‚   โ”œโ”€โ”€ user.py            # ็”จๆˆทๆจกๅž‹
โ”‚   โ”œโ”€โ”€ role.py            # ่ง’่‰ฒๆจกๅž‹
โ”‚   โ”œโ”€โ”€ department.py      # ้ƒจ้—จๆจกๅž‹
โ”‚   โ”œโ”€โ”€ permission.py      # ๆƒ้™ๆจกๅž‹
โ”‚   โ”œโ”€โ”€ config.py          # ้…็ฝฎๆจกๅž‹
โ”‚   โ”œโ”€โ”€ log.py             # ๆ—ฅๅฟ—ๆจกๅž‹
โ”‚   โ”œโ”€โ”€ notification.py    # ้€š็Ÿฅๆจกๅž‹
โ”‚   โ”œโ”€โ”€ file.py            # ๆ–‡ไปถๆจกๅž‹
โ”‚   โ””โ”€โ”€ casbin.py          # Casbin ่ง„ๅˆ™ๆจกๅž‹
โ”‚
โ”œโ”€โ”€ schemas/                # ๐Ÿ“ Pydantic ๆ•ฐๆฎ้ชŒ่ฏ
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ common.py          # ้€š็”จๆจกๅž‹๏ผˆๅˆ†้กตใ€ๅ“ๅบ”๏ผ‰
โ”‚   โ”œโ”€โ”€ auth.py            # ่ฎค่ฏๆจกๅž‹
โ”‚   โ”œโ”€โ”€ user.py            # ็”จๆˆทๆจกๅž‹
โ”‚   โ”œโ”€โ”€ role.py            # ่ง’่‰ฒๆจกๅž‹
โ”‚   โ”œโ”€โ”€ department.py      # ้ƒจ้—จๆจกๅž‹
โ”‚   โ”œโ”€โ”€ permission.py      # ๆƒ้™ๆจกๅž‹
โ”‚   โ””โ”€โ”€ ...
โ”‚
โ”œโ”€โ”€ annotation/             # ๐Ÿท๏ธ ่ฃ…้ฅฐๅ™จ
โ”‚   โ”œโ”€โ”€ auth.py            # ๆƒ้™้ชŒ่ฏ่ฃ…้ฅฐๅ™จ
โ”‚   โ””โ”€โ”€ log.py             # ๆ—ฅๅฟ—่ฎฐๅฝ•่ฃ…้ฅฐๅ™จ
โ”‚
โ”œโ”€โ”€ middlewares/            # ๐Ÿ”— ไธญ้—ดไปถ
โ”‚   โ”œโ”€โ”€ handle.py          # ไธญ้—ดไปถๆณจๅ†Œ
โ”‚   โ”œโ”€โ”€ cors.py            # ่ทจๅŸŸๅค„็†
โ”‚   โ”œโ”€โ”€ gzip.py            # Gzip ๅŽ‹็ผฉ
โ”‚   โ””โ”€โ”€ casbin.py          # Casbin ๆƒ้™ไธญ้—ดไปถ
โ”‚
โ”œโ”€โ”€ exceptions/             # โš ๏ธ ๅผ‚ๅธธๅค„็†
โ”‚   โ”œโ”€โ”€ exception.py       # ่‡ชๅฎšไน‰ๅผ‚ๅธธ็ฑป
โ”‚   โ””โ”€โ”€ handle.py          # ๅ…จๅฑ€ๅผ‚ๅธธๅค„็†ๅ™จ
โ”‚
โ”œโ”€โ”€ utils/                  # ๐Ÿ› ๏ธ ๅทฅๅ…ทๅ‡ฝๆ•ฐ
โ”‚   โ”œโ”€โ”€ config.py          # ้…็ฝฎๅŠ ่ฝฝๅ™จ
โ”‚   โ”œโ”€โ”€ database.py        # ๆ•ฐๆฎๅบ“่ฟžๆŽฅ
โ”‚   โ”œโ”€โ”€ get_redis.py       # Redis ่ฟžๆŽฅ
โ”‚   โ”œโ”€โ”€ response.py        # ๅ“ๅบ”ๅฐ่ฃ…
โ”‚   โ”œโ”€โ”€ casbin.py          # Casbin ๆƒ้™ๅผ•ๆ“Ž
โ”‚   โ”œโ”€โ”€ password.py        # ๅฏ†็ ๅค„็†
โ”‚   โ”œโ”€โ”€ captcha.py         # ้ชŒ่ฏ็ ็”Ÿๆˆ
โ”‚   โ”œโ”€โ”€ log.py             # ๆ—ฅๅฟ—ๅทฅๅ…ท
โ”‚   โ”œโ”€โ”€ mail.py            # ้‚ฎไปถๅ‘้€
โ”‚   โ”œโ”€โ”€ storage.py         # ๆ–‡ไปถๅญ˜ๅ‚จ
โ”‚   โ”œโ”€โ”€ geoip.py           # IP ๅฎšไฝ
โ”‚   โ”œโ”€โ”€ cron.py            # ๅฎšๆ—ถไปปๅŠก
โ”‚   โ””โ”€โ”€ dynamic_config.py  # ๅŠจๆ€้…็ฝฎ
โ”‚
โ”œโ”€โ”€ setup/                  # ๐Ÿ”ง ๅˆๅง‹ๅŒ–ๅ‘ๅฏผ
โ”‚   โ”œโ”€โ”€ setup_app.py       # ๅˆๅง‹ๅŒ–ๅบ”็”จ
โ”‚   โ”œโ”€โ”€ data/              # ๅˆๅง‹ๅŒ–ๆ•ฐๆฎ
โ”‚   โ””โ”€โ”€ templates/         # ๅˆๅง‹ๅŒ–้กต้ขๆจกๆฟ
โ”‚
โ”œโ”€โ”€ fva_mcp/               # ๐Ÿค– MCP ๆœๅŠก
โ”‚   โ”œโ”€โ”€ server.py          # MCP ๆœๅŠกๅ…ฅๅฃ
โ”‚   โ””โ”€โ”€ tools/             # MCP ๅทฅๅ…ท้›†
โ”‚       โ”œโ”€โ”€ db_tools.py    # ๆ•ฐๆฎๅบ“ๅทฅๅ…ท
โ”‚       โ”œโ”€โ”€ redis_tools.py # Redis ๅทฅๅ…ท
โ”‚       โ”œโ”€โ”€ model_tools.py # ๆจกๅž‹็”Ÿๆˆๅทฅๅ…ท
โ”‚       โ”œโ”€โ”€ schema_tools.py# Schema ็”Ÿๆˆๅทฅๅ…ท
โ”‚       โ””โ”€โ”€ api_tools.py   # API ็”Ÿๆˆๅทฅๅ…ท
โ”‚
โ”œโ”€โ”€ migrations/             # ๐Ÿ“ฆ ๆ•ฐๆฎๅบ“่ฟ็งป
โ”œโ”€โ”€ templates/              # ๐Ÿ“ง ๆจกๆฟๆ–‡ไปถ๏ผˆ้‚ฎไปถ็ญ‰๏ผ‰
โ”œโ”€โ”€ assets/                 # ๐Ÿ“ ้™ๆ€่ต„ๆบ
โ”œโ”€โ”€ uploads/                # ๐Ÿ“ค ไธŠไผ ๆ–‡ไปถๅญ˜ๅ‚จ
โ””โ”€โ”€ logs/                   # ๐Ÿ“ ๆ—ฅๅฟ—ๆ–‡ไปถ

๐ŸŽจ ๅ‰็ซฏ็ป“ๆž„ (web/) โ€‹

web/
โ”œโ”€โ”€ index.html              # ๐Ÿ“„ HTML ๅ…ฅๅฃ
โ”œโ”€โ”€ vite.config.ts          # โšก Vite ้…็ฝฎ
โ”œโ”€โ”€ uno.config.ts           # ๐ŸŽจ UnoCSS ้…็ฝฎ
โ”œโ”€โ”€ tsconfig.json           # ๐Ÿ“˜ TypeScript ้…็ฝฎ
โ”œโ”€โ”€ package.json            # ๐Ÿ“ฆ ไพ่ต–้…็ฝฎ
โ”œโ”€โ”€ .env                    # ๐Ÿ”ง ็Žฏๅขƒๅ˜้‡
โ”œโ”€โ”€ .env.development        # ๐Ÿ”ง ๅผ€ๅ‘็Žฏๅขƒๅ˜้‡
โ”œโ”€โ”€ .env.production         # ๐Ÿ”ง ็”Ÿไบง็Žฏๅขƒๅ˜้‡
โ”‚
โ””โ”€โ”€ src/
    โ”œโ”€โ”€ main.ts             # ๐Ÿš€ ๅบ”็”จๅ…ฅๅฃ
    โ”œโ”€โ”€ App.vue             # ๐Ÿ“ฆ ๆ น็ป„ไปถ
    โ”‚
    โ”œโ”€โ”€ api/                # ๐ŸŒ API ๆŽฅๅฃ
    โ”‚   โ”œโ”€โ”€ auth.ts        # ่ฎค่ฏๆŽฅๅฃ
    โ”‚   โ”œโ”€โ”€ dashboard.ts   # ไปช่กจ็›˜ๆŽฅๅฃ
    โ”‚   โ”œโ”€โ”€ system-manage.ts # ็ณป็ปŸ็ฎก็†ๆŽฅๅฃ
    โ”‚   โ”œโ”€โ”€ system/        # ็ณป็ปŸๆจกๅ—ๆŽฅๅฃ
    โ”‚   โ””โ”€โ”€ common/        # ้€š็”จๆŽฅๅฃ
    โ”‚
    โ”œโ”€โ”€ views/              # ๐Ÿ“ฑ ้กต้ข็ป„ไปถ
    โ”‚   โ”œโ”€โ”€ login/         # ็™ปๅฝ•้กต
    โ”‚   โ”œโ”€โ”€ dashboard/     # ไปช่กจ็›˜
    โ”‚   โ”œโ”€โ”€ system/        # ็ณป็ปŸ็ฎก็†
    โ”‚   โ”‚   โ”œโ”€โ”€ user/     # ็”จๆˆท็ฎก็†
    โ”‚   โ”‚   โ”œโ”€โ”€ role/     # ่ง’่‰ฒ็ฎก็†
    โ”‚   โ”‚   โ”œโ”€โ”€ department/# ้ƒจ้—จ็ฎก็†
    โ”‚   โ”‚   โ”œโ”€โ”€ permission/# ๆƒ้™็ฎก็†
    โ”‚   โ”‚   โ”œโ”€โ”€ config/   # ้…็ฝฎ็ฎก็†
    โ”‚   โ”‚   โ”œโ”€โ”€ cache/    # ็ผ“ๅญ˜็ฎก็†
    โ”‚   โ”‚   โ””โ”€โ”€ server/   # ๆœๅŠก็›‘ๆŽง
    โ”‚   โ””โ”€โ”€ log/           # ๆ—ฅๅฟ—็ฎก็†
    โ”‚
    โ”œโ”€โ”€ components/         # ๐Ÿงฉ ๅ…ฌๅ…ฑ็ป„ไปถ
    โ”‚   โ””โ”€โ”€ core/          # ๆ ธๅฟƒ็ป„ไปถ
    โ”‚       โ”œโ”€โ”€ layouts/   # ๅธƒๅฑ€็ป„ไปถ
    โ”‚       โ”œโ”€โ”€ table/     # ่กจๆ ผ็ป„ไปถ
    โ”‚       โ”œโ”€โ”€ form/      # ่กจๅ•็ป„ไปถ
    โ”‚       โ””โ”€โ”€ ...
    โ”‚
    โ”œโ”€โ”€ router/             # ๐Ÿ›ฃ๏ธ ่ทฏ็”ฑ้…็ฝฎ
    โ”‚   โ”œโ”€โ”€ index.ts       # ่ทฏ็”ฑๅฎžไพ‹
    โ”‚   โ”œโ”€โ”€ routesAlias.ts # ่ทฏ็”ฑๅˆซๅ
    โ”‚   โ”œโ”€โ”€ routes/        # ่ทฏ็”ฑๆจกๅ—
    โ”‚   โ”‚   โ””โ”€โ”€ modules/  # ๅ„ๆจกๅ—่ทฏ็”ฑ
    โ”‚   โ”œโ”€โ”€ guards/        # ่ทฏ็”ฑๅฎˆๅซ
    โ”‚   โ””โ”€โ”€ utils/         # ่ทฏ็”ฑๅทฅๅ…ท
    โ”‚
    โ”œโ”€โ”€ store/              # ๐Ÿ“ฆ ็Šถๆ€็ฎก็†๏ผˆPinia๏ผ‰
    โ”‚   โ”œโ”€โ”€ index.ts       # Store ๅฎžไพ‹
    โ”‚   โ””โ”€โ”€ modules/       # Store ๆจกๅ—
    โ”‚       โ”œโ”€โ”€ auth.ts   # ่ฎค่ฏ็Šถๆ€
    โ”‚       โ”œโ”€โ”€ user.ts   # ็”จๆˆท็Šถๆ€
    โ”‚       โ”œโ”€โ”€ menu.ts   # ่œๅ•็Šถๆ€
    โ”‚       โ”œโ”€โ”€ setting.ts# ่ฎพ็ฝฎ็Šถๆ€
    โ”‚       โ””โ”€โ”€ worktab.ts# ๆ ‡็ญพ้กต็Šถๆ€
    โ”‚
    โ”œโ”€โ”€ utils/              # ๐Ÿ› ๏ธ ๅทฅๅ…ทๅ‡ฝๆ•ฐ
    โ”‚   โ”œโ”€โ”€ http/          # HTTP ่ฏทๆฑ‚ๅฐ่ฃ…
    โ”‚   โ”œโ”€โ”€ storage/       # ๆœฌๅœฐๅญ˜ๅ‚จ
    โ”‚   โ”œโ”€โ”€ permission/    # ๆƒ้™ๅทฅๅ…ท
    โ”‚   โ”œโ”€โ”€ theme/         # ไธป้ข˜ๅทฅๅ…ท
    โ”‚   โ”œโ”€โ”€ validation/    # ่กจๅ•้ชŒ่ฏ
    โ”‚   โ”œโ”€โ”€ dataprocess/   # ๆ•ฐๆฎๅค„็†
    โ”‚   โ””โ”€โ”€ ...
    โ”‚
    โ”œโ”€โ”€ composables/        # ๐ŸŽฃ ็ป„ๅˆๅผๅ‡ฝๆ•ฐ
    โ”‚   โ”œโ”€โ”€ usePermission.ts # ๆƒ้™ๅˆคๆ–ญ
    โ”‚   โ”œโ”€โ”€ useTable.ts    # ่กจๆ ผ้€ป่พ‘
    โ”‚   โ””โ”€โ”€ ...
    โ”‚
    โ”œโ”€โ”€ directives/         # ๐Ÿ“Œ ่‡ชๅฎšไน‰ๆŒ‡ไปค
    โ”‚   โ”œโ”€โ”€ auth.ts        # ๆƒ้™ๆŒ‡ไปค v-auth
    โ”‚   โ””โ”€โ”€ ...
    โ”‚
    โ”œโ”€โ”€ locales/            # ๐ŸŒ ๅ›ฝ้™…ๅŒ–
    โ”‚   โ”œโ”€โ”€ zh.ts          # ไธญๆ–‡
    โ”‚   โ””โ”€โ”€ en.ts          # ่‹ฑๆ–‡
    โ”‚
    โ”œโ”€โ”€ assets/             # ๐Ÿ“ ้™ๆ€่ต„ๆบ
    โ”‚   โ”œโ”€โ”€ icons/         # ๅ›พๆ ‡ๅญ—ไฝ“
    โ”‚   โ”œโ”€โ”€ img/           # ๅ›พ็‰‡่ต„ๆบ
    โ”‚   โ””โ”€โ”€ styles/        # ๆ ทๅผๆ–‡ไปถ
    โ”‚       โ”œโ”€โ”€ reset.scss # ้‡็ฝฎๆ ทๅผ
    โ”‚       โ”œโ”€โ”€ app.scss   # ๅ…จๅฑ€ๆ ทๅผ
    โ”‚       โ”œโ”€โ”€ el-ui.scss # Element ๆ ทๅผไผ˜ๅŒ–
    โ”‚       โ”œโ”€โ”€ dark.scss  # ๆš—้ป‘ไธป้ข˜
    โ”‚       โ””โ”€โ”€ variables.scss # ๅ˜้‡ๅฎšไน‰
    โ”‚
    โ”œโ”€โ”€ config/             # โš™๏ธ ้…็ฝฎๆ–‡ไปถ
    โ”œโ”€โ”€ enums/              # ๐Ÿ“‹ ๆžšไธพๅฎšไน‰
    โ”œโ”€โ”€ types/              # ๐Ÿ“˜ ็ฑปๅž‹ๅฎšไน‰
    โ””โ”€โ”€ typings/            # ๐Ÿ“˜ ๅ…จๅฑ€็ฑปๅž‹ๅฃฐๆ˜Ž

๐Ÿ“– ๆ–‡ๆกฃ็ป“ๆž„ (docs/) โ€‹

docs/
โ”œโ”€โ”€ index.md                # ้ฆ–้กต
โ”œโ”€โ”€ package.json            # ๆ–‡ๆกฃไพ่ต–
โ”œโ”€โ”€ vite.config.ts          # Vite ้…็ฝฎ
โ”œโ”€โ”€ uno.config.ts           # UnoCSS ้…็ฝฎ
โ”‚
โ”œโ”€โ”€ .vitepress/             # VitePress ้…็ฝฎ
โ”‚   โ”œโ”€โ”€ config.ts          # ็ซ™็‚น้…็ฝฎ
โ”‚   โ””โ”€โ”€ theme/             # ไธป้ข˜ๅฎšๅˆถ
โ”‚
โ”œโ”€โ”€ guide/                  # ๐Ÿ“š ๆŒ‡ๅ—ๆ–‡ๆกฃ
โ”‚   โ”œโ”€โ”€ index.md           # ้กน็›ฎไป‹็ป
โ”‚   โ”œโ”€โ”€ getting-started.md # ๅฟซ้€Ÿๅผ€ๅง‹
โ”‚   โ”œโ”€โ”€ structure.md       # ้กน็›ฎ็ป“ๆž„
โ”‚   โ”œโ”€โ”€ backend.md         # ๅŽ็ซฏ็Ÿฅ่ฏ†ๅบ“
โ”‚   โ”œโ”€โ”€ frontend.md        # ๅ‰็ซฏ็Ÿฅ่ฏ†ๅบ“
โ”‚   โ”œโ”€โ”€ router.md          # ่ทฏ็”ฑๅ’Œ่œๅ•
โ”‚   โ”œโ”€โ”€ permission.md      # ๆƒ้™ๆŽงๅˆถ
โ”‚   โ”œโ”€โ”€ request.md         # ่ฏทๆฑ‚ๅ’ŒๆŽฅๅฃ
โ”‚   โ”œโ”€โ”€ mcp.md             # MCP ๆœๅŠก
โ”‚   โ””โ”€โ”€ deploy.md          # ้ƒจ็ฝฒๆŒ‡ๅ—
โ”‚
โ”œโ”€โ”€ config/                 # โš™๏ธ ้…็ฝฎๆ–‡ๆกฃ
โ”œโ”€โ”€ api/                    # ๐Ÿ“ก API ๆ–‡ๆกฃ
โ””โ”€โ”€ public/                 # ๐Ÿ“ ้™ๆ€่ต„ๆบ
    โ”œโ”€โ”€ logo.png           # Logo
    โ”œโ”€โ”€ favicon.ico        # ๅ›พๆ ‡
    โ””โ”€โ”€ screenshots/       # ็ณป็ปŸๆˆชๅ›พ

๐Ÿณ Docker ็ป“ๆž„ (docker/) โ€‹

docker/
โ”œโ”€โ”€ Dockerfile.backend      # ๅŽ็ซฏ้•œๅƒ
โ”œโ”€โ”€ Dockerfile.frontend     # ๅ‰็ซฏ้•œๅƒ
โ””โ”€โ”€ nginx.conf             # Nginx ้…็ฝฎ

๐Ÿ“ ๅ…ณ้”ฎๆ–‡ไปถ่ฏดๆ˜Ž โ€‹

ๆ–‡ไปถ่ฏดๆ˜Ž
server/main.pyๅŽ็ซฏๅ…ฅๅฃ๏ผŒ่‡ชๅŠจๆฃ€ๆต‹้…็ฝฎๅฏๅŠจๅฏนๅบ”ๆœๅŠก
server/app.pyFastAPI ๅบ”็”จๅฎžไพ‹๏ผŒๆณจๅ†Œ่ทฏ็”ฑๅ’Œไธญ้—ดไปถ
server/config.yamlๅŽ็ซฏ้…็ฝฎๆ–‡ไปถ๏ผˆ้ฆ–ๆฌกๅฏๅŠจๅŽ็”Ÿๆˆ๏ผ‰
web/src/main.tsๅ‰็ซฏๅ…ฅๅฃ๏ผŒๅˆๅง‹ๅŒ– Vue ๅบ”็”จ
web/vite.config.tsVite ๆž„ๅปบ้…็ฝฎ
docker-compose.ymlDocker ๆœๅŠก็ผ–ๆŽ’

๐Ÿ”— ็›ธๅ…ณๆ–‡ๆกฃ โ€‹

Released under the MIT License.