MENU

now.sh 免费部署 oneindex

oneindex 是将微软的 onedrive 打造成分享网盘的程序。使用 now.sh 提供的 Docker 部署环境免费搭建个人分享网盘。

更新日志
20190311
根据 Zx Hu 的评论,现在 zeit.co 连 V1 版本也不再支持 Docker 了,主要是它们的架构切换成 serverless 了,其实这就是 AWS 的 lambda 的函数计算[1]。

WARN! You are using an old version of the Now Platform. More: https://zeit.co/docs/v1-upgrade

然后我尝试用它的 V2 版本的函数计算部署该项目,发现已经超过了免费用户的额度,免费用户每小时只能部署 32 个文件,明显我们这里超过了 32 个 PHP 文件了。而且免费用户一天只能部署 100 个文件[2]。

Error! Builds rate limit exceeded (32 of 32 remaining). Try again in 60m

所以这个平台免费的羊毛应该是没了,不能再免费部署 OneIndex。但是之前部署的服务还能继续使用,所以已经部署好的服务就不要轻易升级了,否则就部署不了。
GAME OVER!

特点
免费
不用服务器空间
不走服务器流量
准备工作
注册 now 账号。注册地址 https://zeit.co/
注册 onedrive 账号。可以申请 5T 容量的网盘更好。
部署
now.sh 的命令行客户端是基于 nodejs 的,所以首先安装 nodejs 环境。nodejs 下载安装即可。下载地址:https://nodejs.org/en/download/

安装 now.sh 客户端。

npm install -g now
然后登陆 now 账号,它会提示输入邮箱,并通过邮箱登陆验证即可。

请输入图片描述

从官方仓库拉取最新的 oneindex 代码。

git clone https://github.com/donwa/oneindex.git
如果在 win 平台不方便新建 now.json 文件,可以拉取我的这个仓库,省去自己加入 now.json 文件。

git clone https://github.com/songouyang/oneindex
使用我的仓库则跳过这一步,否则在 oneindex 文件夹中加入 now.json 文件。

{
"type": "docker",
"features": {

"cloud": "v1"

}
}
参考这条 PR,如果需要加入定时刷新缓存的话,可以在容器中加入定时任务。使用我的仓库也可以跳过这一步。

FROM php:fpm-alpine
WORKDIR /var/www/html
COPY / /var/www/html/
RUN apk add --no-cache nginx \

&& mkdir /run/nginx \
&& chown -R www-data:www-data cache/ config/ \
&& mv default.conf /etc/nginx/conf.d \
&& mv php.ini /usr/local/etc/php \
&& sed -i '/^$/d' /var/spool/cron/crontabs/root \
&& echo '*/10 * * * * /usr/local/bin/php /var/www/html/one.php cache:refresh' >> /var/spool/cron/crontabs/root \
&& echo '0 * * * *  /usr/local/bin/php /var/www/html/one.php token:refresh' >> /var/spool/cron/crontabs/root

EXPOSE 80

Persistent config file and cache

VOLUME [ "/var/www/html/config", "/var/www/html/cache" ]

CMD php-fpm & \

nginx -g "daemon off;"

进入 oneindex 文件夹中,开始部署项目。

请输入图片描述

上图中可以看到部署的地址为:https://oneindex-yckkdopvtv.now.sh
部署完成后,容器默认会隔一段时间重启,为了不让容器重启,执行下面的命令。如果不执行,会发现隔一会又要重新配置 onedrive 了。记得把下面的地址改成自己的 now.sh 的地址。

now scale oneindex-yckkdopvtv.now.sh 1
为了方便访问,可以把前缀设置一个别名。取一个不重复且方便记忆的即可。这里我使用 oneindex,每个人取不同的别名。

now alias oneindex-yckkdopvtv.now.sh oneindex
至此,就可以打开 https://oneindex.now.sh 开始配置了。

配置
如果部署没有问题,那么打开上面部署得到的网址就可以看到如下界面。

请输入图片描述

开始配置 onedrive。

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述

绑定账号。
请输入图片描述
请输入图片描述
请输入图片描述

记得修改默认密码。最后就可以得到 oneindex 的地址:https://oneindex.now.sh,管理后台地址就是:https://oneindex.now.sh/admin/

0:00