sever00启动AList
sever00启动AList
cd ~/domains/alist && ~/.npm-global/bin/pm2 start ./alist -- server
其他
Serv00是一个提供免费的Virtual Host的平台,其托管平台使用的是FreeBSD系统,并不是Linux。每个账号有效期10年,超过三个月不登入Panel以及SSH则会被删除账号。
其提供的服务大致如下表所示:
名称 Serv00 免费提供
存储空间 3 GB
每月流量 unlimited
网站数量 100
MySQL 10
PostgreSQL 3
MongoDB 3
GIT/SVN/HG 仓库 3
TCP/UDP端口 3
PHP解释器 3
系统进程 15
RAM 512MB
备份 7天
服务器放置 欧盟
免费子域名 http://login.serv00.net
技术支持 只有论坛
SLA 不支持
现代技术 支持
SSH访问 支持
SSH隧道 不支持
远程数据库访问 不支持
固态硬盘 支持
没有广告 支持
价格 免费
更详细的配置说明请查阅官方说明。
Serv00使用的面板是这种共享虚拟主机常用的DevilWEB,还挺好上手的。下面详细介绍一下使用Serv00部署Alist的方法步骤:
觉得一步步手动操作太麻烦的,可以直接翻到最末,提供了我的blog地址,提供了一些简化操作的一键式命令。
注册账号
首先去serv00的官网注册一个账号,最好不要使用国内邮箱,注册信息请尽可能真实填写。
注册账号
接着你可以在邮箱里收到你的注册信息的邮件:
注册邮件
邮件最末有Panel的入口地址和文档链接以及论坛链接,接下来登入Panel进行操作:
DevilWEB
首先去左侧的Additional Service选项卡中,找到Run your own applications选项,将其设置为允许:
运行自己的应用
接着去Port reservation选项卡,使用Add port功能,随机添加一个TCP端口:
添加端口
记下你添加的端口,后面要用。
接着使用SSH登入到你的账户,我使用的SSH客户端是Termius:
登入成功!
注意,这一步可能你的网络不一定连得上,可能需要使用打倒美帝的上网手段。
部署Alist
Alist的官方仓库并没有提供FreeBSD版本的可执行文件构筑,但是我在Github上找到了Unofficial的,专门为Alist构筑FreeBSD版本的仓库,所以只要使用这个仓库就可以在Serv00上部署使用Alist了。
Serv00本身提供的网站托管在~/domains路径下,所以我建议把Alist也部署到这个路径下的子目录:
mkdir -p ~/domains/alist && cd ~/domains/alist
接着下载目前uubulb/alist-freebsd提供的最新版的Alist的可执行二进制文件构筑:
wget https://github.com/uubulb/alist-freebsd/releases/download/v3.30.0/alist && chmod +x alist
然后需要先启动一次Alist以生成配置文件,此次启动一定会失败,请不用在意:
./alist server
接着回到Panel中,找到MySQL选项卡,使用Add database功能新建一个数据库:
创建数据库
密码要求含有大写字母、小写字母和数字三种字符,且长度必须超过6个字符。
接下来进入File manager选项卡,进入~/domains/alist/data路径,可以看到一个名为config.json的文件,右键点击,选择View/Edit > Source Editor,进行编辑:
我主要修改了CDN、database、scheme三个部分,其中CDN可以在Alist的官方文档找到,请选择你本地网络连接速度最快的一个。
scheme部分,我选择修改adress为127.0.0.1本地回环,是为了避免被他人使用http://ip:port 的方式进行访问。至于自己怎么访问,我在本文后面的部分会进行介绍。port要改成自己前面放行的端口。
database部分,type需要改成mysql
,host填写你在注册邮件中看到的mysql的地址,port是默认的3306,用户名、密码、数据库名则按照你创建的情况进行填写。
改完之后,点击save保存,接着回到SSH窗口中进行操作。
先启动一次,查看运行是否正常:
./alist server
运行正常,记得把管理员用户的密码记住。接着使用Ctrl+c停止运行。
绑定域名
此时还没有访问Alist的方法,因为监听的地址是本地回环,所以需要将其反向代理出来。我选择使用Cloudflare提供的Argo通道,顺带给Alist绑定自己的域名。
Cloudflared官方仓库没有提供FreeBSD平台的客户端,但是和Alist一样的,我找到了Unofficial的FreeBSD版本的构筑,接下来使用它打隧道:
新建并进入Cloudflared的工作目录:
mkdir -p ~/domains/cloudflared && cd ~/domains/cloudflared
下载Cloudflared:
wget https://cloudflared.bowring.uk/binaries/cloudflared-freebsd-2023.10.0.7z && 7z x cloudflared-freebsd-2023.10.0.7z && rm cloudflared-freebsd-2023.10.0.7z && mv -f ./temp/cloudflared-freebsd-2023.10.0 ./cloudflared && rm -rf temp
然后在Cloudflare的面板中,找到Networks分类下的Tunnels功能,点击Create a tunnel,选择Cloudflared,Next,随便取个名字,Next,往下翻,可以看到Run the following command,然后给了一串命令,将其复制出来,大概是这样的:
cloudflared.exe service install eyJhIjoiNzh…V5TWpBeSJ9
前面的不需要管,只需要保留最后ey开头的那串很长的TOKEN,去SSH中测试运行Cloudflared:
./cloudflared tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token eyJhIjoiNzh…V5TWpBeSJ9
记得把最后的那一串替换成你的TOKEN。
接着回到Cloudflare的面板,继续点击Next,然后添加一个自己的域名,Service中,Type选择HTTP,URL填写localhost:PORT,其中PORT为你的Alist对应的端口。点击Save Tunnel后,可以看到自己新建的Tunnel上线。
接着使用Ctrl+c停止运行。然后安装进程管理工具pm2:
bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh)
然后使用pm2启动Cloudflared:
~/.npm-global/bin/pm2 start ./cloudflared – tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token eyJhIjoiNzh…V5TWpBeSJ9
记得把最后的那一串替换成你的TOKEN。
再启动Alist:
cd ~/domains/alist && ~/.npm-global/bin/pm2 start ./alist – server
到这里,就可以直接通过你的域名访问刚刚部署的Alist了。
收尾工作
听说Serv00会不定时重启机器,所以我们把pm2添加开机自启,可以保证每次重启都能由pm2调动Alist和Cloudflared。而且Serv00每三个月内必须要有一次登录面板或者SSH连接,不然会删号,也可以通过一个脚本解决问题,接下来我会详细说明。
自动定时SSH
在Panel中找到File manager选项卡,进入alist所在的路径,然后找到上方Send按钮左边的+,选择New empty file,文件名命名为auto-renew.sh, 右键点击auto-renew.sh,选择View/Edit > Source Editor,进行编辑,把下面的代码块的内容都复制进去:
#!/bin/bash
while true; do
sshpass -p ‘密码’ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 “exit” &
sleep 259200 #30天为259200秒
done
记得把其中的密码、用户名、ssh的地址修改为你自己的。
保存后回到SSH中,进入auto-renew.sh 所在的路径,并使用pm2管理运行它:
cd ~/domains/alist && chmod +x auto-renew.sh && ~/.npm-global/bin/pm2 start ./auto-renew.sh
这样就会每隔一个月自动执行一次SSH连接,自己SSH自己进行续期。
添加开机自启
在Panel中找到Cron jobs选项卡,使用Add cron job功能添加任务:
Specify time选择After reboot,即为重启后运行。Form type选择Advanced,Command写:
/home/你的用户名/.npm-global/bin/pm2 resurrect
记得把你的用户名改为你的用户名
添加完之后,在SSH窗口保存pm2的当前任务列表快照:
~/.npm-global/bin/pm2 save
这样每次serv00不定时重启任务时,都能自动调用pm2读取保存的任务列表快照,恢复任务列表。
相关文章:
sever00启动AList
sever00启动AList cd ~/domains/alist && ~/.npm-global/bin/pm2 start ./alist -- server 其他 Serv00是一个提供免费的Virtual Host的平台,其托管平台使用的是FreeBSD系统,并不是Linux。每个账号有效期10年,超过三个月不登入Pan…...

