拓之

拓之

搭建一个私人的轻量图床easyimage

2023-10-04
搭建一个私人的轻量图床easyimage

介绍

easyimage图床是一个轻量级的图床,占用内存非常少。但是别看他是轻量级,该有的功能一个都不少,设置非常丰富。图片压缩,水印设置等等。也可以搭配picgo或者Upic,把自己的typora图片上传到图床上,非常方便。就是界面丑了点。

我之前用的是兰空图床,功能也很丰富,而且最让我看重的一点是界面非常好看,相册可以非常方便的管理图片,但是后来还是转easyimag了,主要因为两点,第一就是没有图片压缩功能,我找了很久,最后只找到一个保存图片质量的设置,这就导致存在里面的图片都很大,加载起来非常慢。第二也是比较关键的一点,占用内存太大了,非常重,对于一个图床来说,我觉得没必要占有这么多,最后也就换到easyimag了。

本教程采用docker进行搭建,主要是方便管理,不想用一键就能删,想用一键就能启动,也不用配置自启动。

很多地方参考了咕咕大佬,他做的很多docker项目教程都很好。

651d313fda62b.png image-20231004180706254

环境

  1. 一台云服务器。系统我这里是centos8(也可以是ubuntu等等)
  2. docker
  3. docker-compose

docker和docker-compose的安装大家可以自行百度,我之后也会出一个简单的教程。

链接

  1. 项目地址
  2. docker镜像

开始搭建

使用docker搭建非常方便,我们先创建一个存放该项目的文件夹,这里推荐大家创建一个专门放docker的文件夹,进行统一管理,比如我是在/data/docker这个文件夹中统一管理。

输入以下命令

# 创建
mkdir /data/docker/easyimage
# 进入该目录
cd /data/docker/easyimage

接下来运行docker有两种方法都可以,一个是用docker,另一种是用docker-compose

  1. Docker是一个容器化平台,用于将应用程序及其依赖项打包成独立的容器,以实现跨平台和可移植性。
  2. Docker Compose是一个用于定义和运行多个Docker容器的工具,通过一个YAML文件配置应用程序的服务、网络和卷等,方便管理容器之间的关系和依赖。

推荐新手是用docker-compose,因为方便管理以及后续的升级之类的。下面对两种方法分别进行介绍。

1. 服务器端部署

1. docker部署

下面就是要运行的命令,你可以先对其进行修改。可以修改的位置有
-p 8081:80中的8081,可以改成你服务器没有占用的端口,右边的80不要乱动
-v两个-v中的冒号左边的路径都可以改,我这里是统一放进了/data/docker/easyimage

改好之后就可以直接运行了,第一次运行会先从docker服务器拉取镜像,然后进行构建,速度会慢一点,如果下载太慢,可以更改docker源为国内的镜像源。
cl命令

docker run -itd \
  --name easyimage \
  -p 8081:80 \
  -e TZ=Asia/Shanghai \
  -e PUID=1000 \
  -e PGID=1000 \
  -e DEBUG=false \
  -v /data/docker/easyimage/config:/app/web/config \
  -v /data/docker/easyimage/i:/app/web/i \
  ddsderek/easyimage:latest

运行结束之后,没有报错的话就搭建完成了,浏览器上的操作和dockercompose一样了,之后一起说。

1. docker-compose部署

在当前目录中编辑一个docker-compose.yml文件

vim docker-compose.yml

进入之后,按下i键,然后把下面内容的复制进去

version: '3.3'
services:
  easyimage:
    image: ddsderek/easyimage:latest
    container_name: easyimage
    ports:
      - '8081:80'
    environment:
      - TZ=Asia/Shanghai
      - PUID=1000
      - PGID=1000
      - DEBUG=false
    volumes:
      - '/data/docker/easyimage/data/config:/app/web/config'
      - '/data/docker/easyimage/data/i:/app/web/i'
    restart: unless-stopped

然后对文件进行修改,其实可以看出这些内容与docker命令都是类似的。
ports里面的 "8081:80"中的8081,可以改成你服务器没有占用的端口,右边的80不要乱动,80是容器内部的端口。
-v两个-v中的冒号左边的路径可以改成你喜欢的,我这里是统一放进了/data/docker/easyimage/data

