Cloudflare R2+Workers!马上搭建自己的云上图床!

结果图 原理 图源由 Cloudflare R2 托管,通过两个 Workers 连接 R2 以展示随机横屏/竖屏图片,静态页面引用 Workers 的 URL 以实现以上界面 创建 Cloudflare R2 存储桶 R2 实际上是一个对象存储。Cloudflare 提供 10G 的免费存储和每月 1000 万次的免费访问 进入Cloudflare 仪表盘,进入 R2 页面,如图 选择创建存储桶 为你的存储桶起一个名字,然后单击创建 进入如下页面就已经创建完毕了 返回 R2 首页。因为在下文我们需要使用 API 来进行文件传输,所以需要创建你的 R2 API 令牌,单击管理 R2 API 令牌 单击创建 API 令牌,如图 因为我们需要该 API 来管理单个 R2 存储桶,所以选择对象读和写,详细配置如图 创建 API 令牌后,新页面会展示令牌的详细信息,仅会展示一次!!! 保持这个页面,直到你将该页面的所有信息都已经妥善保存,不要关闭界面,否则,你需要轮转 API 令牌以禁用之前的旧密钥,如图 确保你已经妥善保存你的 R2 API 令牌,然后进行下一步 为你的存储桶添加文件 因为 Web 界面传输文件较慢且不支持传输大于 300MB 的文件。这里使用本地部署 AList 然后连接你的 R2 存储桶实现高速上传 ...

March 4, 2025 · 3 min · 462 words

Hugo博客搭建教程以及配置调优

引言 曾经我写过一篇文章叫做:Fuwari静态博客搭建教程。 文中的Fuwari是基于Astro的,并且使用了服务器+客户端的混合渲染,尽管UI确实好看,但因为本人不会写Astro导致日后维护特别困难(比如手动添加Giscus评论后和上游分支发生冲突需要手动解决冲突才能合并上游)。 最后我放弃了,既然我就是菜我为什么不找一个原生使用HTML+JS+CSS的框架呢? 于是我便询问AI,Claude推荐我使用Hugo。 其实我早就曾听闻Hugo的大名,但是并没有深入研究,但是Claude又告诉我Hugo采用Go语言进行编译,速度快,而且想要二次开发也只需要改改我最熟悉的HTML+JS+CSS。 于是我便花了2小时深入研究、部署、调优。发现Hugo确实很强大:迁移方便,二改简单,构建迅速 正式开始 请全程在Windows上操作 我们首先需要安装Scoop,这是一个适用于Windows的包管理器,个人认为非常好用 Scoop默认会安装到C盘,如果你想要换盘请按需更改 $env:SCOOP='D:\Scoop' $env:SCOOP_GLOBAL='D:\ScoopApps' [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User') [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine') 安装Scoop: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression 如果你以管理员的身份会安装失败,请切换为普通用户。若想强制以管理员身份安装Scoop请使用 github原帖 出于安全考虑,默认情况下已禁用管理员控制台下的安装。如果您知道自己在做什么并希望以管理员身份安装Scoop,请下载安装程序并在提升的控制台中手动执行它,使用 -RunAsAdmin 参数。以下是示例: irm get.scoop.sh -outfile 'install.ps1' .\install.ps1 -RunAsAdmin [-OtherParameters ...] # 如果你想要一行解决: iex "& {$(irm get.scoop.sh)} -RunAsAdmin" 安装Hugo框架: scoop install hugo 然后选择一个你喜欢的文件夹创建你的站点。 myblog 即你的站点文件夹名称 hugo new site myblog cd myblog 安装PaperMod主题: git clone https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod 站点根目录会有一个 hugo.toml。我推荐使用YAML。将文件重命名为 hugo.yaml。粘贴并更改以下内容 baseURL: "https://站点url" title: "网站标题" LanguageCode: "zh-CN" theme: "PaperMod" # 启用首页个人简介展示 params: # 是否启用评论。你需要自己配置,或者直接引入Giscus等评论系统 comments: false # 是否显示代码复制按钮 ShowCodeCopyButtons: true # 是否显示面包屑导航 ShowBreadCrumbs: false # 是否显示阅读时间 ShowReadingTime: true # 是否显示分享按钮 ShowShareButtons: true # 分享按钮配置 # ShareButtons: ["linkedin", "twitter"] # 是否禁用主题切换按钮 disableThemeToggle: false assets: favicon: "/你的/网站图标.webp" # 需要在static文件夹放置对应的图片 iconHeight: 35 # 首页信息配置 homeInfoParams: Title: "首页展示的标题" Content: > 首页展示的文本 # 设置网站头像和首页头像 profileMode: enabled: false # 设为 true 将完全替换 homeInfoParams # 网站头像设置 (显示在导航栏) label: text: "左上角显示的文本" icon: "/你的/左上角显示的图片.webp" # 这将显示在导航栏标题旁边。需要在static文件夹放置对应的图片 iconHeight: 35 # 社交图标 (显示在简介下方) socialIcons: - name: bilibili url: "" - name: github url: "" - name: telegram url: "" # 可以添加更多社交图标 https://github.com/adityatelange/hugo-PaperMod/wiki/Icons # 顶部导航栏的快捷链接 menu: main: - identifier: categories name: 分类 url: /categories/ weight: 10 - identifier: tags name: 标签 url: /tags/ weight: 20 - identifier: archives name: 归档 url: /archives/ weight: 30 - identifier: search name: 搜索 url: /search/ weight: 40 # 可以添加更多导航链接。weight的值越高排序越靠后 # 如果要启用搜索功能,需要添加这个 outputs: home: - HTML - RSS - JSON # 必须,用于搜索功能 然后我们需要分别配置分类、标签、归档和搜索页 ...

