利用 docker 部署 Olaindex

本文最后更新于:2020年8月16日 下午

吹爆docker!

前言

利用 Aria2 和 Rclone 成功地让我的小鸡实现了远程下载,下载完成后自动上传到 OneDrive 的功能。想知道的话可以看我的这篇博客

这个功能搞定后我又想整一个方便直接显示想分享的文件的列表。于是找了找,发现了 Oneindex。不过看别人说这个不好用,那就算了吧。于是尝试了 Olaindex。

但是官网要求的 php 环境我不会搭啊,用了官网介绍的 Oneinstack 也没有用。在安装的过程中会报错,我怀疑是我的内存不够大造成的。而且报错就算了,报错之后它还把我的环境给搞坏了,导致我想自己手动安装配置 php 环境都失败了。所以只好无奈的回滚了。

回滚之后我还是不甘心,又突然想到了 docker。因为我搜 Oneindex 的时候找到了 Oneindex 的 docker,又因为经常听说 docker 是方便部署的,所有的环境需求都被封装了,所以是即开即用。真的这么神奇么?于是我就试了下,没想到真的就有 这 么 神 奇!。直接从下载安装,配置 Nginx 的转发就搞定了!

我的环境

  • debian10
  • amd64 架构的 CPU
  • 512M 内存

安装 docker

安装过程可以参考我的这篇博客 利用官方脚本一键安装 docker

安装过程真的很简单。

下载 docker 镜像

在安装好 docker,并且确定正确配置了之后,输入以下命令

docker run -d \
--name=olaindex \
--restart always \
-p 8085:80 \
-p 8443:443 \
--mount type=tmpfs,destination=/tmp \
-v /home/hacklog/.config/olaindex/conf:/vol/conf \
-v /home/hacklog/.config/olaindex/storage:/vol/storage \
-v /home/hacklog/.config/olaindex/ssl:/vol/ssl \
-e PHP_TZ=Asia/Shanghai \
-e PHP_MAX_EXECUTION_TIME=600 \
-e APP_DEBUG=false \
80x86/olaindex:latest

配置 nginx

新建一个 olaindex.conf 文件

nano /etc/nginx/conf.d/olaindex.conf

之后这样配置 nginx,我这里默认使用 olaindex.yikakia.com 作为访问网站 Olaindex 服务的域名。

server {
    listen       80;
    server_name  olaindex.yikakia.com; #这里改成你的用于访问 olaindex 的域名

    #charset koi8-r;
    access_log  /var/log/nginx/rom.nanodm.net.access.log;
    error_log  /var/log/nginx/rom.nanodm.net.error.log;

    location / {

      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        X-Forwarded-Proto $scheme;
      proxy_max_temp_file_size 0;

      #this is the maximum upload size
      client_max_body_size       100m;
      client_body_buffer_size    256k;

      proxy_connect_timeout      90;
      proxy_send_timeout         90;
      proxy_read_timeout         90;
      proxy_buffering            off;
      proxy_request_buffering    off;
      proxy_set_header Connection ""; # Clear for keepalive

      proxy_pass          http://127.0.0.1:8085;
    }
}


server {

    listen 443;
    server_name  olaindex.yikakia.com; # 这里改成你用于访问 Olaindex 的域名

    ssl_certificate           /etc/nginx/ssl/ssl.crt; #这里写你的 ssl 证书公钥
    ssl_certificate_key       /etc/nginx/ssl/ssl.key; #这里写你的 ssl 证书私钥

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/rom.nanodm.net_ssl.access.log;
    error_log             /var/log/nginx/rom.nanodm.net_ssl.error.log;

    location / {

      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        X-Forwarded-Proto $scheme;
      proxy_max_temp_file_size 0;

      #this is the maximum upload size
      client_max_body_size       100m;
      client_body_buffer_size    256k;

      proxy_connect_timeout      90;
      proxy_send_timeout         90;
      proxy_read_timeout         90;
      proxy_buffering            off;
      proxy_request_buffering    off;
      proxy_set_header Connection ""; # Clear for keepalive

      proxy_pass          https://127.0.0.1:8443;
    }
  }

没有 ssl 证书的话可以参考我的这篇博客 利用 Lets Encrypt 为你的网站加把小锁

现在重启 nginx

service nginx restart

再去访问你用于 Olaindex 的域名就可以了。这里最好专门另外申请一个二级域名。就是类似于这样的:olaindex.yikakia.com

配置 Olaindex,申请账号

安装

做到了这一步,艰难的事情就做完了。
现在你可以在浏览器输入 olaindex.yikakia.com(替换成你用于访问 Olaindex 服务的域名) 来进行配置。
可以直接参考官网这个配置

在这里这么填写你的域名,把图片上的 http://localhost:8000/oauth 改成https://olaindex.yikakia.com,就是你自己设定的那个域名。

然后点击申请。

获取密钥

打开一个记事本,把你获取的那个应用机密复制保存好。

然后点击继续。

获取 id

把获得的那个 client_id 也复制到记事本里面。

保存提交


接下来就把之前获取的那两个输入进去。同时第一个回调地址就是你之前申请的那个。
如果没错的话,现在就配置完成了。你可以访问 olaindex.yikakia.com/admin 进入管理后台,默认的密码是12345678。一定要改!

参考

OLAINDEX 官方文档
80x86/olaindex docker 镜像提供者