改好之后按下ESC键,然后输入:wq保存退出。

在当前文件夹中运行下面命令就可以了

docker-compose up -d

第一次运行会先从docker服务器拉取镜像,然后进行构建,速度会慢一点,如果下载太慢,可以更改docker源为国内的镜像源。

2.浏览器配置

经过服务器端的配置之后,就可以在你的浏览器输入下面的链接进行访问了,如果访问不进去的话,有可能是你的防火墙没打开,到服务器控制台把8081端口放开应该就可以了。

ip(你的服务器公网ip):8081(刚才配置的端口)

进入之后是这个页面

image-20231004154946503

我们点击下一步

651d196b31c6a.png

这里会让你配置管理账号密码,可以配置你记得住的,网站域名和图片链接先默认不动。点击开始安装

image-20231004155301042

用之前的账号密码登录进去

image-20231004155448966

出现这个页面咱们就成功喽,可以上传一张图片试试好不好用。这个界面怎么说呢,我个人感觉是一般,不过我也不经常在这里进行操作,我是搭配picgo来上传图片的。

==其实到这里已经可以正常使用了,但是要搭配picgo还需要一些简单的配置。==

3. 配置api搭配picgo

咱们打开设置中的图床安全

image-20231004160054084

拉到最下面,把这里的api上传打开

image-20231004160143762

这里也可以进行一些更改,比如打开登录上传之类的,作为一个私人的图床

更改完成之后一定要记得点下面的保存

保存之后,我们来到API设置这里

image-20231004160456415

把api调用地址还有token复制下来,你可以自己添加一个。

然后我们来到Picgo客户端下载地址

先去下载easyimage插件。

image-20231004160655108

在图床设置中把api调用地址以及token复制进来就可以了。完美了。

image-20231004160821968

4.配置typora

我们进入typora的偏好设置,下面的上传服务选择picgo(app)

image-20231004161530604

picgo路径就是你picgo的安装路径。

如果你想在粘贴本地图片时就直接上传服务器就把上面的插入图片时改成和我一样的,对网络上的图片看你自己。

到这里我们就配置好了,可以直接粘贴使用了。我一般用的比较多的是picgo-core也就是命令行版本,命令行版本不用时刻保持在后台运行,可以只在上传的时候使用。但是命令行版本上手难度稍高一点,后面可以单独出一个教程。

设置反代

目前来说我们都是通过ip加端口的形式进行的访问,这样链接就会显得比较长不好看。

但是如果你有一个域名的话,你就可以通过反代来用域名访问。

这里我们用的是Nginx Proxy Manager,一个可视化编辑nginx代理的项目,用这个配置比改nginx配置文件方便很多,没有也可以直接用nginx。下面开始教程。

首先在配置nginx之前,先去你的域名DNS服务商处把你想用的域名解析到你的IP地址上。配置好之后再进行下一步。

在Nginx Proxy Manager页面点击Add Proxy Host

image-20231004172333767 image-20231004172518932 image-20231004172627374

设置好后就点save保存就可以了。

这里改好之后我们再回到easyimage后台

image-20231004172809251

这里两个框里改好你刚才配置的域名,一定要注意http和https,刚才在nginx中开启了ssl就写https,没有就写http,别写错了,写错了就进不去网页了,要去配置文件中进行修改。

配置好记得点下面的保存。然后就可以直接用域名来访问了。

更新与卸载

1. 更新

进入docker-compose所在的文件夹

cd /data/docker/easyimage  

拉取最新的镜像

docker-compose pull

重新构建当前镜像

docker-compose up -d

更新后镜像内部会有一个install目录,所以要删除

docker exec -it easyimage rm -rf /app/web/install

2. 卸载

切换到root

sudo -i

进入docker-compose所在的文件夹

cd /data/docker/easyimage

停止容器,此时不会删除映射到本地的数据

docker-compose down

完全删除映射到本地的数据

rm -rf /data/docker/easyimage