<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Docker on Laning's Blog</title><link>https://blog.laning.org/categories/docker/</link><description>Recent content in Docker on Laning's Blog</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 29 Mar 2025 17:19:28 +0800</lastBuildDate><atom:link href="https://blog.laning.org/categories/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>使用 Telegram 作为存储后端的图床程序</title><link>https://blog.laning.org/posts/wp-0421/</link><pubDate>Wed, 04 Dec 2024 16:18:29 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0421/</guid><description>&lt;h2 id="项目地址"&gt;项目地址&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/nodeseeker/goImage"&gt;GitHub - nodeseeker/goImage: 基于 Go 开发的图片托管服务，使用 Telegram 作为存储后端。&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/laningya/goImage"&gt;GitHub - laningya/goImage: 基于 Go 开发的图片托管服务，使用 Telegram 作为存储后端。&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="部署流程"&gt;部署流程&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;拉取Dockerfile并本地构建镜像&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;wget https://raw.githubusercontent.com/laningya/goImage/refs/heads/main/Dockerfile
docker build -t image .
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;拉取docker-compose.yml文件&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;wget https://raw.githubusercontent.com/laningya/goImage/refs/heads/main/docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;
&lt;li&gt;拉取config.json文件&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;wget https://raw.githubusercontent.com/laningya/goImage/refs/heads/main/config.json
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;config.json文件说明如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;{
&amp;#34;telegram&amp;#34;: {
&amp;#34;token&amp;#34;: &amp;#34;1234567890:ABCDEFG_ab1-asdfghjkl12345&amp;#34;,
&amp;#34;chatId&amp;#34;: -123456789
},
&amp;#34;admin&amp;#34;: {
&amp;#34;username&amp;#34;: &amp;#34;nodeseeker&amp;#34;,
&amp;#34;password&amp;#34;: &amp;#34;nodeseeker@123456&amp;#34;
},
&amp;#34;site&amp;#34;: {
&amp;#34;name&amp;#34;: &amp;#34;NodeSeek&amp;#34;,
&amp;#34;maxFileSize&amp;#34;: 10,
&amp;#34;port&amp;#34;: 18080,
&amp;#34;host&amp;#34;: &amp;#34;127.0.0.1&amp;#34;
}
}
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;telegram.token&lt;/code&gt;：电报机器人的Bot Token&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;telegram.chatId&lt;/code&gt;：频道的Chat ID&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;admin.username&lt;/code&gt;：网站管理员用户名&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;admin.password&lt;/code&gt;：网站管理员密码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;site.name&lt;/code&gt;：网站名称&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;site.maxFileSize&lt;/code&gt;：最大上传文件大小（单位：MB），建议10MB&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;site.port&lt;/code&gt;：服务端口，默认18080&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;site.host&lt;/code&gt;：服务监听地址，默认127.0.0.0本地监听；如果需要调试或外网访问，可修改为0.0.0.0&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上参数获取方式：&lt;/p&gt;</description></item><item><title>服务备份与同步脚本实现</title><link>https://blog.laning.org/posts/wp-0428/</link><pubDate>Tue, 06 Aug 2024 14:21:25 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0428/</guid><description>&lt;h2 id="脚本地址"&gt;脚本地址&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://raw.githubusercontent.com/laningya/Raspberry-Pi/refs/heads/master/shell/back.sh"&gt;raw.githubusercontent.com/laningya/Raspberry-Pi/refs/heads/master/shell/back.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://raw.githubusercontent.com/laningya/Raspberry-Pi/refs/heads/master/shell/rsync.sh"&gt;raw.githubusercontent.com/laningya/Raspberry-Pi/refs/heads/master/shell/rsync.sh&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="使用说明"&gt;使用说明&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;为防止服务器宕机开发，需要配合crontab等服务实现定时备份&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;针对采用docker-compose部署的服务编写，如为其他方式部署的服务，此脚本并不使用&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>sing-box TUN模式透明代理</title><link>https://blog.laning.org/posts/wp-0372/</link><pubDate>Sat, 27 Apr 2024 01:16:33 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0372/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;你的软路由到底是用来做旁路由还是主路由？如果是旁路由的话，只用科学上网不妨试试Linux旁路由网关&lt;/p&gt;
&lt;h2 id="docker镜像构建"&gt;docker镜像构建&lt;/h2&gt;
&lt;p&gt;原本是64位的处理器，可惜之前装的32位操作系统，所以只能从Dockerfile自己构建喽&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;拉源码&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;git clone https://github.com/SagerNet/sing-box.git
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;构建镜像&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker build --no-cache -t laningya/sing-box:v1 .
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="docker-composeyml文件"&gt;docker-compose.yml文件&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;version: &amp;#34;3.3&amp;#34;
services:
sing-box:
image: laningya/sing-box:v1
container_name: sing-box
restart: always
network_mode: &amp;#34;host&amp;#34;
volumes:
- ./conf:/etc/sing-box/
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- ALL
command: -D /var/lib/sing-box -C /etc/sing-box/ run
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;要开启tun模式，devices和cap_add字段非常重要&lt;/p&gt;
&lt;h2 id="一个不错的sing-box配置模板"&gt;一个不错的sing-box配置模板&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;{
&amp;#34;dns&amp;#34;: {
&amp;#34;servers&amp;#34;: [
{
&amp;#34;tag&amp;#34;: &amp;#34;dns_proxy&amp;#34;,
&amp;#34;address&amp;#34;: &amp;#34;https://1.1.1.1/dns-query&amp;#34;,
&amp;#34;address_resolver&amp;#34;: &amp;#34;dns_resolver&amp;#34;,
&amp;#34;strategy&amp;#34;: &amp;#34;ipv4_only&amp;#34;,
&amp;#34;detour&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;tag&amp;#34;: &amp;#34;dns_direct&amp;#34;,
&amp;#34;address&amp;#34;: &amp;#34;h3://dns.alidns.com/dns-query&amp;#34;,
&amp;#34;address_resolver&amp;#34;: &amp;#34;dns_resolver&amp;#34;,
&amp;#34;strategy&amp;#34;: &amp;#34;ipv4_only&amp;#34;,
&amp;#34;detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;tag&amp;#34;: &amp;#34;dns_block&amp;#34;,
&amp;#34;address&amp;#34;: &amp;#34;rcode://refused&amp;#34;
},
{
&amp;#34;tag&amp;#34;: &amp;#34;dns_resolver&amp;#34;,
&amp;#34;address&amp;#34;: &amp;#34;223.5.5.5&amp;#34;,
&amp;#34;strategy&amp;#34;: &amp;#34;ipv4_only&amp;#34;,
&amp;#34;detour&amp;#34;: &amp;#34;direct&amp;#34;
}
],
&amp;#34;rules&amp;#34;: [
{
&amp;#34;outbound&amp;#34;: &amp;#34;any&amp;#34;,
&amp;#34;server&amp;#34;: &amp;#34;dns_resolver&amp;#34;
},
{
&amp;#34;clash_mode&amp;#34;: &amp;#34;direct&amp;#34;,
&amp;#34;server&amp;#34;: &amp;#34;dns_direct&amp;#34;
},
{
&amp;#34;clash_mode&amp;#34;: &amp;#34;global&amp;#34;,
&amp;#34;server&amp;#34;: &amp;#34;dns_proxy&amp;#34;
},
{
&amp;#34;process_name&amp;#34;: [
&amp;#34;TencentMeeting&amp;#34;,
&amp;#34;NemoDesktop&amp;#34;,
&amp;#34;ToDesk&amp;#34;,
&amp;#34;ToDesk_Service&amp;#34;,
&amp;#34;WeChat&amp;#34;,
&amp;#34;Tailscale&amp;#34;,
&amp;#34;wireguard-go&amp;#34;,
&amp;#34;Tunnelblick&amp;#34;,
&amp;#34;softwareupdated&amp;#34;,
&amp;#34;kubectl&amp;#34;
],
&amp;#34;server&amp;#34;: &amp;#34;dns_direct&amp;#34;
},
{
&amp;#34;domain_suffix&amp;#34;: [
&amp;#34;icloudnative.io&amp;#34;,
&amp;#34;fuckcloudnative.io&amp;#34;,
&amp;#34;sealos.io&amp;#34;,
&amp;#34;cdn.jsdelivr.net&amp;#34;
],
&amp;#34;server&amp;#34;: &amp;#34;dns_direct&amp;#34;
},
{
&amp;#34;process_name&amp;#34;: [
&amp;#34;DropboxMacUpdate&amp;#34;,
&amp;#34;Dropbox&amp;#34;
],
&amp;#34;server&amp;#34;: &amp;#34;dns_proxy&amp;#34;
},
{
&amp;#34;package_name&amp;#34;: [
&amp;#34;com.google.android.youtube&amp;#34;,
&amp;#34;com.android.vending&amp;#34;,
&amp;#34;org.telegram.messenger&amp;#34;,
&amp;#34;org.telegram.plus&amp;#34;
],
&amp;#34;server&amp;#34;: &amp;#34;dns_proxy&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: &amp;#34;geosite-geolocation-!cn&amp;#34;,
&amp;#34;server&amp;#34;: &amp;#34;dns_proxy&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: &amp;#34;Global&amp;#34;,
&amp;#34;server&amp;#34;: &amp;#34;dns_proxy&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: [
&amp;#34;YouTube&amp;#34;,
&amp;#34;Telegram&amp;#34;,
&amp;#34;Netflix&amp;#34;,
&amp;#34;geoip-google&amp;#34;,
&amp;#34;geoip-telegram&amp;#34;,
&amp;#34;geoip-twitter&amp;#34;,
&amp;#34;geoip-netflix&amp;#34;
],
&amp;#34;server&amp;#34;: &amp;#34;dns_proxy&amp;#34;
}
],
&amp;#34;final&amp;#34;: &amp;#34;dns_direct&amp;#34;
},
&amp;#34;ntp&amp;#34;: {
&amp;#34;enabled&amp;#34;: true,
&amp;#34;server&amp;#34;: &amp;#34;time.apple.com&amp;#34;,
&amp;#34;server_port&amp;#34;: 123,
&amp;#34;interval&amp;#34;: &amp;#34;30m0s&amp;#34;,
&amp;#34;detour&amp;#34;: &amp;#34;direct&amp;#34;
},
&amp;#34;inbounds&amp;#34;: [
{
&amp;#34;type&amp;#34;: &amp;#34;tun&amp;#34;,
&amp;#34;inet4_address&amp;#34;: &amp;#34;198.18.0.1/16&amp;#34;,
&amp;#34;auto_route&amp;#34;: true,
&amp;#34;exclude_package&amp;#34;: [
&amp;#34;cmb.pb&amp;#34;,
&amp;#34;cn.gov.pbc.dcep&amp;#34;,
&amp;#34;com.MobileTicket&amp;#34;,
&amp;#34;com.adguard.android&amp;#34;,
&amp;#34;com.ainemo.dragoon&amp;#34;,
&amp;#34;com.alibaba.android.rimet&amp;#34;,
&amp;#34;com.alicloud.databox&amp;#34;,
&amp;#34;com.amazing.cloudisk.tv&amp;#34;,
&amp;#34;com.autonavi.minimap&amp;#34;,
&amp;#34;com.bilibili.app.in&amp;#34;,
&amp;#34;com.bishua666.luxxx1&amp;#34;,
&amp;#34;com.cainiao.wireless&amp;#34;,
&amp;#34;com.chebada&amp;#34;,
&amp;#34;com.chinamworld.main&amp;#34;,
&amp;#34;com.cmbchina.ccd.pluto.cmbActivity&amp;#34;,
&amp;#34;com.coolapk.market&amp;#34;,
&amp;#34;com.ctrip.ct&amp;#34;,
&amp;#34;com.dianping.v1&amp;#34;,
&amp;#34;com.douban.frodo&amp;#34;,
&amp;#34;com.eg.android.AlipayGphone&amp;#34;,
&amp;#34;com.farplace.qingzhuo&amp;#34;,
&amp;#34;com.hanweb.android.zhejiang.activity&amp;#34;,
&amp;#34;com.leoao.fitness&amp;#34;,
&amp;#34;com.lucinhu.bili_you&amp;#34;,
&amp;#34;com.mikrotik.android.tikapp&amp;#34;,
&amp;#34;com.moji.mjweather&amp;#34;,
&amp;#34;com.motorola.cn.calendar&amp;#34;,
&amp;#34;com.motorola.cn.lrhealth&amp;#34;,
&amp;#34;com.netease.cloudmusic&amp;#34;,
&amp;#34;com.sankuai.meituan&amp;#34;,
&amp;#34;com.sina.weibo&amp;#34;,
&amp;#34;com.smartisan.notes&amp;#34;,
&amp;#34;com.sohu.inputmethod.sogou.moto&amp;#34;,
&amp;#34;com.sonelli.juicessh&amp;#34;,
&amp;#34;com.ss.android.article.news&amp;#34;,
&amp;#34;com.ss.android.lark&amp;#34;,
&amp;#34;com.ss.android.ugc.aweme&amp;#34;,
&amp;#34;com.tailscale.ipn&amp;#34;,
&amp;#34;com.taobao.idlefish&amp;#34;,
&amp;#34;com.taobao.taobao&amp;#34;,
&amp;#34;com.tencent.mm&amp;#34;,
&amp;#34;com.tencent.mp&amp;#34;,
&amp;#34;com.tencent.soter.soterserver&amp;#34;,
&amp;#34;com.tencent.wemeet.app&amp;#34;,
&amp;#34;com.tencent.weread&amp;#34;,
&amp;#34;com.tencent.wework&amp;#34;,
&amp;#34;com.ttxapps.wifiadb&amp;#34;,
&amp;#34;com.unionpay&amp;#34;,
&amp;#34;com.unnoo.quan&amp;#34;,
&amp;#34;com.wireguard.android&amp;#34;,
&amp;#34;com.xingin.xhs&amp;#34;,
&amp;#34;com.xunmeng.pinduoduo&amp;#34;,
&amp;#34;com.zui.zhealthy&amp;#34;,
&amp;#34;ctrip.android.view&amp;#34;,
&amp;#34;io.kubenav.kubenav&amp;#34;,
&amp;#34;org.geekbang.geekTime&amp;#34;,
&amp;#34;tv.danmaku.bili&amp;#34;
],
&amp;#34;stack&amp;#34;: &amp;#34;mixed&amp;#34;,
&amp;#34;sniff&amp;#34;: true
},
{
&amp;#34;type&amp;#34;: &amp;#34;socks&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;socks-in&amp;#34;,
&amp;#34;listen&amp;#34;: &amp;#34;::&amp;#34;,
&amp;#34;listen_port&amp;#34;: 5353
}
],
&amp;#34;outbounds&amp;#34;: [
{
&amp;#34;type&amp;#34;: &amp;#34;selector&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;select&amp;#34;,
&amp;#34;outbounds&amp;#34;: [
&amp;#34;trojan-out&amp;#34;
],
&amp;#34;default&amp;#34;: &amp;#34;trojan-out&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;selector&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;openai&amp;#34;,
&amp;#34;outbounds&amp;#34;: [
&amp;#34;trojan-out&amp;#34;
],
&amp;#34;default&amp;#34;: &amp;#34;trojan-out&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;selector&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;tiktok&amp;#34;,
&amp;#34;outbounds&amp;#34;: [
&amp;#34;trojan-out&amp;#34;
],
&amp;#34;default&amp;#34;: &amp;#34;trojan-out&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;trojan&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;trojan-out&amp;#34;,
&amp;#34;server&amp;#34;: &amp;#34;199.180.115.155&amp;#34;,
&amp;#34;server_port&amp;#34;: 9443,
&amp;#34;password&amp;#34;: &amp;#34;5iFHKMrn9Ez//VKh6zChTA==&amp;#34;,
&amp;#34;tls&amp;#34;: {
&amp;#34;enabled&amp;#34;: true,
&amp;#34;server_name&amp;#34;: &amp;#34;ss.icloudnative.io&amp;#34;,
&amp;#34;insecure&amp;#34;: true,
&amp;#34;utls&amp;#34;: {
&amp;#34;fingerprint&amp;#34;: &amp;#34;chrome&amp;#34;
}
},
&amp;#34;multiplex&amp;#34;: {
&amp;#34;protocol&amp;#34;: &amp;#34;h2mux&amp;#34;,
&amp;#34;max_connections&amp;#34;: 4,
&amp;#34;min_streams&amp;#34;: 4
},
&amp;#34;transport&amp;#34;: {
&amp;#34;type&amp;#34;: &amp;#34;grpc&amp;#34;,
&amp;#34;service_name&amp;#34;: &amp;#34;TunService&amp;#34;
}
},
{
&amp;#34;type&amp;#34;: &amp;#34;direct&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;block&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;block&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;dns&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;dns-out&amp;#34;
}
],
&amp;#34;route&amp;#34;: {
&amp;#34;rules&amp;#34;: [
{
&amp;#34;protocol&amp;#34;: &amp;#34;dns&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;dns-out&amp;#34;
},
{
&amp;#34;clash_mode&amp;#34;: &amp;#34;direct&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;clash_mode&amp;#34;: &amp;#34;global&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;domain_suffix&amp;#34;: [
&amp;#34;icloudnative.io&amp;#34;,
&amp;#34;fuckcloudnative.io&amp;#34;,
&amp;#34;sealos.io&amp;#34;,
&amp;#34;cdn.jsdelivr.net&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;process_name&amp;#34;: [
&amp;#34;TencentMeeting&amp;#34;,
&amp;#34;NemoDesktop&amp;#34;,
&amp;#34;ToDesk&amp;#34;,
&amp;#34;ToDesk_Service&amp;#34;,
&amp;#34;WeChat&amp;#34;,
&amp;#34;OpenLens&amp;#34;,
&amp;#34;Tailscale&amp;#34;,
&amp;#34;wireguard-go&amp;#34;,
&amp;#34;Tunnelblick&amp;#34;,
&amp;#34;softwareupdated&amp;#34;,
&amp;#34;kubectl&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;protocol&amp;#34;: &amp;#34;quic&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;block&amp;#34;
},
{
&amp;#34;inbound&amp;#34;: &amp;#34;socks-in&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: [
&amp;#34;WeChat&amp;#34;,
&amp;#34;Bilibili&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: &amp;#34;OpenAI&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;openai&amp;#34;
},
{
&amp;#34;domain_suffix&amp;#34;: [
&amp;#34;openai.com&amp;#34;,
&amp;#34;oaistatic.com&amp;#34;,
&amp;#34;oaiusercontent.com&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;openai&amp;#34;
},
{
&amp;#34;package_name&amp;#34;: &amp;#34;com.openai.chatgpt&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;openai&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: &amp;#34;TikTok&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;tiktok&amp;#34;
},
{
&amp;#34;package_name&amp;#34;: &amp;#34;com.zhiliaoapp.musically&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;tiktok&amp;#34;
},
{
&amp;#34;domain_suffix&amp;#34;: [
&amp;#34;depay.one&amp;#34;,
&amp;#34;orbstack.dev&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;process_name&amp;#34;: [
&amp;#34;DropboxMacUpdate&amp;#34;,
&amp;#34;Dropbox&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;package_name&amp;#34;: [
&amp;#34;com.google.android.youtube&amp;#34;,
&amp;#34;com.android.vending&amp;#34;,
&amp;#34;org.telegram.messenger&amp;#34;,
&amp;#34;org.telegram.plus&amp;#34;,
&amp;#34;com.google.android.googlequicksearchbox&amp;#34;,
&amp;#34;app.rvx.android.youtube&amp;#34;,
&amp;#34;com.mudvod.video&amp;#34;,
&amp;#34;com.fox2code.mmm&amp;#34;,
&amp;#34;com.twitter.android&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;domain&amp;#34;: &amp;#34;accounts.google.com&amp;#34;,
&amp;#34;domain_suffix&amp;#34;: [
&amp;#34;sourceforge.net&amp;#34;,
&amp;#34;fhjasokiwq.com&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;domain_suffix&amp;#34;: &amp;#34;cloud.sealos.io&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;logical&amp;#34;,
&amp;#34;mode&amp;#34;: &amp;#34;and&amp;#34;,
&amp;#34;rules&amp;#34;: [
{
&amp;#34;rule_set&amp;#34;: &amp;#34;geosite-geolocation-!cn&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: &amp;#34;geoip-cn&amp;#34;,
&amp;#34;invert&amp;#34;: true
}
],
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: &amp;#34;Global&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: &amp;#34;geoip-cn&amp;#34;,
&amp;#34;outbound&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;ip_is_private&amp;#34;: true,
&amp;#34;outbound&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;rule_set&amp;#34;: [
&amp;#34;YouTube&amp;#34;,
&amp;#34;Telegram&amp;#34;,
&amp;#34;Netflix&amp;#34;,
&amp;#34;geoip-google&amp;#34;,
&amp;#34;geoip-telegram&amp;#34;,
&amp;#34;geoip-twitter&amp;#34;,
&amp;#34;geoip-netflix&amp;#34;
],
&amp;#34;outbound&amp;#34;: &amp;#34;select&amp;#34;
}
],
&amp;#34;rule_set&amp;#34;: [
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;geosite-geolocation-!cn&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;binary&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;geoip-cn&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;binary&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_ip_rule_set/geoip-cn.srs&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;geoip-google&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;binary&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_ip_rule_set/geoip-google.srs&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;geoip-telegram&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;binary&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_ip_rule_set/geoip-telegram.srs&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;geoip-twitter&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;binary&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_ip_rule_set/geoip-twitter.srs&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;geoip-netflix&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;binary&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_ip_rule_set/geoip-netflix.srs&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;Global&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/Global.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;YouTube&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/YouTube.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;OpenAI&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/OpenAI.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;TikTok&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/TikTok.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;Telegram&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/Telegram.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;Netflix&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/Netflix.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;WeChat&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/WeChat.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
},
{
&amp;#34;type&amp;#34;: &amp;#34;remote&amp;#34;,
&amp;#34;tag&amp;#34;: &amp;#34;Bilibili&amp;#34;,
&amp;#34;format&amp;#34;: &amp;#34;source&amp;#34;,
&amp;#34;url&amp;#34;: &amp;#34;https://mirror.ghproxy.com/https://raw.githubusercontent.com/yangchuansheng/sing-box-geosite/main/rule/Bilibili.json&amp;#34;,
&amp;#34;download_detour&amp;#34;: &amp;#34;direct&amp;#34;
}
],
&amp;#34;final&amp;#34;: &amp;#34;direct&amp;#34;,
&amp;#34;find_process&amp;#34;: true,
&amp;#34;auto_detect_interface&amp;#34;: true
},
&amp;#34;experimental&amp;#34;: {
&amp;#34;cache_file&amp;#34;: {
&amp;#34;enabled&amp;#34;: true
},
&amp;#34;clash_api&amp;#34;: {
&amp;#34;external_controller&amp;#34;: &amp;#34;0.0.0.0:9090&amp;#34;,
&amp;#34;external_ui&amp;#34;: &amp;#34;metacubexd&amp;#34;,
&amp;#34;external_ui_download_url&amp;#34;: &amp;#34;https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip&amp;#34;,
&amp;#34;external_ui_download_detour&amp;#34;: &amp;#34;select&amp;#34;,
&amp;#34;default_mode&amp;#34;: &amp;#34;rule&amp;#34;
}
}
}
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="开启内核转发并关闭防火墙"&gt;开启内核转发并关闭防火墙&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward
ufw disable
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="参考地址"&gt;参考地址&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://icloudnative.io/posts/sing-box-tutorial/"&gt;icloudnative.io&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cloudflare 科学环境</title><link>https://blog.laning.org/posts/wp-0299/</link><pubDate>Thu, 04 Apr 2024 17:19:15 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0299/</guid><description>&lt;p&gt;2024/11/24更新：项目已失效&lt;/p&gt;
&lt;h2 id="warp"&gt;warp+&lt;/h2&gt;
&lt;h3 id="流量获取"&gt;流量获取&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://t.me/generatewarpplusbot"&gt;tg机器人&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="windows客户端"&gt;windows客户端&lt;/h3&gt;
&lt;p&gt;设置代理端口+Proxy SwitchyOmega分流&lt;/p&gt;
&lt;h3 id="订阅转clash等订阅链接"&gt;订阅转clash等订阅链接&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker pull vvbbnn00/warp-clash-api
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="https://github.com/vvbbnn00/WARP-Clash-API"&gt;vvbbnn00/WARP-Clash-API: 该项目可以让你通过订阅的方式使用Cloudflare WARP+，自动获取流量。This project enables you to use Cloudflare WARP+ through subscription, automatically acquiring traffic. (github.com)&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="展示地址"&gt;展示地址&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://blog.laning.ltd:21001/"&gt;click here&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="cloudflare-反向代理"&gt;cloudflare 反向代理&lt;/h2&gt;
&lt;h3 id="开源项目"&gt;开源项目&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/3Kmfi6HP/EDtunnel"&gt;3Kmfi6HP/EDtunnel: Use Cloudflare pages and worker serverless to implement VLESS protocol (github.com)&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="参考文章"&gt;参考文章&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://jdssl.top/index.php/2023/08/02/newvless/"&gt;免费翻墙，批量vless节点，反代伪装网页，轻松跑满本地宽带 (jdssl.top)&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="展示地址-1"&gt;展示地址&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://helloworld.610524250.workers.dev/785f7047-3c97-47c5-a63f-e1b408386baa"&gt;click here&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Jellyfin on NanoPC-T4</title><link>https://blog.laning.org/posts/wp-0290/</link><pubDate>Tue, 19 Mar 2024 14:40:38 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0290/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;受限于jellyfin对rk3399等ARM处理器视频硬件解码的支持，搭建的Jellyfin服务都采用客户端解码。&lt;/p&gt;
&lt;h2 id="docker部署jellifin"&gt;docker部署Jellifin&lt;/h2&gt;
&lt;h3 id="docker-composeyml文件"&gt;docker-compose.yml文件&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;version: &amp;#39;3.3&amp;#39;
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
network_mode: &amp;#39;host&amp;#39;
volumes:
- ./config:/config
- ./cache:/cache
- ./media:/media
# - /path/to/media2:/media2:ro
restart: &amp;#39;unless-stopped&amp;#39;
# Optional - alternative address used for autodiscovery
environment:
- JELLYFIN_PublishedServerUrl=http://example.com
#- http_proxy=http://127.0.0.1:7890
#- https_proxy=http://127.0.0.1:7890
# Optional - may be necessary for docker healthcheck to pass if running in host network mode
# extra_hosts:
# - &amp;#39;host.docker.internal:host-gateway&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;一些说明：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;采用了host模式，无需进行端口映射&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;https端口8920，http端口8096&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可通过环境变量配置http和https代理&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="部署https证书"&gt;部署https证书&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;阿里云申请免费证书，有效期3个月，服务器类型选IIS&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;上传证书到./config文件夹中&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在Jellyfin页面中配置证书文件地址和密码&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>gitea服务安装配置</title><link>https://blog.laning.org/posts/wp-0283/</link><pubDate>Sat, 27 May 2023 02:53:51 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0283/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;关于gitea是什么，以及基本的配置可以参考&lt;a href="https://docs.gitea.com/zh-cn/"&gt;官方文档&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="特性"&gt;特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;此为内网使用，因而没有配置caddy或nginx等代理&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="配置"&gt;配置&lt;/h2&gt;
&lt;h3 id="1启动docker服务"&gt;1.启动docker服务&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="2ipport通过浏览器配置"&gt;2.IP:port通过浏览器配置&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://blog.laning.org/images/2023-05-27-gitea%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/Gitea%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8E%E7%AB%99%E7%82%B9%E5%88%9D%E5%A7%8B%E5%8C%96%E9%85%8D%E7%BD%AE.png"&gt;&lt;img alt="Gitea数据库与站点初始化配置" loading="lazy" src="https://blog.laning.org/images/2023-05-27-gitea%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/Gitea%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8E%E7%AB%99%E7%82%B9%E5%88%9D%E5%A7%8B%E5%8C%96%E9%85%8D%E7%BD%AE.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.laning.org/images/2023-05-27-gitea%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/Gitea%E6%9C%8D%E5%8A%A1%E4%B8%8E%E7%AE%A1%E7%90%86%E5%91%98%E9%85%8D%E7%BD%AE.png"&gt;&lt;img alt="Gitea服务与管理员配置" loading="lazy" src="https://blog.laning.org/images/2023-05-27-gitea%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/Gitea%E6%9C%8D%E5%8A%A1%E4%B8%8E%E7%AE%A1%E7%90%86%E5%91%98%E9%85%8D%E7%BD%AE.png"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>vscode-web服务与配置</title><link>https://blog.laning.org/posts/wp-0268/</link><pubDate>Sat, 27 May 2023 01:59:14 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0268/</guid><description>&lt;p&gt;&lt;a href="https://blog.laning.org/images/2023-05-27-vscode-web%E6%9C%8D%E5%8A%A1%E4%B8%8E%E9%85%8D%E7%BD%AE/VSCode-Web%E6%B5%8F%E8%A7%88%E5%99%A8%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2.png"&gt;&lt;img alt="VSCode-Web浏览器开发界面" loading="lazy" src="https://blog.laning.org/images/2023-05-27-vscode-web%E6%9C%8D%E5%8A%A1%E4%B8%8E%E9%85%8D%E7%BD%AE/VSCode-Web%E6%B5%8F%E8%A7%88%E5%99%A8%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;如果需要在多台设备之间来进行开发工作，频繁的配置开发环境无疑是很消耗精力的事情。而vscode-web提供了通过浏览器来编写代码的环境，因而理论上，你可以在任何一台机器上继续你的工作。&lt;/p&gt;
&lt;h2 id="配置过程"&gt;配置过程&lt;/h2&gt;
&lt;h3 id="1启动docker服务"&gt;1.启动docker服务&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="2进入容器查看密钥"&gt;2.进入容器查看密钥&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#进入容器
docker exec -it code-server bash
#查看密钥
cat ~/.config/code-server/config.yaml
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="3更换容器的apt源"&gt;3.更换容器的apt源&lt;/h3&gt;
&lt;p&gt;参考文档：&lt;a href="https://mirrors.tuna.tsinghua.edu.cn/help/debian/"&gt;清华开源软件镜像站Debian Help&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#换源完成后执行
apt update
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="4安装cc环境"&gt;4.安装C/C++环境&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;apt install build-essential
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="5解决python命令找不到"&gt;5.解决python命令找不到&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ln -s /usr/bin/python3 /usr/bin/python
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="6安装rust开发环境"&gt;6.安装Rust开发环境&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;curl --proto &amp;#39;=https&amp;#39; --tlsv1.2 -sSf https://sh.rustup.rs | sh
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="7进入web界面自行安装喜欢的插件"&gt;7.进入web界面，自行安装喜欢的插件&lt;/h3&gt;</description></item><item><title>bingAI本地部署</title><link>https://blog.laning.org/posts/wp-0263/</link><pubDate>Sat, 27 May 2023 00:35:44 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0263/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;自从chatGPT3.0问世以后，新一轮的人工智能浪潮深刻改变了我们的生活。相比于深蓝击败人类象棋冠军以及阿尔法狗击败人类围棋冠军，chatGPT更能称为划时代的人工智能产品，因为它太接近我们的生活了（通用人工智能）。关于它能干什么以及它与newbing的关系这里不多介绍，感兴趣的可以自己寻找这方面的科普视频。本文主要分享如何通过docker部署newbing，从而达到无需魔法访问newbing的目的。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.laning.org/images/2023-05-27-bingAI%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2/NewBing%E8%81%8A%E5%A4%A9%E9%A6%96%E9%A1%B5.png"&gt;&lt;img alt="NewBing聊天首页" loading="lazy" src="https://blog.laning.org/images/2023-05-27-bingAI%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2/NewBing%E8%81%8A%E5%A4%A9%E9%A6%96%E9%A1%B5.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;开源项目地址&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/adams549659584/go-proxy-bingai"&gt;go-proxy-bingai&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="特性"&gt;特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用caddy来进行反向代理，自动配置域名证书&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="实践过程"&gt;实践过程&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;拉取&lt;a href="https://github.com/laningya/Raspberry-Pi/tree/develop/bingAI"&gt;本目录&lt;/a&gt;下的文件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;替换caddy文件下的Caddyfile文件中的yourdomain.com字段为自己的域名&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;命令行执行&lt;code&gt;docker-compose up -d&lt;/code&gt;畅享服务吧。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>