记录 · 构建 · 分享

你好,我是 Laning

记录 Linux、嵌入式与自托管实践,整理编程学习中的问题与思考。

探索主题

全部分类

最新文章

41 篇记录
编程与计算机基础

Hello World

欢迎来到我的个人博客! 这是我的第一篇文章。 为什么选择 Hugo? Hugo 是一个静态网站生成器。 以后我只需要在 VS Code 中编写 Markdown, 然后使用 Git Push 发布即可。 代码测试 echo "Hello World!" 图片测试 以后可以将图片放入 static/images/ 目录, 然后在 Markdown 中使用:

编程与计算机基础

异步函数async和await

背景 最近在回头看nfd项目 的源码,看到了使用async和await的js代码,因此想了解一下代码运行的机制。 一个例子 function SicBo() { return new Promise((resolve, reject) => { console.log("开始摇") setTimeout(() => { let n = parseInt(Math.random() * 6 + 1, 10) resolve(n) }, 1000) }) } 上述代码的执行过程如下: 立即执行 console.log("开始摇") —— ✅ 马上输出。 启动一个“1秒后执行的任务” —— 通过 setTimeout(...) 注册了一个回调,1 秒后执行。 返回一个 Promise 对象,这个 Promise 会在 1 秒后变成“完成状态”并给出点数。 ...

网络与远程访问

TG机器人通知IP地址

背景 公网IPv4政策的收紧,包括不限于不能使用DDNS服务解析到未备案域名,因此使用TG机器人API服务,定时检测IP地址,若IP变化则自动更新 项目地址 Raspberry-Pi/shell/telegram-ip-bot.sh at master · laningya/Raspberry-Pi · GitHub 部署过程 获取ChatID API_TOKEN="YOUR_BOT_TOKEN" curl -s "https://api.telegram.org/bot$API_TOKEN/getUpdates" | jq '.result[0].message.chat.id' 脚本填入Bot的API Token,以及自行判断需要设置代理 添加crontab定时任务 ...

自托管与服务部署

Emby反代及HTTPS配置教程

Nginx配置 server { listen 443 ssl; server_name your.domain.com; # Security / XSS Mitigation Headers add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; # ssl的设置 ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; ssl_session_timeout 5m; # 禁止ip访问 if ($host ~ ^\d+\.\d+\.\d+\.\d+$) { return 404; } # 防止爬虫获取header,直接访问/就返回502,其他的路径才行,app观看不影响,不用这个 location = / { return 502; } location / { resolver 1.1.1.1 ipv6=off; if ($host != $server_name) { return 403; } proxy_pass https://www.emby.com; # ssl pass相关的设置 proxy_ssl_name www.emby.com; proxy_ssl_server_name on; proxy_set_header Host www.emby.com; set $magpiecdn "$scheme://$server_name:$server_port"; 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_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header MagpieCDN $magpiecdn; proxy_buffering off; } location /***cdn { resolver 1.1.1.1 ipv6=off; proxy_pass https://$arg_load.emby.com; # ssl pass相关的设置 proxy_ssl_name $arg_load.emby.com; proxy_ssl_server_name on; proxy_set_header Host $arg_load.emby.com; proxy_buffering on; proxy_max_temp_file_size 50m; } } 说明: ...

自托管与服务部署

通过LangBot将大模型接入到Telergram

项目地址 GitHub - RockChinQ/LangBot: 😎丰富生态、🧩支持扩展、🦄多模态 - 大模型原生即时通信机器人平台 | 适配 QQ / 微信(企业微信、个人微信)/ 飞书 / 钉钉 / Discord / Telegram 等消息平台 | 支持 ChatGPT、DeepSeek、Dify、Claude、Gemini、xAI Grok、Ollama、LM Studio、阿里云百炼、火山方舟、SiliconFlow、Qwen、Moonshot、ChatGLM、SillyTraven、MCP 等 LLM 的机器人 / Agent | LLM-based instant messaging bots platform, supports Discord, Telegram, WeChat, Lark, DingTalk, QQ ...

网络与远程访问

Cloudflare和阿里云DDNS的Shell实现

下一步开发计划 接入Telegram机器人,IP变化时自动通知 脚本地址 raw.githubusercontent.com/laningya/Raspberry-Pi/refs/heads/master/shell/cfddns.sh raw.githubusercontent.com/laningya/Raspberry-Pi/refs/heads/master/shell/aliddns.sh 使用说明 Cloudflare proxy=false/true,是否开始Cloudflare小黄云选项 ZONE_ID,API_TOKEN,Cloudflare 域ID和API令牌,API需对应域名的DNS编辑和读取权限 IPv4Domain,需要填写全写,如"test.yourdomain.com" 阿里云 accessKeyId,accessSecret,需要在阿里云控制台获取,并赋予DNS编辑和读取权限 与Cloudflare不同,子域名和主域名分开

自托管与服务部署

使用 Telegram 作为存储后端的图床程序

项目地址 GitHub - nodeseeker/goImage: 基于 Go 开发的图片托管服务,使用 Telegram 作为存储后端。 GitHub - laningya/goImage: 基于 Go 开发的图片托管服务,使用 Telegram 作为存储后端。 部署流程 拉取Dockerfile并本地构建镜像 wget https://raw.githubusercontent.com/laningya/goImage/refs/heads/main/Dockerfile docker build -t image . 拉取docker-compose.yml文件 wget https://raw.githubusercontent.com/laningya/goImage/refs/heads/main/docker-compose.yml 拉取config.json文件 wget https://raw.githubusercontent.com/laningya/goImage/refs/heads/main/config.json config.json文件说明如下: ...

自托管与服务部署

基于Cloudflare Worker的Telegram传信机器人

项目原因 Telegram是很注重隐私的聊天软件,受到很多人的青睐。但是,如果经常和陌生人聊天很容易触发风控,因此一款好用的传信机器人十分有必要。 项目特色 在nfdv1项目的基础上增加提示对方ID(TG账户唯一标识) 美化输出UI,以及封禁逻辑 支持构建欺诈数据库,有不良记录的用户及时提醒 ...