March 2, 2025 · 4 min · 759 words

教你搭建自己的番剧库,实现自动追番!

实现流程: 每当新番更新时AutoBangumi自动向qb推送种子下载并且重命名 刮削软件(如Plex,飞牛影视设置定时搜索媒体库) 你只需要选番,然后等待下载和看就行了 实际并非 安装qbittorrent 用于下载番剧 各系统安装方法各有不同。如果你安装的是非nox版本,记得在设置打开WebUI,并监听0.0.0.0:8080 Windows:SourceForge Linux:apt/yum install qbittorrent-nox Docker:https://github.com/linuxserver/docker-qbittorrent Tracker服务器大全:中国可用的 BT Tracker 服务器列表,每24小时自动更新 - 小小编程 安装AutoBangumi 用于获取你订阅的番剧并在更新时自动发起下载任务 安装Docker,各系统安装方式各有不同 找一个你喜欢的文件夹创建docker-compose.yaml ,并写入内容: version: "3.8" services: AutoBangumi: image: ghcr.io/estrellaxd/auto_bangumi:latest container_name: AutoBangumi volumes: - ./config:/app/config - ./data:/app/data ports: - "7892:7892" network_mode: bridge restart: unless-stopped dns: - 223.5.5.5 environment: - TZ=Asia/Shanghai - PGID=$(id -g) - PUID=$(id -u) - UMASK=022 运行命令:docker compose up -d 进入localhost:7892 ,默认账号:admin,默认密码:adminadmin 点左边的设置图标 -> 下载设置,填入下载器信息,然后点击右下角的应用,直到右上角亮绿灯 前往蜜柑计划,注册账号,并订阅你想要的番剧(复制) 回到 AutoBangumi,点击右上角的 +,添加 RSS(粘贴) ...

February 24, 2025 · 1 min · 136 words

利用阿里云云函数 FC 搭建AList后端,每月仅需5毛!

还是建议购买一个便宜的云服务器来部署或者用家里云,这种方法很灵车 推荐Akile:https://akile.io/register?aff_code=503fe5ea-e7c5-4d68-ae05-6de99513680e 原理 AList前端有一个专门的项目:https://github.com/AlistGo/alist-web 。可前往AList-Web部署教程。教程使用了Cloudflare Page进行前端部署,我们更建议你使用 https://vercel.com 来进行前端部署,因为更快。这些都完全免费 部署完毕前端后,我们就需要一个后端,它需要能够执行AList的二进制文件,并且能开放端口(默认为5244)来让前端可以和后端相互通信。在传统情况下我们会选择购买一台云服务器,或者用自己的电脑/家里云+Cloudflare Tunnel又或者是Serv00这种免费的托管。本篇我们使用阿里云FC函数计算,它虽然可以运行二进制文件,但是和传统架构大相径庭,我们要深入了解。 FC函数是一个实例性服务。用户可以创建函数部署服务,当一定条件被触发(比如HTTP触发器)则创建新的实例开始运行用户的服务。也就是说这个实例是无状态的,如果直接拿来部署AList就会导致第一次配置完毕后过一段时间再访问就会变为初始状态。就算你一开始就使用一个全量包来部署,在部署后也无法对其进行更改,所以我们需要绑定一个NAS文件系统,用于数据持久化。但是NAS文件系统并不能直接绑定到代码的运行时 /code/xxx 目录,我们可以使用AList的指定配置文件参数,将NAS绑定到 /mnt/AList 然后指定配置文件到 /mnt/AList 。也就是通过 ./alist server –data /mnt/AList 命令来启动,这样就做到了数据持久化。 关于计费 FC函数通过CU数来收费 NAS通过存储空间来收费 实操 我们假设你已经部署完毕了前端。前端和后端的通信地址在根目录的 env.production 文件定义 我们目前并不知道这个后端URL如何填写,因为这个URL是由阿里云在FC函数创建完毕的时候才会展示,所以我们暂且搁置到一遍 接下来我们前往阿里云-函数计算FC官网 https://fcnext.console.aliyun.com/overview 依次点击 左侧边栏的 函数 -> 创建函数 -> Web函数。进入到创建Web函数的页面 函数名称填写AList,运行环境选择Debian 10或Debian 11,代码上传方式选择从文件夹上传代码,启动命令填写:./alist server –data /mnt/AList,监听端口填写5244 我们需要上传代码到函数,也就是AList的二进制文件,我们前往 https://github.com/AlistGo/alist/releases/latest 下载最新的Linux AMD64架构的二进制文件,也就是 alist-linux-amd64.tar.gz。将其解压,你会得到一个名为 alist的二进制文件,创建一个空文件夹将其放进去,然后上传这个文件夹到函数 然后点击左下角的创建 然后你会进入到函数的控制面板,依次点击 配置 -> 网络 -> 网络 编辑 -> 允许访问VPC:是 -> 自动配置。依次点击 配置 -> 存储 -> NAS文件存储 编辑 -> 挂载 NAS 文件系统:启用 -> 自动配置。依次点击 日志 -> 开通日志服务 ...

