介绍

Alist

Alist是一个支持多种存储,支持网页浏览和WebDAV的文件列表程序,由gin和Solidjs驱动。

Replit

Replit是一个基于浏览器的云端协同开发平台,可用于构建开发环境、实时协作、托管网络应用等。Replit提供可创建动态或者静态网站的容器,并会自动生成免费https域名.这代表着任何人都可以试用Replit的云服务器创建自己的网站,或者是其他的服务,而且这一切,都是免费的。

前言

Replit最近封杀团队项目比较严重,虽说可以上传搭建,但后续更新比较繁琐,导致很多小伙伴已放弃这个平台,目前已有两种解决方案

  1. 脚本加密
    经测试目前只检测前端明文代码,用密文运行脚本就能规避检测

  2. 个人项目+外接数据库
    如果团队彻底寄了,外接数据库也是安全可行的备用方案,各平台通用,只要Alist不进行大版本更新,就不用重新配置

这次的教程两种方法均有介绍

准备工作

  • Replit账户及简单操作:在利用Replit搭建个人博客Halo一篇文章中我已详细描述,若有需求可以参考利用Replit搭建个人博客Halo
  • 自建数据库、bit.io账户、db4free账号三选一
  • 域名:非必须
  • UptimeRobot账号:非必须

教程

基于加密脚本

账号设置

创建账号可以参考利用Replit搭建个人博客Halo-账号创建
地区的话最好选择印度(亚洲),印度地区的带宽有50m而且美国地区好像严格封禁了Alist

复制模板

主页上方有搜索框,直接搜ZUILANG233
在这里搜索
找到People那里,点进去
选择People
找到一个叫Pan-of-Encrypt的项目
这个是加密脚本的部署方式
点进去,再点击Fork Repl就能复制项目
Fork项目
起名的时候注意,不要起和Alist相关的名字,不然容易被封
不要填Alist

项目配置

Fork完后会自动跳转到刚刚Fork完的项目中,如果没有自动跳转可以在侧边栏找到Repl,点击进入后再找刚刚Fork的项目
点击RUN就完成部署了,默认账号是admin密码是admin-passwd,登入后记得修改,如果忘记管理员密码可以在命令行输入

1
./jiaoben admin

不知道命令在哪里的可以参考这里利用Replit搭建个人博客Halo-Replit大致操作

更改域名

使用自己的域名可以参考这里利用Replit搭建个人博客Halo-更改域名

防止休眠

Replit项目在一段时间无人访问后会自动进入休眠,停止项目的运行,届时Alist将无法访问,可以使用UptimeRobot定期访问项目地址已达到阻止休眠的效果

基于外挂数据库

我比较推荐这种方式,可以同时部署两个AList,一个在自家的NAS,一个在Replit,使用同一个数据库,这样可以同步修改信息,平时在家里用自己部署的对网盘进行挂载,在外网可以直接使用Replit

复制模板

主页上方有搜索框,直接搜ZUILANG233
找到People那里,点进去
找到一个叫Pan-of-Database的项目
这个是外挂数据库的部署方式
点进去,再点击Fork Repl就能复制项目
Fork项目
起名的时候注意,不要起和Alist相关的名字,不然容易被封

创建数据库

这里有三种数据库,自己部署、bit.io、db4free,这边介绍bit.io和db4free(都会自建数据库了参考一些其他两个应该也会操作了)

注册bit.io账号
进入bit.io官网,点击Try for Free(已经注册过的可以直接登录)
注册账号
可以使用邮箱、Github、Google账号三种注册方式,我这里使用邮箱注册。填写邮箱、用户名、密码后点击Sign up就注册完成了,到自己的邮箱确认一下注册就好了。
注册账号
创建bit.io数据库
注册/登录完账号后,在首页点击Create Database
创建数据库
数据库命名为xlist,类型选择Free,然后点击下方的Create Database
命名数据库
进入数据库后点击右上方的Connect
Connect在这里,其他三个是等会准备用的

注册db4free账号
进入db4free官网,找到免费注册账号进行账号注册
要向下滑一下
创建db4free数据库
然后再侧边栏依次点击【数据库】、【注册】、【phpMyAdmin】,填写数据库的名称、用户名等信息,同意服务条款后点击下方的注册即可
注意db4free会不定期清理大于200m的数据库
注意db4free会不定期清理大于200m的数据库,测试我的AList数据库在100m左右(挂载的网盘不多)
配置好后复制到Secrets。注意大括号不要复制多了,点击Save就好

配置Alist数据库参数

在自己的Replit项目中找到Secrets,不知道Secrets在哪里的可以看这里利用Replit搭建个人博客Halo-配置管理员账户密码,点击Secrets右上角的Editor as JSON(也可以根据你的实际情况一个一个填写key和value)
Editor as JSON在这里

将下面的账户、密码、数据库名替换成实际情况,在Connect页,对于关系如下

Connect页面 Secrets参数
Username 账号
API Key / Password 数据库API密码
Database name 用户名/数据库名称
1
2
3
4
5
6
7
8
9
10
{
"DB_TYPE": "postgres",
"DB_HOST": "db.bit.io",
"DB_PORT": "5432",
"DB_USER": "账号",
"DB_PASS": "数据库API密码",
"DB_NAME": "账号/数据库名称",
"DB_TABLE_PREFIX": "xlist_",
"DB_SSL_MODE": "require"
}

配置好后复制到Secrets。注意大括号不要复制多了,点击Save就好

将下面的账户、密码、数据库名替换成注册数据库时实际填写的情况。替换一下账号、密码、数据库名称这三个参数就行(其他的已经填写好)

1
2
3
4
5
6
7
8
9
10
{
"DB_TYPE": "mysql",
"DB_HOST": "db4free.net",
"DB_PORT": "3306",
"DB_USER": "账号",
"DB_PASS": "密码",
"DB_NAME": "数据库名称",
"DB_TABLE_PREFIX": "xlist_",
"DB_SSL_MODE": "true"
}

配置好后复制到Secrets。注意大括号不要复制多了,点击Save就好

关于自动生成的admin密码

  1. 初始密码是随机生成的,可以查看日志获取
  2. 如果你是使用的bit.io数据库,可以进入数据库->DATA->TABLES找到users,表中就有自动生成的密码

更改域名

使用自己的域名可以参考这里利用Replit搭建个人博客Halo-更改域名

防止休眠

Replit项目在一段时间无人访问后会自动进入休眠,停止项目的运行,届时Alist将无法访问,可以使用UptimeRobot定期访问项目地址已达到阻止休眠的效果

其他

Replit封杀Alist挺严重的,毕竟是白嫖别人的服务器资源,如果出现这个画面就是项目被Replit封杀了
项目被Replit封了
实测美区特别容易被封,可以换到印度试试
如果是使用外挂数据库的方法删除项目后重新部署一遍就好,因为数据是存在其他网站的所以不用担心数据丢失。如果是使用加盟脚本部署,可以新建一个账号Fork一下被封的项目就能取回数据了,总的来说还是外挂数据库方好一点,但是外挂数据库部署不方便

如果在Replit中找不到我的项目可以直接来Github找我的项目,我在Github留了备份

项目备份下载

鸣谢

  • 感谢酷安@进恩影音工作室提供Alist加密脚本的方法,原帖教程
  • 感谢酷安@Sunshy_J提供Alist外挂数据库的方法,原帖教程