【docker】多功能、内置编辑的图床 | Picsur

2024-08-20 19:12:16 浏览数 (2)

本文发布于181天前,最后更新于139天前,其中的信息可能有所发展或是发生改变。

1. 前言

夜梦在以前的文章中已经介绍了多种图床的部署,例如:

  • 兰空图床:【宝塔】兰空图床 快速部署 / 【docker】兰空图床
  • 简单图床:简单图床,真的简单!EasyImage搭建/使用教程

在这篇文章中,夜梦介绍另一个好用的图床项目:Picsur

项目GitHub:CaramelFur/Picsur

演示:

特点:

  • Uploading and viewing images 上传并预览图片
  • Anonymous uploads 匿名上传
  • User accounts 可创建单独用户
  • User roles and permissions 可设置用户权限
  • Proper CORS restrictions 适当的CORS限制
  • Exif stripping exif信息剥离
  • Ability to keep original 上传的图像可以保持原始图像
  • Support for many formats 支持多种格式
    • QOI
    • JPG
    • PNG
    • WEBP (animated supported)
    • TIFF
    • BMP
    • GIF (animated supported)
  • Convert images 支持转化格式
  • Edit images 支持编辑图像
    • Resize
    • Rotate
    • Flip
    • Strip transparency
    • Negative
    • Greyscale
  • Deletable images 支持删除图像
  • Proper DB migrations 可以进行数据库迁移
  • Show own images in list 支持在列表中显示自己的图片
  • Correct previews on chats 支持在聊天窗口上正确显示预览图
  • Expiring images 支持设置图像的有效期
  • ShareX endpoint 支持ShareX
  • ARM64 and AMD64 Docker image 支持docker部署
  • White mode 白色模式
  • Public gallery 画廊
  • Albums 相册

2. 准备

不使用域名可能会导致些许bug(例如无法直接复制链接)。

在开始部署之前,你需要安装 docker 和 docker-compose。具体安装见:【docker】在服务器上安装 docker/docker-compose

3. 部署

创建文件夹:

代码语言:javascript复制
mkdir -p /root/data/docker_data/picsur && cd /root/data/docker_data/picsur

创建配置文件:

代码语言:javascript复制
vim docker-compose.yml

然后贴入配置(官方),记得修改下面配置中的PICSUR_DB_PASSWORDPICSUR_ADMIN_PASSWORD

代码语言:javascript复制
version: '3'
services:
  picsur:
    image: ghcr.io/caramelfur/picsur:latest
    container_name: picsur
    ports:
      - '23345:8080' #左侧23345端口可以修改为服务器未被占用的端口
    environment:
       PICSUR_HOST: '0.0.0.0'
       PICSUR_PORT: 8080
 
       PICSUR_DB_HOST: picsur_postgres
       PICSUR_DB_PORT: 5432
       PICSUR_DB_USERNAME: picsur
       PICSUR_DB_PASSWORD: picsurSTRONGPASSWORD_SAMEASBELLOW
       PICSUR_DB_DATABASE: picsur
 
      ## 用户名只能是admin,改不了。下面设置的是管理员密码。
       PICSUR_ADMIN_PASSWORD: YEMENGpicsurSTRONGPASSWORD
 
      ## 可选,不设置就是用随机的密钥
      # PICSUR_JWT_SECRET: CHANGE_ME
      # PICSUR_JWT_EXPIRY: 7d
 
 
      ## 最大能上传的图片大小,128000000就是128M
       PICSUR_MAX_FILE_SIZE: 128000000
      ## No need to touch this, unless you use a custom frontend
      # PICSUR_STATIC_FRONTEND_ROOT: "/picsur/frontend/dist"
 
      ## Warning: Verbose mode might log sensitive data
      # PICSUR_VERBOSE: "true"
    restart: unless-stopped
  picsur_postgres:
    image: postgres:14-alpine
    container_name: picsur_postgres
    environment:
      POSTGRES_DB: picsur
      POSTGRES_PASSWORD: picsurSTRONGPASSWORD_SAMEASBELLOW
      POSTGRES_USER: picsur
    restart: unless-stopped
    volumes:
      - ./picsur-data:/var/lib/postgresql/data
volumes:
  picsur-data:

完成后,我们开始部署:

代码语言:javascript复制
docker-compose up -d

4. 反向代理

夜梦强烈建议你使用域名,如果你已经完成域名解析,那么你可以看夜梦的这两篇文章进行反向代理:

【docker】反向代理神器 ——Nginx Proxy Manager 的安装

【docker】Nginx Proxy Manager 的使用

5. 使用

访问ip:23345或者你的域名(完成反向代理)以后,我们进入图床:

然后我们使用设置的用户名密码登录:

  • 用户名:admin
  • 密码:你自己设置的,夜梦这里是YEMENGpicsurSTRONGPASSWORD

登录之后:

上传图片只需要把图片拉入页面,很方便!

上传完以后,会在图片下方提供多种格式的链接供你在别的地方引用这张图片!

你可以直接修改图片的格式,以便用于不同的环境中:

可以设置图片的有效时间,过期删除:

如果有需要,你可以直接编辑图片的样式:

在管理员后台,你可以设置其他的内容。比如可以设置APIKEY,添加新用户(可单独设置使用权限)。

6. 后续

6.1 更新项目

代码语言:javascript复制
cd /root/data/docker_data/picsur
docker-compose down
docker-compose pull
docker-compose up -d
docker image prune

6.2 卸载项目

代码语言:javascript复制
cd /root/data/docker_data/picsur
docker-compose down
cd ..
rm -rf /root/data/docker_data/picsur

0 人点赞