【产品经理】进阶为一名优秀的数字孪生与仿真产品经理
数字孪生和仿真这个领域的内容太前沿了,很多经验、心得都没有对外流传。对于想成为这种产品经理的同学来说比较困难。 数字孪生:百度的解释是,数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺…...
CloudCompare 二次开发(29)——最小二乘拟合平面
目录 一、概述二、代码集成三、结果展示一、概述 使用CloudCompare实现的最小二乘拟合平面。具体计算原理见:PCL 最小二乘拟合平面。 二、代码集成 1、mainwindow.h文件public中添加: void doActionPCLLeastSquareFitPlane(); // 最小二乘拟合平面2、mainwindow.cpp文件…...
代码随想录算法训练营第三十五天|860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球
860.柠檬水找零 本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。 https://programmercarl.com/0860.%E6%9F%A0%E6%AA%AC%E6%B0%B4%E6%89%BE%E9%9B%B6.html 题目大意: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排…...

28位驻华大使、公使参访苏州金龙 点赞刚刚全球发布的新V系大巴
3月26日下午,由外交部组织的“驻华使节团参访江苏”活动走进苏州金龙。来自28个国家和国际组织的驻华大使、公使参观了苏州金龙展厅,并试乘体验了苏州金龙全新V系大巴。外交部中国政府欧洲事务特别代表吴红波,外交部礼宾司、翻译司、非洲司、…...

