Chevereto 图床搭建 (docker部署)

图床对我们的意义

图床,就是专门用来存放图片,同时允许你把图片对外连接的网上空间。

我们做跨境平台,有一些平台或者用表格批量上传的时候需要图片链接,那么这个链接哪里来,一般都是上传到一些图片网站,比如 Flickr,Dumpt,imgur,又拍网等免费图片平台,上传上去之后,每张图片会有一个图片地址,这个链接就是你要做到表格里去的图片链接。

那有这些免费的图片平台,我们为啥还要自己部署呢,其实免费的图片平台有这样那样的缺点,不是很方便,说起他们的缺点,我们不妨先来说说,我们需要的图床的要求。

我们对图床的要求

私密性

我们的产品图的图床需要私密的,不公开的,除了图片链接可以直接访问到你的图片,其他情况都访问不到你的图片。这一点很多图床就做不到,很多图床都是公开的,在首页每个人都能找到你上传的图片

容量可控的

我们需要容量可控的,很多图床是有容量限制的,而且不大,很多铺货卖家完全不够用,有些可以付费扩容,有些不可以,我们需要的图床是容量可控的,能随时扩的

稳定持续

稳定持续当然是非常重要的,这几年来,图床服务倒闭了很多家,我们希望能稳定长久的使用,因为倒闭了,我们的链接也失效了,甚至会影响我们的销量

文件名不变

最后一点,这是最重要的一点,划重点了,我们的图床当图片上传上去的时候最好图片的文件名是不变的,我可以肯定的说,市面上百分之99的不管是付费还是免费的图片托管平台,都无法做到这点,为什么这点很重要呢,因为这点能大大提高我们的效率。

举个例子,比如我们四个产品的sku是 A001,A002,B001,B002,那么我们美工做完图片,给图片命名,假设每个sku 五张图片,那么图片应该是二十张,用sku来命名图片名称,我做个表格

SKU 第1张图片 第2张图片 第3张图片 第4张图片 第5张图片
A001 A001_1 A001_2 A001_3 A001_4 A001_5
A002 A002_1 A002_2 A002_3 A002_4 A002_5
B001 B001_1 B001_2 B001_3 B001_4 B001_5
B002 B002_1 B002_2 B002_3 B002_4 B002_5

我们去在产品表格的时候,需要添加图片

Chevereto 图床搭建 (docker部署)

注:xxx.com为你图床的域名,一般图片地址 http://xxx.com/images/ 这个前缀不变的

使用到的公式 "http://xxx.com/images/"&A2&"_1"

如果你用的图床上传后文件名不变,那么你只需要公式,然后下拉,就能完成整个表格的图片了,不需要一个一个复制。如果有几千个产品,是不是大大提高效率啊。这是文件名不变的第一个好处。

其二,假如你现在用的那个图床倒闭了,你要换图床,你只要把所有的图片上传到新的图床,由于你选的图床上传后文件名不变,那么你只要打开之前的产品表格,Ctrl+F,把前缀换了,表格就更新好了,不需要一个一个更新了,是不是很nice啊

所以我说对我们电商行业,图床上传后文件名不变是非常重要的功能,可惜市面上百分之99的图片托管平台没有这个功能,一般都是上传后文件名变为一串编码,非常遗憾。所以我有了自己部署图床的冲动


图床 Chevereto 部署

我们这里选用的图床程序是免费版的 Chevereto ,因为根据以上讲解,这个程序符合我们的要求,当然你也可以使用他们的付费版本,价格不菲,推荐土豪使用

我们用的服务器是 RackNerd – 3GB KVM ,用的系统是 Debian 10 64 Bit ,ip地址是洛杉矶(我们做跨境的嘛,服务器当然用境外的了)

Docker 安装 

用ssh工具登入后台,用root用户登入即可

拿到新的服务器,第一件是当然先更新包文件,等待完成

apt update
apt upgrade -y

完成后正式安装 docker ,需要wget命令,如果没有先安装,安装了的可忽略

apt-get update && apt-get install -y wget curl sudo vim git

然后输入docker 安装命令,等待安装完成

wget -qO- get.docker.com | bash

启动docker

systemctl start docker

把docker加入到开机启动

systemctl enable docker

安装docker-compose

