精简后的项目:仅保留 api/ui 源码、文档、构建依赖

This commit is contained in:
gallery
2026-09-11 16:11:09 +08:00
commit 490e85634e
457 changed files with 86862 additions and 0 deletions
+140
View File
@@ -0,0 +1,140 @@
# gallery.fukun.net
基于 [Photoview](https://github.com/photoview/photoview) 定制的个人相册,部署在腾讯云 `62.234.90.54`。
---
## 访问
| 地址 | 说明 |
|------|------|
| `https://gallery.fukun.net` | 管理后台(需登录) |
| `https://cdn.fukun.net/gallery/photos/...` | CDN 公开原图 |
---
## 定制项(与上游 Photoview 的差异)
- **品牌** — 左上角 FK 书法 logo,页面标题 `Gallery.FuKun.Net`
- **外观** — 纯黑背景 (`#000`),菜单图标改为极简线条
- **字体** — iA Writer Quattro S + Noto Sans SC(与主站 fukun.net 一致)
- **CDN** — 公开原图走 `cdn.fukun.net`,带 token 的鉴权图片自动切 CDN
- **无 Docker** — Go 二进制 + systemd,SQLite 单文件数据库
- **人脸识别** — 已关闭(`PHOTOVIEW_DISABLE_FACE_RECOGNITION=1`)
---
## 目录结构
```
/home/gallery/
├── photoview-src/ # 源码 + 编译产物
│ ├── api/
│ │ ├── .env # 运行时环境变量
│ │ └── photoview # Go 二进制(38MB)
│ └── ui/
│ └── dist/ # 前端构建产物
├── photos/ # 相片库根目录
└── data/
├── photoview.db # SQLite 数据库
└── media-cache/ # 缩略图缓存
```
---
## 本地开发
> 后端依赖 Linux C 库(dlib/libheif/ImageMagick),无法在 Windows 本地运行。
> 只能改前端代码,API 指向生产环境。
```bash
git clone ssh://git@fukun.net/data/git-repos/gallery.git
cd ui
cat > .env << EOF
REACT_APP_API_ENDPOINT=https://gallery.fukun.net/api/
REACT_APP_BUILD_VERSION=dev
REACT_APP_BUILD_DATE=$(date -u +%Y-%m-%d)
REACT_APP_BUILD_COMMIT_SHA=local
EOF
npm ci
npm run dev # localhost:1234,API 连生产服务器
```
---
## 部署到服务器
```bash
# 构建前端
scp -r ui/src ui/public ubuntu@62.234.90.54:/tmp/pv-ui/
ssh ubuntu@62.234.90.54 '
sudo cp -r /tmp/pv-ui/* /home/gallery/photoview-src/ui/
sudo chown -R gallery:gallery /home/gallery/photoview-src/ui
sudo -u gallery bash -c "cd /home/gallery/photoview-src/ui && npm ci && npm run build"
'
# 构建后端 + 重启
ssh ubuntu@62.234.90.54 '
cd /home/gallery/photoview-src/api
export PKG_CONFIG_PATH=/usr/local/im7/lib/pkgconfig CGO_ENABLED=1
sudo -u gallery go build -o photoview .
sudo systemctl restart photoview
'
```
---
## 运行时配置
**systemd** — `/etc/systemd/system/photoview.service`
| 环境变量 | 值 |
|----------|-----|
| `PHOTOVIEW_DATABASE_DRIVER` | `sqlite` |
| `PHOTOVIEW_SQLITE_PATH` | `/home/gallery/data/photoview.db` |
| `PHOTOVIEW_LISTEN_IP` | `127.0.0.1` |
| `PHOTOVIEW_LISTEN_PORT` | `8000` |
| `PHOTOVIEW_SERVE_UI` | `1` |
| `PHOTOVIEW_UI_PATH` | `/home/gallery/photoview-src/ui/dist` |
| `PHOTOVIEW_MEDIA_CACHE` | `/home/gallery/data/media-cache` |
| `PHOTOVIEW_DISABLE_FACE_RECOGNITION` | `1` |
| `LD_LIBRARY_PATH` | `/usr/local/im7/lib` |
**Nginx** — `/etc/nginx/sites-enabled/gallery.fukun.net`
- `gallery.fukun.net` + `cdn.fukun.net` → HTTPS → `127.0.0.1:8000`
- `/photos/` → `alias /home/gallery/photos/`(CDN 回源口)
- `/assets/` → 缓存 30 天
**SSL 证书** — 腾讯云证书,`/etc/nginx/ssl/gallery.fukun.net_*`
---
## 维护
```bash
# 查看状态
sudo systemctl status photoview
sudo journalctl -u photoview -f
# 重启
sudo systemctl restart photoview
# 备份数据库
sudo cp /home/gallery/data/photoview.db /opt/backup/photoview_$(date +%Y%m%d).db
# 上传照片
scp *.jpg ubuntu@62.234.90.54:/home/gallery/photos/
```
---
## 仓库
```
ssh://git@fukun.net/data/git-repos/gallery.git
```
服务器上 `/data/git-repos/gallery.git`(bare),推送到 `master`。