AUXPI 图床部署

前段时间重新安装了本站的 AUXPI 图床项目,之前的版本因为自己乱搞给搞坏掉了,一直没修复。刚好最近看到 AUXPI 项目更新了 V2 版本,比之前的版本增加了后台管理,感觉还可以。所以重新折腾一下,反正自己也正好需要一个 方便(cai ji) 的图片上传工具。

简介

AUXPI 集合多家 API 的新一代图床
其他高级功能说明参见 GitHub 项目主页

方式一:脚本安装

下面的脚本需要纯净服务器才可安装,否则会出错

wget -N --no-check-certificate https://raw.githubusercontent.com/aimerforreimu/AUXPI/dev/install.sh && chmod +x install.sh && bash install.sh all

运行该命令后给服务器安装 Oneinstack 一键包且搭建 AUXPI 项目,过程交互参考 Oneinstack 交互安装中的教程即可,服务器开放端口不再说明。

官方文档里也给了只安装图床程序的命令,可以先试一试,成功的话就没必要往下看了。

wget -N --no-check-certificate https://raw.githubusercontent.com/aimerforreimu/AUXPI/dev/install.sh && chmod +x install.sh && bash install.sh install

默认的脚本直接在 /root 目录下安装图床项目文件了,我访问的时候好像不太可行,(刚看《Wiki:使用宝塔进行安装》部分这条命令在最后才执行,可能是需要先配置点啥?),而且轻微强迫症让我想把网站文件全放在 /wwwroot 文件夹下,由于看不懂 shell/bash 脚本,我就自己手动安装了。

如果你的服务器安装了 bt.cn 宝塔面板,那么《Wiki:使用宝塔进行安装》请。
我没有装宝塔,但是看起来 Wiki 里写的已经非常详细了,而且图文并茂,而且详细。

方式二:手动安装

个人以为项目 Wiki 手动安装写的我不太明白,蒻鶏记录整理一下我的安装过程...
再一次放 官方 Wiki 文档 保命

主机配置

这里我服务器上已经是安装完了 Oneinstack 环境包了,登录服务器后运行以下命令新开一个虚拟主机。

$ cd oneinstack && ./vhost.sh

创建完成后,修改虚拟主机配置文件,包括关闭默认 php 环境、反向代理等等,怪兽图床 配置参考(注意删除以 // 开头的所有行):

server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/img.monsterx.cn.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/img.monsterx.cn.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name img.monsterx.cn;
  access_log /data/wwwlogs/img.monsterx.cn_nginx.log combined;
  index index.html index.htm index.php;
  // 下面这条指定文件夹目录,下载文件注意解压到这个文件夹下
  root /data/wwwroot/auxpi;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
  
  include /usr/local/nginx/conf/rewrite/none.conf;
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  // 这里是根据 Wiki 修改的代理策略,括号中 proxy_pass 注意填写自己服务器的 ip
  location / 
  {
      proxy_pass http://106.15.196.168:23333;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header REMOTE-HOST $remote_addr;
   
  }
  // 这里是根据 Wiki 修改的缓存策略
  location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
  {
      return 404;
  }
}

OK,修改完成后重启 Nginx 服务。

$ service nginx restart

进入上面 19 行指定的文件夹 /data/wwwroot/auxpi 下,放入项目文件。这里注意进入 GiHub Releases 下载发布版本,不推荐直接在项目首页点 Clone or download 按钮。服务器是 CentOS ,这里下载 auxpi-2.3.9-linux.tar.gz

// 记得没错的话压缩包直接解压后会产生 auxpi 文件夹,这里就进入上一级目录下载
$ cd /data/wwwroot
$ wget https://github.com/aimerforreimu/auxpi/releases/download/2.3.9/auxpi-2.3.9-linux.tar.gz
$ tar xzf auxpi-2.3.9-linux.tar.gz
// 列出目录查看是否有 auxpi 文件夹,不是的话修改虚拟主机配置根目录即可
$ ls

接下来修改数据库配置,默认的配置文件中是未开启数据库支持的,进入 auxpi 程序根目录下的 conf 文件夹,修改 siteConfig.json 文件。这是站点配置文件,很多配置不需要在这里修改,盲目乱改容易出错,而且安装完成后在后台修改更方便安全(文件被压缩之后配置文件只有一行,按 Ctrl F 搜索 db_option 字段即可快速定位)

"db_option": {
    "use_db": true,     
    "db_type": "mysql",       
    "db_host": "127.0.0.1:3306",    #数据库地址,正常不需要修改
    "db_name": "auxpi",             #数据库名称
    "db_user": "root",              #数据库用户名
    "db_pass": "root",              #数据库密码
    "table_prefix": "auxpi_"        #数据表前缀,可不修改
  },

程序初始化

修改完成后,进入 auxpi 项目根目录初始化程序:

$ cd /data/wwwroot/auxpi
$ chmod -u+x auxpi
$ ./auxpi init

/* 输出以下提示说明完成初始化    
   _       __  __  ___ _____
  /_\  /\ /\ \/ / / _ \\_   \
 //_\\/ / \ \  / / /_)/ / /\/
/  _  \ \_/ /  \/ ___/\/ /_
\_/ \_/\___/_/\_\/   \____/

 A NEW API IMAGES STORE TOOL 

2019/03/10 20:19:53.169 [A] [main.go:23]  [./auxpi init]
[INFO]:AUXPI have already initialization complete.
[INFO]:Please run "./auxpi run"  to start
*/