GitHub – docker/compose下载 docker-compose-Linux-x86_64 文件,下载后改名为 docker-compose 然后上传到 linux 系统的 /user/local/bin/ 目录中

然后再执行第二行赋予文件执行权限

chmod +x /usr/local/bin/docker-compose

安装完成

创建 docker-compose.yml 文件并运行

我一般喜欢把docker数据目录放在 /home 目录下

mkdir /home/docker_data
mkdir /home/docker_data/chevereto

进入 /home/docker_data/chevereto 目录

cd /home/docker_data/chevereto

创建 docker-compose.yml 文件

vi docker-compose.yml

按 i 输入以下内容

version: '3'

services:
  db:
    image: mariadb
    volumes:
      - ./database:/var/lib/mysql:rw
    restart: always
    networks:
      - private
    environment:
      MYSQL_ROOT_PASSWORD: chevereto_root
      MYSQL_DATABASE: chevereto
      MYSQL_USER: chevereto
      MYSQL_PASSWORD: chevereto

  chevereto:
    depends_on:
      - db
    image: nmtan/chevereto
    restart: always
    networks:
      - private
    environment:
      CHEVERETO_DB_HOST: db
      CHEVERETO_DB_USERNAME: chevereto
      CHEVERETO_DB_PASSWORD: chevereto
      CHEVERETO_DB_NAME: chevereto
      CHEVERETO_DB_PREFIX: chv_
    volumes:
      - ./chevereto_images:/var/www/html/images:rw
    ports:
      - 8080:80

networks:
  private:
volumes:
  database:
  chevereto_images:

按esc,输入:wq 保存并退出

根据自己的需要,可以更改一些账户名,密码,端口等配置

在 /home/docker_data/chevereto 目录下,运行

docker-compose up -d

等待完成,打开浏览器,在地址栏输入你的服务器 ip:8080 访问了,但是浏览器刷新出来,有报错

如果刷不出页面,要注意防火墙了,阿里腾讯,你的云账号后台开的

Chevereto 图床搭建 (docker部署)

我们查看官方文档

Chevereto 将用户上传的图像存储在容器内的目录中。/var/www/html/images 您可以在此位置装载数据卷,以确保在重新启动/删除容器时不会丢失映像。请注意,在容器内,Chevereto 以用户身份运行(UID:33,GID:33)。因此,卷的权限必须允许此用户(使用此 UID)写入访问权限。因此,这意味着,如果将挂载目录绑定到映像中以用作 ,则必须更正该目录的所有权才能使应用程序正常工作。www-dataimages

官方文档说权限需要设置成 (UID:33,GID:33)

chown 33:33 chevereto_images/

刷新浏览器,搞定

其实现在这样子已经可以使用了,你自己用无非是链接地址带了ip,那我们能否把它换成域名,看接下来步骤

反向代理 chevereto 网站

我们这里用的反向代理工具是 Nginx Proxy Manager

部署 Nginx Proxy Manager 

在 /home/docker_data/ 目录下创建一个存放 Nginx Proxy Manager 的目录并且进入改目录

mkdir /home/docker_data/npm
cd /home/docker_data/npm

创建 docker-compose.yml 文件

vi docker-compose.yml

按 i 输入以下内容

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

按esc,输入:wq 保存并退出

根据自己的需要,可以更改一些配置

在 /home/docker_data/npm 目录下,运行

docker-compose up -d

等待完成,打开浏览器,在地址栏输入你的服务器 ip:81 ,就能访问了

如果没有页面,跟上面一样注意你的防火墙

用默认用户名和密码登入,官方默认用户名和密码

Email: admin@example.com
Password: changeme

登入之后会弹出菜单,更改用户名和密码,完成

给 chevereto 网站设置反向代理

先查看Docker容器内部IP

ip addr show docker0

得到以下结果

Chevereto 图床搭建 (docker部署)

inet 后面的 172.17.0.1 就是内部 IP

接下来都是图形界面操作,就直接丢图把,按步骤来

Chevereto 图床搭建 (docker部署)

Chevereto 图床搭建 (docker部署)
Chevereto 图床搭建 (docker部署) Chevereto 图床搭建 (docker部署)

Chevereto 图床搭建 (docker部署) Chevereto 图床搭建 (docker部署)

这样就反向代理完成,你可以用域名访问你的图床网站了

© 版权声明

相关文章

没有相关内容!

暂无评论

暂无评论...