Sign inSign up

dick86114/phowson

By dick86114

•Updated 8 months ago

Image
0

569

dick86114/phowson repository overview

GHBanner

⁠Phowson - 浮生(PhotoLogs)

个人摄影分享与复盘网站:支持作品上传、EXIF 解析、管理后台、点赞评论、数据统计,并已将数据从 localStorage 迁移到 Postgres。

本仓库采用「开源核心 + 私有扩展」模式:核心能力开源,敏感/差异化能力通过可选的私有扩展注入。

pc端 alt text alt text

移动端 alt text

⁠技术栈

  • 前端:React + Vite + TypeScript + Tailwind
  • 后端:Fastify
  • 数据库:Postgres

⁠开源许可证

本项目以 MIT License 开源,见 LICENSE⁠。

⁠本地启动

前置条件

  • Node.js(建议 18+)
  • pnpm
  • 可访问的 Postgres 实例
⁠1)安装依赖
pnpm install
⁠2)配置后端环境变量

复制 server/.env.example 的内容到项目根目录的 .env.local,并填写你的数据库连接串:

DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/DB
HOST=0.0.0.0
PORT=2615
⁠3)初始化数据库表结构
pnpm db:migrate
⁠4)导入示例数据(可选)

将 constants.ts 的 MOCK_PHOTOS 写入数据库:

pnpm db:seed:env
⁠5)启动后端
pnpm dev:server

默认监听 http://localhost:2615,媒体资源通过 /media/photos/:id、/media/avatars/:id 提供。

⁠6)启动前端
pnpm dev

浏览器访问 http://localhost:26214。

⁠Docker 一键启动(推荐)

docker compose up --build
  • 前端:http://localhost:26214
  • 后端:http://localhost:26215
  • 数据库:localhost:5432

⁠环境变量说明

⁠前端(.env)
  • VITE_API_BASE_URL:后端 API 地址。推荐留空(走同源反代或 Vite proxy)
  • VITE_PROXY_TARGET:Vite 开发代理的后端地址,默认 http://127.0.0.1:2615
  • VITE_PRIVATE_WEB_DISABLED=true:禁用前端私有扩展注入
  • PRIVATE_WEB_MODULE=@your-scope/phowson-private-web:从私有 npm 包注入前端扩展(构建时生效)
⁠后端(.env)

.env.local 默认已被 git 忽略。

  • DATABASE_URL:Postgres 连接串
  • HOST / PORT:后端监听地址与端口
  • ADMIN_EMAIL / ADMIN_PASSWORD:初始化管理员账号(Docker 示例中已提供默认值)

可选:AI(服务端调用,不会暴露到浏览器)

  • AI_PROVIDER:gemini / openai_compatible / openrouter / vercelai_gateway / anthropic
  • 通用 OpenAI 兼容配置:
    • AI_API_KEY/AI_BASE_URL/AI_MODEL
    • 或 AI_COMPATIBLE_API_KEY/AI_COMPATIBLE_BASE_URL/AI_COMPATIBLE_MODEL
  • Gemini:GEMINI_API_KEY(或 AI_API_KEY)

可选:对象存储(S3/R2/MinIO)

  • S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY / S3_BUCKET / S3_PUBLIC_BASE_URL:启用对象存储上传
  • S3_ENDPOINT / S3_REGION / S3_FORCE_PATH_STYLE:S3 兼容服务配置(R2/MinIO 常用)
  • UPLOAD_MAX_BYTES:上传大小限制(字节)

Tag summary

Content type

Image

Digest

sha256:a2567f746…

Size

126.5 MB

Last updated

8 months ago

docker pull dick86114/phowson