// 创建(迁移)数据库,此命令会重置并生成新的数据表,原来的数据会丢失。
$ ./auxpi migrate

/* 有如下输出即代表数据库连接成功
   _       __  __  ___ _____
  /_\  /\ /\ \/ / / _ \\_   \
 //_\\/ / \ \  / / /_)/ / /\/
/  _  \ \_/ /  \/ ___/\/ /_
\_/ \_/\___/_/\_\/   \____/

 A NEW API IMAGES STORE TOOL 

[SUCCESS]: Database migrate Done
*/

// 在程序的根目录运行以下命令创建 密码为 123123 用户名为 hello 邮箱为 auxpi@0w0.tn 的管理员账号
$ ./auxpi -mod=admin -name=hello -email=auxpi@0w0.tn -pass=123123

/* 会有如下输出,表示运行成功。不必担心上面的报错,这个错误是允许的
   _       __  __  ___ _____
  /_\  /\ /\ \/ / / _ \\_   \
 //_\\/ / \ \  / / /_)/ / /\/
/  _  \ \_/ /  \/ ___/\/ /_
\_/ \_/\___/_/\_\/   \____/

 A NEW API IMAGES STORE TOOL 

2019/03/10 20:39:32.827 [A] [users.go:245]  [Models Error]:  record not found  ===>[users.go:245]
[SUCCESS]:Create Admin SUCCESS
*/

运行

至此所有基本初始化都已经完成,可以运行程序了。进入 auxpi 程序根目录,运行以下命令让服务运行

// 不后台运行
$ ./auxpi run

// 使用 nohup 让服务后台运行
$ nohup ./auxpi run > auxpi.log 2>&1 &

Okay!打开你的网址,就可以看到 chuan 新的 AuXpI 图床了。右上角“登录”按钮输入之前设置的管理员权限账号,在后台可以看到管理后台入口(非管理用户不可见)。或者输入 网址/admin 进入管理后台。

AuXpI 用户后台
AuXpI 用户后台
AuXpI 管理后台
AuXpI 管理后台

公共图床配置

微博 图床

注册一个微博小号,关闭安全登录、设备验证等安全措施。
在管理后台 Dashboard/设置/图床设置微博图床配置 里填入账号密码即可。

是否开启代理 项是通过 https://images.weserv.nl/ 图像缓存和调整大小服务进行代理,可通过其服务器调整您的图像大小,在全球范围内缓存并显示。进阶使用请参考 官方文档

GitHub 图床

通过 GitHub 存储图片,感觉速度一般。。。需要开启请参考以下步骤:

  • New 一个 Repositories 。Repository name 填入 仓库名 (请填英文),注意前面的 Owner 。权限选择 Public
  • 点击右上角头像依次选择 Settings Developer settings Personal access tokens ,选择 Generate new token ,在 New personal access token 页面 Select scopes 栏选择权限,建议勾选 repo write:packages read:packages 三项即可,点击 Generate token 按钮生成密钥,记录这串 Access token
  • 进入 AuXpI 管理后台在 Dashboard/设置/图床设置Github 里依次对应填入之前设置的 Access tokenOwner仓库名 和登录 GitHub 使用的 邮箱账号
  • 是否开启代理 项建议开启。

Gitee 图床

通过 码云 Gitee 存储图片,毕竟是国内的,速度比 GitHub 好,设置跟 GitHub 基本一样,但是操作起来基本全都是中文很方便。步骤参考:

  • + 一个 仓库 。仓库名称 随意,注意记录下面的 路径 (是英文的),注意前面的 归属 (归属者的个人主页地址比如 https://gitee.com/monsterxcn 中的 monsterxcn 是我们需要的)。是否开源 选择 公开 。其他选择默认,点击 提交 按钮生成仓库。
  • 点击右上角头像依次选择 设置 安全设置 - 私人令牌 ,选择 +生成新令牌 ,在接下来的页面 请选择将要生成的私人令牌所拥有的权限 栏选择权限,建议勾选 projects pull_requests gists 三项,点击 提交 按钮生成密钥,记录这串 私人令牌
  • 进入 AuXpI 管理后台在 Dashboard/设置/图床设置Gitee 里依次对应填入之前设置的 私人令牌归属路径

本地图床

这里只有两项,软路径 和 储存路径。

  • 软路径 用于地址重写,比如将其设置为 /images/ ,上传图片到本地后图片地址为 https://域名/images/图片名
  • 储存路径 本地图床实际存储位置,需要可读写权限,比如 /AuXpI根目录/public/uploadpublic/upload 即为储存路径。

Imgur / Flickr 图床

由于没配置成功国内访问并不理想,所以这里不写了。

最后

  • 这款程序基本满足了我作为一个小站长的需要,但是对于大佬...emmm...可能并不需要吧。
  • 写完公共图床配置内心 OS:emmm...这点配置就不用写...删掉吧...
  • 微博图床貌似不太好使,注册功能也好像未完善。
  • 这款程序正在开发中,有 Bug 很正常,不要问为什么,提 issue 这里 请。

添加新评论

已有 2 条评论

auxpi的bug不少但也能用,装过,弃坑了。

MonsterX MonsterX 回复 @心灵博客

噫,妈耶我不是隐藏了博文的嘛(咕咕咕