别再让照片吃灰了!用Docker+宝塔面板,30分钟搞定你的私人Lychee相册(附域名绑定教程)
·
零基础搭建私有Lychee相册:Docker与宝塔面板的高效组合方案
每次旅行归来或家庭聚会后,手机里堆积的照片总让人头疼——iCloud空间不足、社交平台压缩画质、硬盘备份又难以随时查看。其实只需一台基础配置的云服务器,配合Docker和宝塔面板,30分钟就能打造一个私有化部署、全平台访问的专业级相册系统。不同于网盘和社交平台的限制,Lychee相册提供原画质存储、智能分类和灵活的分享控制,真正实现数字资产的自主管理。
1. 环境准备与基础配置
1.1 服务器选购与初始化
对于个人相册这类轻量级应用,建议选择2核4G内存、50GB SSD存储的基础配置(腾讯云轻量服务器约年费300元)。关键注意三点:
- 地域选择:优先靠近用户所在区域(如华南用户选广州节点)
- 镜像模板:直接选用"宝塔面板7.9.3"官方镜像
- 防火墙规则:预放行8888(宝塔面板)、80/443(Web服务)、5120(Lychee默认端口)
登录服务器后,终端执行以下命令获取宝塔面板初始信息:
sudo /etc/init.d/bt default
输出示例:
==================================================================
BT-Panel default info!
==================================================================
外网面板地址: http://123.123.123.123:8888
username: admin
password: ********
==================================================================
1.2 宝塔面板基础环境部署
首次登录宝塔面板需完成三项核心配置:
-
LNMP环境安装:
- Nginx 1.22+
- MySQL 5.7(建议分配1GB内存)
- PHP 8.0(需安装fileinfo扩展)
- 编译安装模式更稳定
-
Docker管理器安装:
- 通过宝塔"软件商店"直接安装
- 或命令行执行:
curl -fsSL https://get.docker.com | sh systemctl enable docker
-
安全加固:
- 修改默认8888端口为非常用端口
- 设置面板访问IP白名单
- 开启BasicAuth二次验证
提示:若遇到"请使用正确的入口登录面板"错误,执行
/etc/init.d/bt restart重启服务即可
2. Lychee容器化部署实战
2.1 Docker镜像的智能管理
Lychee官方镜像提供三种部署方式:
| 部署方式 | 命令示例 | 适用场景 |
|---|---|---|
| 基础运行 | docker run -d -p 5120:80 lycheeorg/lychee | 快速测试 |
| 数据持久化 | docker run -d -v /lychee_data:/data ... | 生产环境 |
| 多容器编排 | 使用docker-compose.yml | 高可用部署 |
推荐使用数据持久化方案,避免容器重建导致照片丢失:
mkdir -p /data/lychee/{uploads,db}
docker run -d \
-p 5120:80 \
-v /data/lychee/uploads:/uploads \
-v /data/lychee/db:/db \
lycheeorg/lychee
2.2 性能优化配置
修改config/.env文件(需先进入容器):
# 内存缓存配置
MEMORY_LIMIT=512M
UPLOAD_MAX_SIZE=100M
# 图像处理参数
IMAGE_QUALITY=90
ENABLE_DECLINE_TAKEDOWN=true
关键优化点:
- 缩略图策略:根据访问设备动态生成
- 缓存机制:启用Redis可提升20%加载速度
- 定时任务:每日凌晨执行存储优化
3. 域名绑定与HTTPS加密
3.1 宝塔面板反向代理配置
- 添加站点时勾选"创建数据库",选择MySQL 5.7
- 在"反向代理"选项卡中添加:
- 目标URL:
http://127.0.0.1:5120 - 高级设置中启用WebSocket支持
- 目标URL:
- 配置文件追加以下参数:
client_max_body_size 100M; proxy_read_timeout 300s;
3.2 免费SSL证书部署
宝塔面板支持Let's Encrypt自动续签:
- 在"SSL"选项卡选择"Let's Encrypt"
- 勾选强制HTTPS和HTTP/2支持
- 添加以下HSTS安全头:
add_header Strict-Transport-Security "max-age=63072000" always;
常见问题排查:
- 证书不生效:检查443端口是否放行
- 混合内容警告:修改Lychee配置中的
APP_URL为https - 重定向循环:清除浏览器缓存或使用无痕模式
4. 高级功能与维护技巧
4.1 自动化备份方案
创建/root/lychee_backup.sh脚本:
#!/bin/bash
# 数据库备份
docker exec lychee_db mysqldump -uroot -p"$DB_PASS" lychee > /backups/lychee_$(date +%F).sql
# 照片归档
tar -czf /backups/uploads_$(date +%F).tar.gz /data/lychee/uploads
# 同步到OSS
ossutil cp -r /backups oss://your-bucket/lychee/
设置定时任务:
chmod +x /root/lychee_backup.sh
(crontab -l ; echo "0 3 * * * /root/lychee_backup.sh") | crontab -
4.2 移动端优化实践
- PWA支持:
- 修改
manifest.json适配iOS/Android图标 - 启用Service Worker离线缓存
- 修改
- 上传优化:
// 在public/js/main.js中添加 if(navigator.userAgent.match(/Mobile/)) { uploader.options.chunkSize = 2 * 1024 * 1024; } - 相册分享:
- 生成时效性链接(1天/7天/30天)
- 设置查看密码和下载权限
遇到服务器迁移时,只需打包/data/lychee目录到新服务器,重新启动容器即可完整恢复。曾有位用户将包含3TB照片的Lychee实例从腾讯云迁移到AWS,仅耗时45分钟就完成了全部转移。
更多推荐
所有评论(0)