个人摄影分享与复盘网站:支持作品上传、EXIF 解析、管理后台、点赞评论、数据统计,并已将数据从 localStorage 迁移到 Postgres。
本仓库采用「开源核心 + 私有扩展」模式:核心能力开源,敏感/差异化能力通过可选的私有扩展注入。
pc端

移动端

本项目以 MIT License 开源,见 LICENSE。
前置条件
pnpm install
复制 server/.env.example 的内容到项目根目录的 .env.local,并填写你的数据库连接串:
DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/DB
HOST=0.0.0.0
PORT=2615
pnpm db:migrate
将 constants.ts 的 MOCK_PHOTOS 写入数据库:
pnpm db:seed:env
pnpm dev:server
默认监听 http://localhost:2615,媒体资源通过 /media/photos/:id、/media/avatars/:id 提供。
pnpm dev
浏览器访问 http://localhost:26214。
docker compose up --build
http://localhost:26214http://localhost:26215localhost:5432VITE_API_BASE_URL:后端 API 地址。推荐留空(走同源反代或 Vite proxy)VITE_PROXY_TARGET:Vite 开发代理的后端地址,默认 http://127.0.0.1:2615VITE_PRIVATE_WEB_DISABLED=true:禁用前端私有扩展注入PRIVATE_WEB_MODULE=@your-scope/phowson-private-web:从私有 npm 包注入前端扩展(构建时生效).env.local 默认已被 git 忽略。
DATABASE_URL:Postgres 连接串HOST / PORT:后端监听地址与端口ADMIN_EMAIL / ADMIN_PASSWORD:初始化管理员账号(Docker 示例中已提供默认值)可选:AI(服务端调用,不会暴露到浏览器)
AI_PROVIDER:gemini / openai_compatible / openrouter / vercelai_gateway / anthropicAI_API_KEY/AI_BASE_URL/AI_MODELAI_COMPATIBLE_API_KEY/AI_COMPATIBLE_BASE_URL/AI_COMPATIBLE_MODELGEMINI_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:上传大小限制(字节)Content type
Image
Digest
sha256:a2567f746…
Size
126.5 MB
Last updated
8 months ago
docker pull dick86114/phowson