- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
赛博风格的个人影像站,几乎零成本部署使用,页面效果如图:
首页
公开图片展示
图片详情
相册足迹
边界地球
管理员上传页
管理员控制台
仓库地址:GitHub - Space3044/Pixel-Space · GitHub
技术栈如图:
功能概览如图:
部署方式
1.在 cloudflare 中创建 D1 数据库,命名为 pixel-space,将 Pixel-Space/db/schema.sql at main · Space3044/Pixel-Space · GitHub 填入 D1 控制台并运行。
2.在 cloudflare 中创建 R2 桶,命名为 pixel-space。
3.fork 本仓库,将 Pixel-Space/wrangler.toml at main · Space3044/Pixel-Space · GitHub 文件中的 database_id 填写自己真实创建的 D1 数据库的 id。
4.在 cloudflare pages 创建项目,连接 github 仓库。
pnpm build 构建命令
dist 输出目录
生产环境变量如下:
# Telegram 原始图片存档
# 创建 tg 机器人,创建 tg 频道,将机器人添加为频道管理员
TG_BOT_TOKEN=
TG_CHAT_ID=
# 兼容 OpenAI 的 AI 代理认证密钥
# 推荐自部署 CPA,这样就可以长久只使用一个 Key
PROXY_KEY=
# 高德地图前端 JS API 配置(国内地图)
# 高德开发者平台新建项目,添加 Key,选择 Web 端,设置域名白名单
AMAP_JS_KEY=
AMAP_SECURITY_JS_CODE=
# 高德地图 Web 服务密钥(服务端国内静态地图)
# 高德开发者平台添加 Key,选择 Web 服务
AMAP_WEB_KEY=
# Mapbox 公共令牌(全球地图及静态地图生成)
# Mapbox 注册我使用的是 Proton Mail,虚拟 0 刀卡,设置域名白名单
MAPBOX_PUBLIC_TOKEN=
# MapTiler 密钥(全球地理编码)
# 直接邮箱注册
MAPTILER_KEY=
# Cloudflare Turnstile 访客验证,使用验证码获取原图时使用
# cloudflare 创建 turnstile 组件
TURNSTILE_SECRET_KEY=
VITE_TURNSTILE_SITE_KEY=
# Cloudflare Access 生产环境管理员认证
# cloudflare zero trust 下访问控制新建一个应用程序,保护 /upload*,/library*,/api/admin/* 三个路径,策略选电子邮件,填入管理员邮箱
CF_ACCESS_AUD=
CF_ACCESS_TEAM_DOMAIN=
变量具体说明:
仓库内提示词可以借鉴优化:Pixel-Space/db/ai-prompt.example.md at main · Space3044/Pixel-Space · GitHub
本项目通过 https://linux.do/t/topic/1179841 获得灵感,更偏向于个人使用。
本项目的边界地球交互参考并改写自 @lsy 佬的https://github.com/lsy2246/newechoes/blob/master/src/components/WorldHeatmap.tsx
tips:
如果图片的exif自带经纬度信息可以自动逆位置名称,不带经纬度信息只能手动锚点或搜索定位。
尼康相机如果机身没带 GPS 模块,可通过 SnapBridge 连接相机,拍摄时通过手机获取位置信息传到相机写入 exif(我最近才知道,我目前上传图片都是手动凭记忆定位
)
1 个帖子 - 1 位参与者