January 12, 2025 · 1 min · 99 words

使用ArchiSteamFarm进行Steam自动挂卡

可用的目标作业系统 Windows x86/Arm64 Linux x86/Arm64/Arm32 OS X x86/Arm64 (和其余任何可以获取有效 .NET Core 运行时的地方工作。基于Github仓库源码手动编译) 安装&使用 ArchiSteamFarm https://github.com/JustArchiNET/ArchiSteamFarm 或前往Release:https://github.com/JustArchiNET/ArchiSteamFarm/releases/latest 下载你适用于你作业系统的可执行文件的压缩包 启动ArchiSteamFarm 等待终端输出WebUI地址,进入 添加机器人,简单配置即可 如果你配置了Steam手机验证器,此时应该会弹出登录请求,允许它。然后前往终端界面输入 Y 并回车 此时终端应该输出:成功以 XXXXXXXXXX 的身份登录。 如果此时登录的账号未被占用,则自动开始挂卡。 ASF并不会干扰你的正常使用Steam的行为,当账号被占用时,ASF会暂停挂卡,直到账号未被占用,这个过程是全自动的,无需手动干涉 ASF可以视为一个无头Steam客户端,它不仅能挂卡,还能做更多事情,详见:https://github.com/JustArchiNET/ArchiSteamFarm/wiki

December 17, 2024 · 1 min · 29 words

自建正向代理服务器

将Cloudflare作为代理使用(Vless - EdgeTunnel) 下面内容参考自:CF VLESS 从入门到精通 cmliu/edgetunnel 必看内容 免费节点 优选订阅 Workers & Pages CM喂饭干货满满24 | CMLiussss Blog 请支持原创作者! https://github.com/cmliu/edgetunnel/archive/refs/heads/main.zip 将它上传到你的Cloudflare Pages项目(没有Cloudflare账号?先去因特网上搜索教程注册一个!如果遇到卡慢可以试试看科学上网) 进入 https://it-tools.tech/uuid-generator 随机获取一个uuid 添加一个名称为UUID的变量绑定,值为第二步随机获取的(请不要泄露给他人!) 重新上传第一步的main.zip。让Cloudflare重新部署page以适配新变量 前往Pages项目 -> 自定义域:绑定自定义域名。(没有域名?推荐 https://nic.us.kg https://www.cloudns.net 。可以自行前往因特网搜索教程,这里不再赘述。也可以不绑定,直接使用cf分配的pages.dev域名。但是,部分地区pages.dev可能无法访问或者较易和谐) 通过 https://你的自定义域名/uuid 查看仪表盘 如图复制链接,打开V2Ray,导入。V2Ray客户端下载地址在文章最后 500Mbps的移动宽带,通过edgetunnel测速速度如下。测速网址: https://fast.com 如果你就是想要最低延迟,可以去用cfnat,这里放一个Windows的链接: https://www.youtube.com/watch?v=N2Y9TsiBgls 其他平台可以自行前往CM的YouTube查找 注意!edgetunnel近期在Cloudflare新号上可能会报错1101,这可能并不是你的配置问题,而是被cf风控了。解决方案是删除原项目重新部署一遍,不要用一样的项目名!你也可以多弄几个其他的正常pages或workers项目做伪装!博主使用新号实测被gank了3次(每一次都换名字删除pages然后重新部署),然后一直稳定到现在 本人实测在全天使用edgetunnel的情况下已经使用了大部分的配额,所以请不要将自己的项目分享给别人,也不要拿去卖!自己注册简简单单! 如图为博主半天的使用量:我只是上了上Telegram~ 将你自己的国外VPS作为代理使用 使用新协议:Hysteria2 可以前往这两个仓库进行一键安装~ https://github.com/0x0129/hysteria2 https://github.com/seagullz4/hysteria2 大致安装过程:自签名,不使用acme,不使用端口跳跃 客户端(Hiddify): https://github.com/hiddify/hiddify-app 其他客户端在第二个Github Repo获取 使用旧协议:V2Ray https://github.com/233boy/v2ray VPS安装脚本:bash <(curl -s -L https://git.io/v2ray.sh) 详细安装:脚本执行完毕后输入v2ray更改配置为Shadowsocks Windows客户端: Releases · 2dust/v2rayN · GitHub Android客户端: Releases · 2dust/v2rayNG · GitHub ...

November 21, 2024 · 1 min · 74 words

使用NoneBot2搭建你的QQBot!

安装 NapCat(Win) 用于登录 QQ 实现收发消息 进入Release NapCat V4.1.12 · NapNeko/NapCatQQ · GitHub,下载NapCat.Shell.zip 将其解压到一个单独的文件夹,然后打开命令行,运行launcher.bat <BOT QQ号> 运行后通过手机扫码登录 它会打印本地控制台的地址信息,如:[NapCat] [WebUi] WebUi Local Panel Url: http://127.0.0.1:6099/webui?token=4xldg5fqb1 直接进入,如图配置即可(端口号可以自己修改,但是要和下部分NoneBot2监听的端口一致。这里是9090) 安装 NoneBot2 用于实现逻辑,控制 NapCat 收发消息 首先,你得装Python。Windows可以使用 https://scoop.sh/ pypi 清华源:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 装 pipx:pip install pipx。你也可以使用scoop install pipx 设置 pipx 全局变量:pipx ensurepath 装 nb-cli:pipx install nb-cli 如果找不到 nb 命令: 对于 root 用户,你可以编辑 /root/.bashrc 或 /root/.profile(如果你使用的是 Bash): nano /root/.bashrc 添加以下行: export PATH="$HOME/.local/bin:$PATH" 保存并重新加载配置: source /root/.bashrc 装 nb bootstrap:nb self install nb-cli-plugin-bootstrap ...

November 19, 2024 · 2 min · 236 words

Phira多人联机服务器搭建/使用教程

直接下载服务端文件并运行 https://github.com/afoim/phira-mp-autobuild 这里有一些由Github Action自动构建的服务端文件,涵盖以下系统和架构 也可以前往Multiplayer Server | Dmocken的Phira下载站自行寻找 寻找适用于你的系统的文件,下载下来并执行即可。默认服务端将会在你的主机12346端口上开放,如果需要自定义端口,请使用--port参数指定端口。然后即可使用Phira来填写IP/域名:端口来连接 *如果要显示Log,请使用 RUST_LOG=debug ./xxx 去运行,默认日志等级是 WARN 如果这些文件不适用于你正在使用的系统请前往自行构建(高级)继续阅读 自行构建(高级) 由于phira-mp使用Rust编写,若想要自行构建需要在你的操作系统上安装Rust环境 对于Windows 前往Rust 下载页,下载 Rust 打开后会弹出一个 CMD 窗口,输入 1(Quick Install)回车,等待 Visual Studio 安装(如果此步 Visual Studio 下载很慢也可以手动下载) 在 Visual Studio 中,勾选使用 C++ 的桌面开发,然后安装 然后请跳过 Linux 教程直接阅读构建 phira-mp 对于Linux 执行:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 选择 1 回车 执行:source $HOME/.cargo/env 使用Rust构建phira-mp 克隆仓库:git clone https://github.com/TeamFlos/phira-mp.git(不支持IPv6)或git clone https://github.com/afoim/phira-mp-autobuild.git(支持IPv6) cd phira-mp或cd phira-mp-autobuild 更新依赖:cargo update 构建:cargo build --release -p phira-mp-server ...

November 5, 2024 · 1 min · 80 words

究极喂饭教程,手把手教你内网穿透

经实测,Zerotier的打洞能力明显优于Tailscale,所以建议通过Zerotier来实现内网穿透 详细报表: Zerotier Tailscale 单端DMZ(单端NAT1) STUN STUN 仅单端UPnP(单端NAT3) UDP P2P 玄学穿透 双端UPnP(双端NAT3) UDP P2P 玄学穿透 双端无UPnP/DMZ(双端NAT3/NAT4) UDP P2P 无法穿透 自建中继/握手节点 √ √ 其实实际情况会更加复杂一点,但是你只要有 公网IPv6、UPnP、DMZ 中的其中一项,Zerotier就几乎是100%的打洞成功率 如何知道我是P2P还是中继? ping你的对端设备,如果延迟大于200ms或者经常丢包大概率就是中继节点(也有小概率是你的设备负载过高导致无法及时接收和返回ping包) 啥是内网穿透? 当我们在家中有个NAS,想要在学校/公司的网络来访问,就需要用到内网穿透,实现外网访问内网服务。原理一般是P2P打洞和服务器中转流量 前期准备 路由器开启UPnP 关闭路由器的IPv4,IPv6防火墙 (可选) 使用Zerotier/Tailscale进行内网穿透 他们俩的原理都是尝试对端建立P2P连接,需要对端安装一个软件并且长期运行 使用Zerotier进行内网穿透的详细教程 创建Zerotier账号 前往:ZeroTier | Global Networking Solution for IoT, SD-WAN, and VPN。如果你进不去,请尝试挂梯子。如果看不懂英文可以开启浏览器的翻译功能 选择 Sign up 如果你到了这个界面,请仍然选择Sign up 账号创建完毕后,登录即可 创建一个新的Zerotier网络组 当你账号登录成功后,会自动跳转到这个页面,点击Create A Network。如果没有,请访问ZeroTier Central 下面的列表会增加一个新的网络组,点击它 Zerotier默认的网络组模式为Private。即私密模式,哪怕别人知道了你的Network ID尝试加入你的网络组也需要你进行验证 复制这个Network ID 在设备上安装Zerotier应用 Windows: 前往Download - ZeroTier,下载exe安装文件 ...

October 27, 2024 · 2 min · 354 words

教你把AList的前端部署到CF Pages!让你的AList秒加载!

前情提要# 本教程不是 AList 的无服务器部署,仅将前端页面部署到 Cloudflare Pages,这样用户就能很快从 cf 的边缘节点拉取前端文件,而不用 cf 回源,提高浏览体验,后端仍然需要一台开放到公网的服务器部署 AList(无公网服务器可使用 Cloudflare Tunnels) 首先,保证你的后端服务器支持v4v6双栈访问 使用Cloudflare Tunnel,套cf 分别设置A和AAAA解析,麻烦,如果你的IP很快,那其实可以不用前后端分离,暴露源站的前后端分离也不能避免被DDoS,因为你的源站会在HTTP报文中暴露 然后,开始正式将AList前端部署到Cloudflare Pages Fork仓库: https://github.com/alist-org/alist-web 更改项目根目录的env.production文件为你的后端服务器地址 将仓库克隆到本地,需要安装Git: 使用SSH(需要持有你的Github SSH私钥): git clone git@github.com:你的用户名/你Fork的仓库 使用HTTPS(Not Use Magic有概率SSL握手失败): git clone git@github.com:你的用户名/你Fork的仓库 下载汉化包:AcoFork 的网盘或Crowdin - 需要登录 解压,将alist (zh-CN)\src\lang里面的Zh-CN文件夹复制到仓库下src/lang下 编辑根目录的.gitignore,添加一行!/src/lang/zh-CN/确保文件不被忽略 下载Nodejs。在根目录打开终端,生成中文需要的文件: 安装cnpm: npm install -g cnpm --registry=https://registry.npmmirror.com 安装依赖: cnpm install --legacy-peer-deps 生成中文需要的文件: node .\scripts\i18n.mjs 将更改提交到暂存区并提交到远程仓库,在根目录打开终端 git add . //将更改提交到暂存区 git commit -m 添加中文 //发布提交 git push -f //强制将更改提交到远程仓库 进入Cloudflare 仪表盘,进入 Workers 和 Pages 页面 创建一个 Pages,选择连接 Git 存储库 选择你的存储库,开始设置 构建命令输入:pnpm install && pnpm build,构建输出目录选择/dist 等待 Cloudflare 构建结束,为 Pages 绑定自定义域 访问自定义域,查看 AList 是否正常 定制 AList# 我们都知道 AList 支持自定义头部和内容,但是因为 Cloudflare Pages 是一个静态页面,所以我们采用硬编码方式,直接将需要自定义的内容写入仓库根目录的index.html ...

October 14, 2024 · 1 min · 127 words