jenkins权限分配
1.安装权限插件 Role-Based Strategy 2.创建用户 3.修改全局安全配置中的授权策略为Role-Based Strategy 4.进入Manage and Assign Roles创建Global roles和Item roles 4.进入Assign Roles给用户分配role...

感受精酿啤酒的啤酒屋那份与众不同的宁静与惬意
在繁华的都市中,隐藏着一片天地,那就是Fendi Club啤酒的啤酒屋。这里不仅提供上好的啤酒,还有与众不同的氛围和服务,让每一位顾客都能享受到宾至如归的感觉。 走进Fendi Club啤酒的啤酒屋,你会被其与众不同的装饰风格所…...
大数加法C++实现
题目:假设输入是2个数字,可能超过long long类型能表示的范围,请输出两数相加的运算结果。 思路:2个数输入的时候,肯定都是用string存的,先将短的数在末尾补0,使得二者一样长。然后挨个位相加&am…...

如何使用CHAT-AI?
伴随着CHAT-GPT的出现,人们都喜欢上了CHAT-AI。嗯?你还不会用?! 教程来喽! 首先点这里的 … 点击扩展 接着选择“管理扩展” 点击之后搜索“wetab” 最后你需要注册一个号,然后就可以使用CHAT-AI啦&#x…...

文献速递:基于SAM的医学图像分割--SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型
Title 题目 SAMUS: Adapting Segment Anything Model for Clinically-Friendly and Generalizable Ultrasound Image Segmentation SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型 01 文献速递介绍 医学图像分割是一项关键技术,用…...

23届嵌入式被裁,有什么好的就业建议?
最近看到了一个提问,原话如下: 本人23届毕业生,就业方向嵌入式软件,坐标深圳,工作3月公司裁员,目前接近12月开始找工作。 boss上投递简历,校招岗,比较有规模的好公司基本已读不回&am…...

你的 Python 代码需要解释一下了!
Python 是一种相对简单的编程语言。它主要以解释型语言著称,这意味着每行代码都要通过解释器逐行执行。不过在某些时候,将 Python 代码翻译成计算机可以理解的内容,然后再逐行执行,可以减少繁琐。 在这种情况下,编译器…...

听说,抖音小店要废除新手期了?没错!大动作来了!
大家好,我是电商小布。 一个项目从它的推出,到发展,再到成为行业的头部,都是需要不断进行完善的。 抖音小店这个项目也是一样。 这不,抖店平台在前两天又推出了新的通知,宣布废止新手期商家规范。 也就…...

【Java程序设计】【C00351】基于Springboot的疫情居家办公系统(有论文)
基于Springboot的疫情居家办公系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 🍅文末点击卡片获取源码🍅 开发环境 运行环境:推荐jdk1.8; 开发工具:eclipse以及i…...

HarmonyOS鸿蒙开发组件状态管理详细说明
组件状态管理 一、State State用于装饰当前组件的状态变量,State装饰的变量在发生变化时,会驱动当前组件的视图刷新,语法如下: State count:number 1; 需要注意的是:State装饰的变量必须进行本地初始化。 允许装…...

【剑指offer】顺时针打印矩阵
题目链接 acwing leetcode 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 数据范围矩阵中元素数量 [0,400]。 输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 解题 …...

推特社交机器人分类
机器人有不同的种类。 cresci-17数据集中的三种不同的机器人类:传统垃圾机器人、社交垃圾机器人和假追随者。 传统的垃圾邮件机器人会生成大量推广产品的内容,并且可以通过频繁使用的形容词来检测; 社交垃圾邮件倾向于攻击或支持政治候选人,因此情绪是一…...

openGauss增量备份恢复
openGauss 增量备份恢复 openGauss 数据库自 2020 年 6 月 30 日发布以来,很多小伙伴都提到“openGauss 数据库是否有增量备份工具?“这么一个问题。 在 openGauss 1.0.0 版本的时候,关于这个问题的回答往往是:“Sorry…”&…...
Idea与DataGrip各版本通用破解码,无需脚本。
直接输入即可。若失效,访问网址http://idea521.com/即可获取新的破解码。亲测好用。 Idea与DataGrip是一个公司的产品,这里的破解码可通用。 破解码一: 375XQD8EO2-eyJsaWNlbnNlSWQiOiIzNzVYUUQ4RU8yIiwibGljZW5zZWVOYW1lIjoi5YWo5a625qG2IHd…...

C++作业day6
编程1: 封装一个动物的基类,类中有私有成员:姓名,颜色,指针成员年纪 再封装一个狗这样类,共有继承于动物类,自己拓展的私有成员有:指针成员:腿的个数(整型 …...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...