Skip to content

Repository files navigation

Sello

Sello 是面向电商卖家的智能 SaaS 助手,域名暂定为 sellohub.com。系统采用前后端分离架构,前端由多个 Next.js + Tailwind CSS 应用组成,后端使用 FastAPI 提供统一 API,数据存储选择 PostgreSQL。

应用边界

  • website:产品介绍与宣传站点,承担注册、试用申请、线索收集、公开内容展示。
  • portal:客户使用的 SaaS Portal,支持多租户、团队协作、店铺接入、智能助手工作台。
  • admin:Sello 内部后台管理系统,用于统一管理客户、用户、租户、订阅和系统配置。
  • api:统一后端 API 服务,供 websiteportaladmin 共同调用。

技术栈

  • Frontend:Next.js、React、Tailwind CSS、TypeScript
  • Backend:FastAPI、Python
  • Database:PostgreSQL
  • Architecture:Monorepo、前后端分离、多租户 SaaS

文档

建议仓库结构

sellohub/
	apps/
		website/
		portal/
		admin/
	services/
		api/
	packages/
		ui/
		config/
		types/
	docs/

本地开发

前端工作区使用 pnpm workspace,四个应用服务分别位于独立目录:

  • apps/website:产品宣传站点,默认端口 3000
  • apps/portal:客户 SaaS Portal,默认端口 3001
  • apps/admin:平台后台管理系统,默认端口 3002
  • services/api:FastAPI 统一后端 API,默认端口 8000

安装前端依赖:

corepack enable pnpm
pnpm install

浏览器端 portal/admin 登录页会读取 NEXT_PUBLIC_SELLO_API_URL 调用 API。默认本地值为:

NEXT_PUBLIC_SELLO_API_URL=http://localhost:8000

启动前端应用:

pnpm dev:all

也可以分别启动:

pnpm dev:website
pnpm dev:portal
pnpm dev:admin

初始化 API 数据库:

cd services/api
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

确保本机 PostgreSQL 已启动,并创建和 .env.exampleDATABASE_URL 对应的用户与数据库。默认开发配置使用:

postgresql+psycopg://sello:sello@localhost:5432/sello

如果使用默认配置,可以在本机 PostgreSQL 中执行:

psql postgres -c "create role sello with login password 'sello';"
psql postgres -c "create database sello owner sello;"

如果角色或数据库已存在,可以忽略对应错误,或按本机实际情况修改 .env 中的 DATABASE_URL

执行数据库初始化迁移:

alembic upgrade head

开发阶段如果需要重置数据库,可以执行:

alembic downgrade base
alembic upgrade head

downgrade base 会删除所有 Sello 业务表和数据;upgrade head 会重新创建表并写入默认测试数据。

如需重新同步默认测试数据,也可以重复执行:

python -m app.seed

迁移和 seed 命令都会确保存在一个内置平台 owner 和一个 demo 租户及其 tenant owner:

Admin:  platform-owner@sello.local / PlatformOwner123!
Portal: tenant-owner@sello.local / TenantOwner123!
Tenant: demo

平台 owner 是内置用户,可直接登录 admin。demo tenant owner 是默认测试账号,可直接登录 portal,方便本地测试。后续通过 admin 或 portal 创建的非内置用户仍会要求首次登录后修改初始密码。

当前项目仍处于开发阶段,数据库 schema 只维护初始化迁移 services/api/alembic/versions/00001_initial_core_tables.py。发布首个生产版本前,如需改表,直接修改 SQLAlchemy model 和 00001 初始化迁移,不新增补丁迁移。

启动 API 服务:

cd services/api
source .venv/bin/activate
uvicorn app.main:app --reload --port 8000

API 健康检查:

curl http://localhost:8000/health

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages