前言
分享一款开源的简单图床服务-Picsur,类似的图床项目之前还分享过兰空图床有兴趣的可以了解下
Picsur类似 Imgur,具有内置转换功能可以直接转换图片格式
主要功能
- 匿名上传
- 用户帐户
- 用户角色和权限
- 适当的 CORS 限制
- Exif 剥离
- 保持原创的能力
- 支持多种格式
- QOI
- JPG
- PNG
- WEBP (支持动画)
- TIFF
- HEIF
- BMP
- GIF (支持动画)
- JPG-XL
- JPG-2000
- 转换图像
- 编辑图像
- 调整大小
- 旋转
- 翻动
- 条形透明度
- 消极的
- 灰度
- 可删除图像
- 正确的数据库迁移
- 在列表中显示自己的图像
- 更正聊天预览
- 图像过期
- ShareX 端点
demo
准备条件
1)一台服务器或者NAS
我们使用飞牛云NAS和VPS来演示
需要vps的可以看以下信息
香港VPS
香港Colo数据中心,3C直连,平均延时30+ms,免备案
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
香港BGP 标配版 | 1C | 1G | 30G | 3Mbps | 无限 | 22 元/月 | 点我购买 |
香港BGP 限量款 | 2C | 4G | 30G | 3Mbps | 无限 | 25 元/月 | 点我购买 |
香港BGP(弹性) | 2 – 16C | 4 – 32G | 30 – 400G | 3 – 20Mbps | 无限 | 22 元/月起 | 点我购买 |
香港Mega Two数据中心,三网CN2 GIA优化,实现全国超低延迟。
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
香港CN2 GIA 标配版 | 1C | 1G | 20G | 3Mbps | 无限 | 30 元/月 | 点我购买 |
香港CN2 GIA(弹性) | 2 – 32C | 2 – 128G | 40 – 700G | 3 – 30Mbps | 无限 | 48 元/月起 | 点我购买 |
日本VPS
日本服务器介绍
电信去程163,回程CN2,移动联通双程骨干直连,宽带质量优秀。
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
日本CN2(弹性) | 1 – 16C | 1 – 16G | 20-200G | 5 – 20Mbps | 不限流量 | 46 元/月起 | 点我购买 |
日本CN2大带宽(弹性) | 1 – 16C | 1 – 16G | 20-200G | 20 – 50Mbps | 500G/月 | 55 元/月起 | 点我购买 |
韩国VPS
韩国服务器介绍
韩国CN2优化线路,大陆访问快速响应,电信CN2
线路,带宽质量优秀
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
韩国CN2(弹性) | 1 – 32C | 1 – 128G | 20 – 100G | 3 – 20Mbps | 看需求 | ¥ 35.00 起/ 月 | 点我购买 |
韩国CN2大带宽(弹性) | 1 – 32C | 1 – 128G | 20 – 100G | 20 – 50Mbps | 300G/月起 | 38 元/月起 | 点我购买 |
美国VPS
美国T级防御云服务器介绍
去程普通线路,回程CN2/9929线路,大陆防御值为200G,超过峰值解封快。
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
美国T级防御(弹性) | 1 – 16C | 1 – 16G | 20 – 100G | 20 – 300Mbps | 不限流 | 40 元/月起 | 点我购买 |
美国高防(弹性) | 1 – 16C | 1 – 16G | 20 – 200G | 10 – 30Mbps | 不限流 | 58 元/月起 | 点我购买 |
美国高防大带宽(弹性) | 1 – 16G | 1 – 16G | 20 – 200G | 20 – 50Mbps | 500G/月 | 56 元/月起 | 点我购买 |
2)本项目使用到的github
https://github.com/caramelfur/picsur
3)域名(必须)
作为图床肯定是需要公网使用的
必须绑定,域名添加ssl证书,否则无法复制
会出现以上报错
①《飞牛NAS上搭建》
直接在docker新增一个compose项目即可
新建项目:
picsur
compose配置如下:
version: '3' # 选择适合的版本
services:
picsur:
image: ghcr.io/caramelfur/picsur:latest # 使用 picsur 镜像
container_name: picsur # 容器名称
ports:
- '8383:8080' # 将宿主机的 8383 端口映射到容器的 8080 端口
links:
- picsur_postgres # 连接到 picsur_postgres 服务
environment:
PICSUR_DB_HOST: picsur_postgres # 数据库主机名,指向 picsur_postgres 服务
PICSUR_DB_USERNAME: picsur # 数据库用户名
PICSUR_DB_PASSWORD: picsur # 数据库密码
PICSUR_DB_DATABASE: picsur # 数据库名称
PICSUR_ADMIN_PASSWORD: picsur12345 # 管理员密码,按需修改
restart: always # 容器崩溃时自动重启
picsur_postgres: # picsur_postgres 服务(PostgreSQL 数据库)
image: postgres:17-alpine # 使用 postgres:17-alpine 镜像
container_name: picsur_postgres # 容器名称
environment:
POSTGRES_DB: picsur # PostgreSQL 数据库名称
POSTGRES_PASSWORD: picsur # PostgreSQL 密码
POSTGRES_USER: picsur # PostgreSQL 用户名
restart: always # 容器崩溃时自动重启
volumes:
- ./data:/var/lib/postgresql/data # 持久化存储,将本地 ./data 目录挂载到容器的 PostgreSQL 数据目录
启动即可
正常启动
补充docker可用的镜像仓库
仓库1
https://proxy.1panel.live/
仓库2
https://docker.1panel.top/
仓库3
https://mirror.azure.cn/
仓库4
https://hub.rat.dev/
仓库5
https://docker.1ms.run
仓库6
https://docker.itelyou.cf/
仓库7
https://abc.itelyou.cf/
仓库8
https://docker.ywsj.tk/
②《vps上搭建》
一、Docker环境部署
在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04
推荐直接用一键脚本
docker安装脚本
bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)
docker-compose安装脚本
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
二、创建docker-compose.yml文件
mkdir picsur;cd picsur #创建一个目录,并进入此目录
vim docker-compose.yml
version: '3' # 选择适合的版本
services:
picsur:
image: ghcr.io/caramelfur/picsur:latest # 使用 picsur 镜像
container_name: picsur # 容器名称
ports:
- '8383:8080' # 将宿主机的 8383 端口映射到容器的 8080 端口
links:
- picsur_postgres # 连接到 picsur_postgres 服务
environment:
PICSUR_DB_HOST: picsur_postgres # 数据库主机名,指向 picsur_postgres 服务
PICSUR_DB_USERNAME: picsur # 数据库用户名
PICSUR_DB_PASSWORD: picsur # 数据库密码
PICSUR_DB_DATABASE: picsur # 数据库名称
PICSUR_ADMIN_PASSWORD: picsur12345 # 管理员密码,按需修改
restart: always # 容器崩溃时自动重启
picsur_postgres: # picsur_postgres 服务(PostgreSQL 数据库)
image: postgres:17-alpine # 使用 postgres:17-alpine 镜像
container_name: picsur_postgres # 容器名称
environment:
POSTGRES_DB: picsur # PostgreSQL 数据库名称
POSTGRES_PASSWORD: picsur # PostgreSQL 密码
POSTGRES_USER: picsur # PostgreSQL 用户名
restart: always # 容器崩溃时自动重启
volumes:
- ./data:/var/lib/postgresql/data # 持久化存储,将本地 ./data 目录挂载到容器的 PostgreSQL 数据目录
三、执行容器运行命令
docker-compose up -d #运行容器
docker-compose ps #查看是否开启成功
正常启动如下所示
docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
picsur ghcr.io/caramelfur/picsur:latest "docker-entrypoint.s…" picsur 24 hours ago Up 24 hours 0.0.0.0:8383->8080/tcp, [::]:8383->8080/tcp
picsur_postgres postgres:17-alpine "docker-entrypoint.s…" picsur_postgres 24 hours ago Up 24 hours 5432/tcp
[root@ECS-0536350098 picsur]#
四、打开web页面使用
成功以后需要打开自己相应的端口(8383)防火墙就可以web端访问了
打开自己VPS的端口加ip进入初始化页面
http://ip:8383
默认的管理员用户名密码如下
用户名
admin
密码(在docker-compose配置中PICSUR_ADMIN_PASSWORD修改)
picsur12345
默认只能管理员上传图片
如需要游客可以上传的需要开权限
其他功能自行研究
如需使用还需要绑定域名添加证书
五、数据持久化
如果需要更换服务器直接备份这个目录即可
tar -zcf picsur.tar.gz data docker-compose.yml
六、绑定域名
绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了
先加个域名前缀比如
p.yyzq.gq
按照如图自定义填写
在加上证书即可
然后就可以正常使用了
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
欢迎关注我们的微信公众号!
评论区