<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Homulilly</title>
  
  <subtitle>Aroes&#39;s Blog</subtitle>
  <link href="https://homulilly.com/atom.xml" rel="self"/>
  
  <link href="https://homulilly.com/"/>
  <updated>2026-02-24T09:25:24.316Z</updated>
  <id>https://homulilly.com/</id>
  
  <author>
    <name>Aroes</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>整了一个明日方舟 终末地的基质刷取小工具</title>
    <link href="https://homulilly.com/post/build-a-toolkit-for-arknights-endfield.html"/>
    <id>https://homulilly.com/post/build-a-toolkit-for-arknights-endfield.html</id>
    <published>2026-02-06T02:06:43.000Z</published>
    <updated>2026-02-24T09:25:24.316Z</updated>
    
    <content type="html"><![CDATA[<p>《明日方舟 终末地》目前看起来还可以，最近的更新降低了最高探索等级的怪物等级，说明运营还在关心玩家。 </p><p>两个星期体验下来，发现在前期搭建完基建与产线后，后期主要就是刷取基质了，刷出武器适配的基质的概率是 1&#x2F;24 ，但是我脸黑，刷了将近 100 个才给莱万汀的专武刷出来，而且刷着刷着发现预选词条选的也不对，次选词条我是选择的技能 夜幕，只能适配两把武器，改成 <strong>攻击提升</strong> 后居然可以适配四把六星武器。</p><p>记住武器词条的什么太麻烦了，整了一个小工具： <a href="https://endfield.zip/zh/farm-on-region?region=1&main=6,1,5&sub=2">https://endfield.zip/farm-on-region</a> </p><p><img src="https://img.nep.me/i/2026/02/ef-zh-region-wuling-02.webp" alt="ef-zh-region-wuling-02.png"></p><p>刷之前，直接预览一下结果，不过只是一个网页小工具，刷还是要自己刷的。</p><p>还可以快速查看基质是否值得锁定 <a href="https://endfield.zip/zh/check-essence">https://endfield.zip/zh/check-essence</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;《明日方舟 终末地》目前看起来还可以，最近的更新降低了最高探索等级的怪物等级，说明运营还在关心玩家。 &lt;/p&gt;
&lt;p&gt;两个星期体验下来，发现在前期搭建完基建与产线后，后期主要就是刷取基质了，刷出武器适配的基质的概率是 1&amp;#x2F;24 ，但是我脸黑，刷了将近 100 个才</summary>
      
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="Arknights Endfield" scheme="https://homulilly.com/tags/Arknights-Endfield/"/>
    
  </entry>
  
  <entry>
    <title>手游观察：明日方舟 终末地</title>
    <link href="https://homulilly.com/post/game-endfield.html"/>
    <id>https://homulilly.com/post/game-endfield.html</id>
    <published>2026-01-28T08:10:47.000Z</published>
    <updated>2026-02-27T15:16:58.238Z</updated>
    
    <content type="html"><![CDATA[<p>又忍不住玩手游了，试试新出的 《明日方舟:终末地》，开服居然只开放第二章。</p><p>卡池机制看起来有些良心，但是当感觉抽卡游戏良心时就需要意识到已经上当了，实际上由于大保底不继承且会提前取消的机制使其没有看上去的那么好。</p><p>1 月 22 开服下载的，记录一下，看看这次能玩多久。</p><p>Update: END@2月28，前半个月感觉很好，每天都有新鲜感，但是每天都要重复劳动 30min 左右还是太久了（</p><span id="more"></span><p>日常时间总结：<br>除了剧情与活动剧情以外，在前期完成了拉电线、摆好据点生产线。<br>每天上线需要</p><ul><li>倒买倒卖: 5min</li><li>给好友助力：大概 5min</li><li>送物资：可以直接扔给好友，如果为了一点羊毛自己送三次 5min x3</li></ul><p>感觉还行，体力回满需要一天半的时间，两天清一次体力，打个两把就行，还能摆道具助力。 </p><h2 id="开服福利"><a href="#开服福利" class="headerlink" title="开服福利"></a>开服福利</h2><ul><li>新手 40 连，保底一常驻六星，我不想说我出了签到送的 <strong>小羊</strong></li></ul><h2 id="人物卡池"><a href="#人物卡池" class="headerlink" title="人物卡池"></a>人物卡池</h2><h3 id="抽卡货币"><a href="#抽卡货币" class="headerlink" title="抽卡货币"></a>抽卡货币</h3><p><strong>嵌晶玉</strong> ，后文简称钻，氪金货币是 <strong>衍质源石</strong>，源石一颗可以兑换 75 钻，不区分氪金获取和免费获取。</p><h3 id="抽卡票"><a href="#抽卡票" class="headerlink" title="抽卡票"></a>抽卡票</h3><p>每票等于卡池一抽，500 钻。</p><ul><li><strong>普池票</strong> ：基础寻访</li><li><strong>特许票</strong> ：抽 UP 池</li><li><strong>当期特许票</strong> ：抽当期 UP 池，过期作废</li></ul><h3 id="常驻卡池"><a href="#常驻卡池" class="headerlink" title="常驻卡池"></a>常驻卡池</h3><p>目前卡池包含五常驻六星，80 抽保底一个六星，300 抽自选</p><h3 id="概率与机制"><a href="#概率与机制" class="headerlink" title="概率与机制"></a>概率与机制</h3><p>六星概率 <strong>0.8%</strong> ， UP 角色概率占一半 <strong>0.4%</strong> ，若第 65 次依然没有六星，每次抽取六星概率提升 5% ，不过六星保底次数可以跨池继承，因此没有必要单抽。</p><blockquote><p>若假设前 65 抽不出货，根据后续每抽概率提升 5%，期望出货抽数在 72 抽。</p></blockquote><ul><li><strong>30</strong> 抽赠送一次免费 10 连（不计入保底统计）</li><li><strong>60</strong> 抽赠送 <strong>下次</strong> 卡池 10 连</li><li><strong>10</strong> 抽保底五星</li><li><strong>80</strong> 抽保底六星，<strong>小保底</strong> ，继承到下个卡池。</li><li><strong>120</strong> 抽保底 <strong>UP</strong> （仅限一次）， <strong>大保底</strong>， <strong>不继承</strong> 到下个卡池。<ul><li>前 80 抽的保底出了当期 UP 取消该机制</li><li>前 80 抽的保底歪了，可以在第 120 抽获取当期 UP，同时会重置 80 抽的保底，120 抽保底并不是第二个六星必出 UP。</li></ul></li><li>240 抽赠送 UP 角色送突破素材</li><li>非常驻角色出现在 <strong>三个连续</strong> 特殊寻访卡池中</li></ul><h3 id="抽卡策略"><a href="#抽卡策略" class="headerlink" title="抽卡策略"></a>抽卡策略</h3><ol><li><p>当然只抽 60 最赚，直接每次白嫖额外 20 抽。</p></li><li><p>正常是满 <strong>120</strong> 抽再下池，保证获取当期 UP ，如果加上上个池子送的 10 抽，抽卡副产物兑换 5 抽，新卡池的签到送 5 抽，需准备 100 抽，约 50000 钻 （667源石），按不含双倍计算需 1550 元（648元 &#x3D; 280 源石）</p></li><li><p>邪道抽卡，前一个卡池垫 30 抽的 80 抽保底，预计可以在 40、70 抽获取小保底，根据 120 抽大保底的规则，在足够非(Gemini 说大约不足三成)时可以利益最大化，在两次小保底歪的情况下通过 120 抽获取三个六星。</p></li></ol><p><del>要记得，当开始算计手游厂商时，我们又上当了。</del></p><h2 id="武器卡池"><a href="#武器卡池" class="headerlink" title="武器卡池"></a>武器卡池</h2><ul><li>特殊货币 <strong>武库配额</strong>，抽人物卡池赠送<ul><li>六星 2000</li><li>五星 200</li><li>四星 20</li></ul></li><li>十连需 <strong>1980</strong></li><li>2480 兑换常驻六星武器（目测是轮换）</li><li>80 抽保底</li><li>120 抽送突破素材</li></ul><h2 id="突破机制"><a href="#突破机制" class="headerlink" title="突破机制"></a>突破机制</h2><h3 id="人物"><a href="#人物" class="headerlink" title="人物"></a>人物</h3><p>含本体六只满破，目前突破主要是倍率，无关键机制。</p><h3 id="武器"><a href="#武器" class="headerlink" title="武器"></a>武器</h3><p>一样含本体六把，不自动突破，加第三词条的属性上限</p><h2 id="游戏干什么"><a href="#游戏干什么" class="headerlink" title="游戏干什么"></a>游戏干什么</h2><ul><li>推图</li><li>剧情</li><li>建造： <ul><li>拉电线（滑起来很爽）</li><li>集成工业自动化生产，生产装备，赚游戏货币买素材道具</li></ul></li><li>刷武器配件</li></ul><h2 id="定期收入"><a href="#定期收入" class="headerlink" title="定期收入"></a>定期收入</h2><ul><li><strong>日常任务</strong>: 200 钻</li><li><strong>每周事务</strong>: 400 钻 + 100 武库配额</li><li><a href="https://game.skport.com/endfield/sign-in">Skport 签到</a>： 每月 260 钻</li></ul><h2 id="氪金项目"><a href="#氪金项目" class="headerlink" title="氪金项目"></a>氪金项目</h2><h3 id="月卡："><a href="#月卡：" class="headerlink" title="月卡："></a>月卡：</h3><p>30 元，购买送 12 源石，每日 200 钻，1 限时体力药，共计 12 抽 + 12 源石（1.8 抽）</p><h3 id="通行证"><a href="#通行证" class="headerlink" title="通行证"></a>通行证</h3><p>目测一期 45 天</p><ul><li>免费 ：600 钻</li><li>一档 ：29 源石购买（原价 32 源石）</li><li>返 32 源石，保本</li><li>材料、一个三选一六星武器箱</li><li>二档 ：氪金 68 元</li><li>材料、一个三选一六星武器箱</li><li>两个武器突破素材（箱子里可以选的）</li><li>购买时给 20 源石</li><li>升级包含 16 源石</li><li>2400 武库配额</li><li>理智萃取器：x10，通行证付费限定物品，可以转化为 120 理智(体力)的道具。</li></ul><h3 id="其他项目"><a href="#其他项目" class="headerlink" title="其他项目"></a>其他项目</h3><ul><li>常驻 10 连 + 武器 10 连 ： 98 元</li><li>当期 UP 池 10 连： 98 元 </li><li>UP 池 10 连 + 武器 10 连： 128 元</li></ul><h2 id="体力系统"><a href="#体力系统" class="headerlink" title="体力系统"></a>体力系统</h2><p>等级高了 2 天回满，可以摆烂。</p><h2 id="常用链接"><a href="#常用链接" class="headerlink" title="常用链接"></a>常用链接</h2><ul><li><a href="https://act.skport.com/endfield/preDownload">开服活动</a>：300 钻</li><li><a href="https://endfield.gryphline.com/activity/final-prep-orders">预抽卡</a>： 一周内可以完成，获取一把五星武器以及一个头像，2.7 截止。</li><li><a href="https://game.skport.com/map/endfield">Skport 网页地图</a></li><li><a href="https://www.gamekee.com/zmd/">Gamekee - 终末地</a></li><li><a href="https://jambochen.github.io/endfield-calc/">终末地工厂生产计算器</a></li><li><a href="https://endfield-calc.github.io/aef?v=11">终末地量化计算器</a>\</li><li><a href="https://ef.yituliu.cn/">终末地一图流</a></li><li><a href="https://opendfieldmap.cn/">终末地地图集</a></li></ul><h2 id="评价"><a href="#评价" class="headerlink" title="评价"></a>评价</h2><p>开服一周感想，不得不说滑索拉好后滑起来很爽，每天打开先干一波投机倒把的倒买倒卖大赚一笔也很爽。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;又忍不住玩手游了，试试新出的 《明日方舟:终末地》，开服居然只开放第二章。&lt;/p&gt;
&lt;p&gt;卡池机制看起来有些良心，但是当感觉抽卡游戏良心时就需要意识到已经上当了，实际上由于大保底不继承且会提前取消的机制使其没有看上去的那么好。&lt;/p&gt;
&lt;p&gt;1 月 22 开服下载的，记录一下，看看这次能玩多久。&lt;/p&gt;
&lt;p&gt;Update: END@2月28，前半个月感觉很好，每天都有新鲜感，但是每天都要重复劳动 30min 左右还是太久了（&lt;/p&gt;</summary>
    
    
    
    <category term="Games" scheme="https://homulilly.com/categories/Games/"/>
    
    
    <category term="Arknights Endfield" scheme="https://homulilly.com/tags/Arknights-Endfield/"/>
    
  </entry>
  
  <entry>
    <title>在局域网中部署 Dokploy 并配合 dnsChallenge(Cloudflare) 签发证书</title>
    <link href="https://homulilly.com/post/use-dokploy-in-local-network.html"/>
    <id>https://homulilly.com/post/use-dokploy-in-local-network.html</id>
    <published>2025-12-15T11:03:44.000Z</published>
    <updated>2025-12-16T09:33:21.929Z</updated>
    
    <content type="html"><![CDATA[<p>之前看见过很多人推荐 <a href="https://dokploy.com/">Dokploy</a>，可以方便的部署、管理项目，印象颇深。 但是我还是一直在使用古法手动 <code>docker compose</code> 以及 <code>pnpm start</code> 允许一些项目。</p><p>随着现在 AI 的进步，整的小工具多了起来，确实管理起来略微麻烦，当然之前使用过 Dpanel 管理一些 Docker 应用，但是 Dpanel 的 2FA 是付费功能，略微不喜。  </p><p>于是打算先在我的局域网设备上体验一下。</p><span id="more"></span><h2 id="安装-Dokploy"><a href="#安装-Dokploy" class="headerlink" title="安装 Dokploy"></a>安装 Dokploy</h2><p>装了一个全新的 Debian 13 给 Dokploy 用 ，安装也是非常的简单，一条命令就可以了。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl -sSL https://dokploy.com/install.sh | sh</span><br></pre></td></tr></table></figure><p>然后访问 http:&#x2F;&#x2F;<ip>:3000 就可以了。</p><h2 id="连接-GitHub"><a href="#连接-GitHub" class="headerlink" title="连接 GitHub"></a>连接 GitHub</h2><p>点击左侧的菜单的 <strong>Git</strong>，右侧 Git Providers，点击 <strong>Github</strong>，然后点击 <code>Create GitHub App</code> ，填写一个不重复的项目名称。</p><p>设置一下项目权限，然后就可以在 Dokploy 中部署对应的项目了。</p><h2 id="部署项目"><a href="#部署项目" class="headerlink" title="部署项目"></a>部署项目</h2><h3 id="首先创建一个-Project"><a href="#首先创建一个-Project" class="headerlink" title="首先创建一个 Project"></a>首先创建一个 Project</h3><p>在左侧菜单栏选择 Projects 后，右侧可以创建 Project。</p><p>Project（项目）是一个整体，在项目内部可以创建不同 Service（服务），创建服务时才会使用到 Github 。</p><h3 id="创建-Service"><a href="#创建-Service" class="headerlink" title="创建 Service"></a>创建 Service</h3><p>进入项目后，可以点击 <code>Create Service</code> 创建应用程序，可以选择以下的方式创建。</p><ul><li><strong>Application</strong> : 我们是从 GitHub 拉取镜像创建，选择这一个</li><li><strong>Database</strong> : 创建数据库应用</li><li><strong>Compose</strong> : 使用 Docker Compose 创建</li><li><strong>Template</strong> : 内建的模板市场</li></ul><p>选择 <strong>Application</strong> 创建后：</p><ul><li>打开对应的 Service，选择之前连接的 Github 账户与项目</li><li>环境变量在 <strong>Environment</strong> 中设置</li></ul><p>我的应用程序有提供 <code>Dockerfile</code> 文件，因此 Build Type 选择 Docckerfile 即可。</p><p><code>Dockerfile</code> 文件位于根目录，下面的路径直接填写 <code>Dockerfile</code> 即可，另外的保持默认。</p><p>然后点击顶部的 <code>Deploy</code> 即可拉取镜像进行部署。</p><h3 id="设置域名"><a href="#设置域名" class="headerlink" title="设置域名"></a>设置域名</h3><p>部署完成后，发现无法访问，点击 Logs 会查看的下面的内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">2025-12-15T09:38:31.197Z ▲ Next.js 15.5.9</span><br><span class="line">2025-12-15T09:38:31.197Z - Local:        http://14888c5aa2db:3000</span><br><span class="line">2025-12-15T09:38:31.197Z - Network:      http://14888c5aa2db:3000</span><br><span class="line">2025-12-15T09:38:31.197Z ✓ Starting...</span><br><span class="line">2025-12-15T09:38:31.276Z ✓ Ready <span class="keyword">in</span> 88ms</span><br></pre></td></tr></table></figure><p>这是因为没有设置 Domains ，无法访问到项目，Dokploy 使用的是 Traefik 进行反代与设置证书。</p><p>Dokploy 中默认使用的是 <code>httpChallenge</code> 签发 Let’s Encrypt 证书，如果 Dokploy 部署在公网服务器上，只要简单的填写 <strong>Host</strong> ，并将 <strong>Certificate Provider</strong> 选择 <strong>Let’s Encrypt</strong> 就可以打开 HTTPS 使用了。</p><p>可是我的 Dokploy 服务器位于局域网中，无法完成 httpChallenge ，不过 Traefik 是支持使用 Cloudflare API 进行 dnsChallenge 的，需要修改一些设置。</p><h2 id="设置-dnsChallenge-Cloudflare"><a href="#设置-dnsChallenge-Cloudflare" class="headerlink" title="设置 dnsChallenge(Cloudflare)"></a>设置 dnsChallenge(Cloudflare)</h2><h3 id="获取-Cloudflare-API-Token"><a href="#获取-Cloudflare-API-Token" class="headerlink" title="获取 Cloudflare API Token"></a>获取 Cloudflare API Token</h3><ul><li>登录 Cloudflare Dashboard: <a href="https://dash.cloudflare.com/profile/api-tokens">https://dash.cloudflare.com/profile/api-tokens</a></li><li>选择创建令牌</li><li>记得编辑一下 <strong>令牌名称</strong> 用于区分用途</li><li>令牌模板选择 <strong>编辑区域 DNS</strong> </li><li>根据最小化授权的原则，区域资源选择对应的域名</li><li>根据需求设置允许的 IP 地址以及生效时间</li></ul><p>点击继续，最后显示对应的 Token ，保存备用，Token 只会显示这一次，以后无法查看。</p><h3 id="修改-traefik-yml"><a href="#修改-traefik-yml" class="headerlink" title="修改 traefik.yml"></a>修改 traefik.yml</h3><p>在 Dokploy 左侧菜单栏选择 <code>Home</code> &gt; <code>Traefik File System</code>，右侧点击 <code>traefik.yml</code> ，需要点击 Unlock 才可以编辑，将底部的</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">certificatesResolvers:</span> </span><br><span class="line">  <span class="attr">letsencrypt:</span> </span><br><span class="line">    <span class="attr">acme: email:</span> <span class="string">test@localhost.com</span> </span><br><span class="line">    <span class="attr">storage:</span> <span class="string">/etc/dokploy/traefik/dynamic/acme.json</span> </span><br><span class="line">    <span class="attr">httpChallenge: entryPoint:</span> <span class="string">web</span></span><br></pre></td></tr></table></figure><p>修改为</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">certificatesResolvers:</span></span><br><span class="line">  <span class="attr">letsencrypt:</span></span><br><span class="line">    <span class="attr">acme:</span></span><br><span class="line">      <span class="attr">email:</span> <span class="string">username@yourdomain.com</span></span><br><span class="line">      <span class="attr">storage:</span> <span class="string">/etc/dokploy/traefik/dynamic/acme.json</span></span><br><span class="line">      <span class="attr">dnsChallenge:</span></span><br><span class="line">        <span class="attr">provider:</span> <span class="string">cloudflare</span></span><br><span class="line">        <span class="attr">delayBeforeCheck:</span> <span class="number">10</span></span><br></pre></td></tr></table></figure><p>点击 <code>Update</code> 后再点击右上角 <code>Lock</code></p><h3 id="设置-Cloudflare-API-Token"><a href="#设置-Cloudflare-API-Token" class="headerlink" title="设置 Cloudflare API Token"></a>设置 Cloudflare API Token</h3><p>在 Dokploy 左侧菜单栏选择 <code>Settings</code> &gt; <code>Web Server</code>，右侧点击 Traefik ，<code>Actions</code> 中选择 <code>Modify Environment</code> ，加入 Cloudflare API token 的设置。</p><p>修改后显示如下</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin</span><br><span class="line">CF_DNS_API_TOKEN=your_cloudflare_api_token</span><br></pre></td></tr></table></figure><p>然后就可以签发证书了， 访问 Dokploy 的域名也是在这个页面的 <code>Server Domain</code> 部分中进行设置。</p><h2 id="安全设置"><a href="#安全设置" class="headerlink" title="安全设置"></a>安全设置</h2><p>确认可以通过 HTTPS 域名访问 Dokploy 后，我们需要关闭 ip:port 的访问，<br>在服务器上执行下面的命令即可</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker service update --publish-rm <span class="string">&quot;published=3000,target=3000,mode=host&quot;</span> dokploy</span><br></pre></td></tr></table></figure><p>更多的安全内容请查看 <a href="https://docs.dokploy.com/docs/core/remote-servers/security">Dokploy Docs: Security</a></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;之前看见过很多人推荐 &lt;a href=&quot;https://dokploy.com/&quot;&gt;Dokploy&lt;/a&gt;，可以方便的部署、管理项目，印象颇深。 但是我还是一直在使用古法手动 &lt;code&gt;docker compose&lt;/code&gt; 以及 &lt;code&gt;pnpm start&lt;/code&gt; 允许一些项目。&lt;/p&gt;
&lt;p&gt;随着现在 AI 的进步，整的小工具多了起来，确实管理起来略微麻烦，当然之前使用过 Dpanel 管理一些 Docker 应用，但是 Dpanel 的 2FA 是付费功能，略微不喜。  &lt;/p&gt;
&lt;p&gt;于是打算先在我的局域网设备上体验一下。&lt;/p&gt;</summary>
    
    
    
    
    <category term="Let&#39;s Encrypt" scheme="https://homulilly.com/tags/Let-s-Encrypt/"/>
    
    <category term="Cloudflare" scheme="https://homulilly.com/tags/Cloudflare/"/>
    
    <category term="Dokploy" scheme="https://homulilly.com/tags/Dokploy/"/>
    
  </entry>
  
  <entry>
    <title>Hexo 7.3 添加友链页面（Hexo Theme NexT）</title>
    <link href="https://homulilly.com/post/hexo-7-add-links-page.html"/>
    <id>https://homulilly.com/post/hexo-7-add-links-page.html</id>
    <published>2025-08-07T15:15:53.000Z</published>
    <updated>2025-08-25T18:06:50.240Z</updated>
    
    <content type="html"><![CDATA[<p>闲来无事，更新了一下 Hexo 博客的版本，从 5.4.2 升级到 7.3.0 了，粗略一看没啥大问题，直到我打开友链页面，链接一个都没了</p><p>之前的创建方法在这里 <a href="https://homulilly.com/post/hexo-update-with-twikoo.html?highlight=%E5%8F%8B%E9%93%BE#6-%E8%AE%BE%E7%BD%AE-Links-%E9%A1%B5%E9%9D%A2%E6%A0%B7%E5%BC%8F">更新 Hexo 和 NexT 主题 - 设置 Links 页面</a></p><p>链接是保存在 <code>_data/links.yaml</code> 中的。</p><p>问了问 Claude Code ，说是可能 Liquid 模板语法 <code>&#123;% for %&#125;</code> 在 Hexo 新版本中不被支持了，所以无法读取 <code>_data/links.yaml</code> 中的内容，让 Claude Code 修改了一下没有成功。</p><p>想了一下，不如直接用 JavaScript 把内容写在 Links 页面里吧</p><p>环境</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&gt;hexo --version</span><br><span class="line">INFO  Validating config</span><br><span class="line">hexo: 7.3.0</span><br><span class="line">hexo-cli: 4.3.2</span><br></pre></td></tr></table></figure><span id="more"></span><h2 id="创建-Links-页面"><a href="#创建-Links-页面" class="headerlink" title="创建 Links 页面"></a>创建 Links 页面</h2><p>执行 <code>hexo new page links</code>，替换文件内容如下</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br></pre></td><td class="code"><pre><span class="line">---</span><br><span class="line">title: 友情链接</span><br><span class="line"><span class="section">type: links</span></span><br><span class="line"><span class="section">---</span></span><br><span class="line"></span><br><span class="line">---- </span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;links-content&quot;</span>&gt;</span></span></span><br><span class="line"><span class="code">    &lt;div class=&quot;link-navigation&quot; id=&quot;friendLinks&quot;&gt;</span></span><br><span class="line"><span class="code">        &lt;!-- 友情链接将通过 JavaScript 动态加载 --&gt;</span></span><br><span class="line"><span class="code">    &lt;/div&gt;</span></span><br><span class="line"><span class="code">&lt;/div&gt;</span></span><br><span class="line"><span class="code"></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">script</span>&gt;</span></span></span><br><span class="line">document.addEventListener(&#x27;DOMContentLoaded&#x27;, function() &#123;</span><br><span class="line"><span class="code">    // 友情链接数据</span></span><br><span class="line"><span class="code">    const links = [</span></span><br><span class="line"><span class="code">        &#123;</span></span><br><span class="line"><span class="code">            name: &#x27;&#x27;,</span></span><br><span class="line"><span class="code">            info: &#x27;&#x27;,</span></span><br><span class="line"><span class="code">            site: &#x27;&#x27;,</span></span><br><span class="line"><span class="code">            avatar: &#x27;&#x27;</span></span><br><span class="line"><span class="code">        &#125;,        &#123;</span></span><br><span class="line"><span class="code">            name: &#x27;&#x27;,</span></span><br><span class="line"><span class="code">            info: &#x27;&#x27;,</span></span><br><span class="line"><span class="code">            site: &#x27;&#x27;,</span></span><br><span class="line"><span class="code">            avatar: &#x27;&#x27;</span></span><br><span class="line"><span class="code">        &#125;,</span></span><br><span class="line"><span class="code">    ];</span></span><br><span class="line"><span class="code"></span></span><br><span class="line"><span class="code">    const container = document.getElementById(&#x27;friendLinks&#x27;);</span></span><br><span class="line"><span class="code">    </span></span><br><span class="line"><span class="code">    links.forEach(function(link) &#123;</span></span><br><span class="line"><span class="code">        // 创建可点击的链接容器</span></span><br><span class="line"><span class="code">        const linkElement = document.createElement(&#x27;a&#x27;);</span></span><br><span class="line"><span class="code">        linkElement.href = link.site;</span></span><br><span class="line"><span class="code">        linkElement.target = &#x27;_blank&#x27;;</span></span><br><span class="line"><span class="code">        linkElement.style.textDecoration = &#x27;none&#x27;;</span></span><br><span class="line"><span class="code">        linkElement.style.color = &#x27;inherit&#x27;;</span></span><br><span class="line"><span class="code">        </span></span><br><span class="line"><span class="code">        // 创建卡片元素</span></span><br><span class="line"><span class="code">        const cardElement = document.createElement(&#x27;div&#x27;);</span></span><br><span class="line"><span class="code">        cardElement.className = &#x27;card&#x27;;</span></span><br><span class="line"><span class="code">        </span></span><br><span class="line"><span class="code">        // 创建图片元素</span></span><br><span class="line"><span class="code">        const imgElement = document.createElement(&#x27;img&#x27;);</span></span><br><span class="line"><span class="code">        imgElement.className = &#x27;ava nomediumzoom&#x27;;</span></span><br><span class="line"><span class="code">        imgElement.src = link.avatar;</span></span><br><span class="line"><span class="code">        </span></span><br><span class="line"><span class="code">        // 添加图片加载失败的 fallback</span></span><br><span class="line"><span class="code">        imgElement.onerror = function() &#123;</span></span><br><span class="line"><span class="code">            this.src = &#x27;/images/error.gif&#x27;;</span></span><br><span class="line"><span class="code">            this.onerror = null; // 防止无限循环</span></span><br><span class="line"><span class="code">        &#125;;</span></span><br><span class="line"><span class="code">        </span></span><br><span class="line"><span class="code">        // 创建头像信息容器</span></span><br><span class="line"><span class="code">        const headerElement = document.createElement(&#x27;div&#x27;);</span></span><br><span class="line"><span class="code">        headerElement.className = &#x27;card-header&#x27;;</span></span><br><span class="line"><span class="code">        headerElement.innerHTML = </span></span><br><span class="line"><span class="code">            &#x27;&lt;div class=&quot;card-name&quot;&gt;&#x27; + link.name + &#x27;&lt;/div&gt;&#x27; +</span></span><br><span class="line"><span class="code">            &#x27;&lt;div class=&quot;info&quot;&gt;&#x27; + link.info + &#x27;&lt;/div&gt;&#x27;;</span></span><br><span class="line"><span class="code">        </span></span><br><span class="line"><span class="code">        // 组装卡片</span></span><br><span class="line"><span class="code">        cardElement.appendChild(imgElement);</span></span><br><span class="line"><span class="code">        cardElement.appendChild(headerElement);</span></span><br><span class="line"><span class="code">        linkElement.appendChild(cardElement);</span></span><br><span class="line"><span class="code">        container.appendChild(linkElement);</span></span><br><span class="line"><span class="code">    &#125;);</span></span><br><span class="line"><span class="code">&#125;);</span></span><br><span class="line"><span class="code">&lt;/script&gt;</span></span><br><span class="line"><span class="code"></span></span><br><span class="line">---- </span><br><span class="line"></span><br><span class="line"><span class="quote">&gt; 其他地方可以使用 markdown 填写内容</span></span><br><span class="line"></span><br><span class="line"><span class="quote">&gt; <span class="strong">**本站信息**</span> </span></span><br><span class="line">name: <span class="strong">**Homulilly**</span></span><br><span class="line">info:  Aroes\&#x27;s Blog </span><br><span class="line">site:  https://homulilly.com</span><br><span class="line">avatar:  https://homulilly.com/images/avatar.jpg</span><br><span class="line">rss: https://homulilly.com/atom.xml</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="样式文件"><a href="#样式文件" class="headerlink" title="样式文件"></a>样式文件</h2><p>创建或是编辑 <code>source/_data/styles.styl</code></p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 友情链接 */</span></span><br><span class="line"><span class="selector-id">#links</span> &#123;</span><br><span class="line">    <span class="attribute">margin-top</span>: <span class="number">5rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.links-content</span> &#123;</span><br><span class="line">    <span class="attribute">margin-top</span>: <span class="number">1rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.link-navigation</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-wrap</span>: wrap;</span><br><span class="line">  <span class="attribute">justify-content</span>: space-between; <span class="comment">/* 可选：控制弹性项之间的水平间距 */</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.card</span> &#123;</span><br><span class="line">    <span class="attribute">width</span>: <span class="number">270px</span>;</span><br><span class="line">    <span class="attribute">font-size</span>: <span class="number">1rem</span>;</span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">10px</span> <span class="number">20px</span>;</span><br><span class="line">    <span class="attribute">border-radius</span>: <span class="number">4px</span>;</span><br><span class="line">    <span class="attribute">transition-duration</span>: <span class="number">0.15s</span>;</span><br><span class="line">    <span class="attribute">margin-bottom</span>: <span class="number">1rem</span>;</span><br><span class="line">    <span class="attribute">display</span>: flex;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 鼠标悬浮时效果 */</span></span><br><span class="line"><span class="selector-class">.card</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">    <span class="attribute">transform</span>: <span class="built_in">scale</span>(<span class="number">1.05</span>);</span><br><span class="line">&#125; </span><br><span class="line"></span><br><span class="line"><span class="selector-class">.card</span> <span class="selector-tag">a</span> &#123;</span><br><span class="line">    <span class="attribute">border</span>: none;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 友情链接卡片整体链接样式 */</span></span><br><span class="line"><span class="selector-class">.link-navigation</span> &gt; <span class="selector-tag">a</span> &#123;</span><br><span class="line">    <span class="attribute">text-decoration</span>: none;</span><br><span class="line">    <span class="attribute">border-bottom</span>: none;</span><br><span class="line">    <span class="attribute">color</span>: inherit;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.link-navigation</span> &gt; <span class="selector-tag">a</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">    <span class="attribute">border-bottom</span>: none;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.card</span> <span class="selector-class">.ava</span> &#123;</span><br><span class="line">    <span class="attribute">width</span>: <span class="number">3rem</span> <span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">height</span>: <span class="number">3rem</span> <span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">0</span> <span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">margin-right</span>: <span class="number">1em</span> <span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">border-radius</span>: <span class="number">4px</span>;</span><br><span class="line">    <span class="attribute">margin-top</span>: <span class="number">5px</span> <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.card</span> <span class="selector-class">.card-header</span> &#123;</span><br><span class="line">    <span class="attribute">font-style</span>: italic;</span><br><span class="line">    <span class="attribute">overflow</span>: hidden;</span><br><span class="line">    <span class="attribute">width</span>: <span class="number">236px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.card</span> <span class="selector-class">.card-header</span> <span class="selector-class">.card-name</span> &#123;</span><br><span class="line">    <span class="attribute">font-style</span>: normal;</span><br><span class="line">    <span class="attribute">color</span>: <span class="number">#2bbc8a</span>;</span><br><span class="line">    <span class="attribute">font-weight</span>: bold;</span><br><span class="line">    <span class="attribute">text-decoration</span>: none;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.card</span><span class="selector-pseudo">:hover</span> <span class="selector-class">.card-header</span> <span class="selector-class">.card-name</span> &#123;</span><br><span class="line">    <span class="attribute">color</span>: <span class="number">#d480aa</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.card</span> <span class="selector-class">.card-header</span> <span class="selector-class">.info</span> &#123;</span><br><span class="line">    <span class="attribute">font-style</span>: normal;</span><br><span class="line">    <span class="attribute">color</span>: <span class="number">#a3a3a3</span>;</span><br><span class="line">    <span class="attribute">font-size</span>: <span class="number">14px</span>;</span><br><span class="line">    <span class="attribute">min-width</span>: <span class="number">0</span>;</span><br><span class="line">    <span class="attribute">text-overflow</span>: ellipsis;</span><br><span class="line">    <span class="attribute">overflow</span>: hidden;</span><br><span class="line">    <span class="attribute">white-space</span>: nowrap;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">&lt;p&gt;闲来无事，更新了一下 Hexo 博客的版本，从 5.4.2 升级到 7.3.0 了，粗略一看没啥大问题，直到我打开友链页面，链接一个都没了&lt;/p&gt;
&lt;p&gt;之前的创建方法在这里 &lt;a href=&quot;https://homulilly.com/post/hexo-update-with-twikoo.html?highlight=%E5%8F%8B%E9%93%BE#6-%E8%AE%BE%E7%BD%AE-Links-%E9%A1%B5%E9%9D%A2%E6%A0%B7%E5%BC%8F&quot;&gt;更新 Hexo 和 NexT 主题 - 设置 Links 页面&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;链接是保存在 &lt;code&gt;_data/links.yaml&lt;/code&gt; 中的。&lt;/p&gt;
&lt;p&gt;问了问 Claude Code ，说是可能 Liquid 模板语法 &lt;code&gt;&amp;#123;% for %&amp;#125;&lt;/code&gt; 在 Hexo 新版本中不被支持了，所以无法读取 &lt;code&gt;_data/links.yaml&lt;/code&gt; 中的内容，让 Claude Code 修改了一下没有成功。&lt;/p&gt;
&lt;p&gt;想了一下，不如直接用 JavaScript 把内容写在 Links 页面里吧&lt;/p&gt;
&lt;p&gt;环境&lt;/p&gt;
&lt;figure class=&quot;highlight sh&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;4&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;&amp;gt;hexo --version&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;INFO  Validating config&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;hexo: 7.3.0&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;hexo-cli: 4.3.2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="Hexo" scheme="https://homulilly.com/tags/Hexo/"/>
    
  </entry>
  
  <entry>
    <title>使用 Docker 与 Gitea 部署私人 Git 服务器</title>
    <link href="https://homulilly.com/post/use-docker-deploy-gitea.html"/>
    <id>https://homulilly.com/post/use-docker-deploy-gitea.html</id>
    <published>2025-07-17T08:22:35.000Z</published>
    <updated>2025-07-17T09:24:18.133Z</updated>
    
    <content type="html"><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Git 用来同步一些文档、代码确实非常的方便，但是总会有一些文件不希望同步至 GitHub 或是其他的公共服务商，这时可以使用开源项目自建一个属于私人的 Git 服务器。  </p><p>我是有一些文件在只需要局域网内同步就可以了，在这之前我是使用的 GitLab 社区版部署的私人 Git 服务器。  </p><p>不得不说，GitLab 也是非常强大的，但相对的占用资源也比较高，需要较多的内存，而且也遇到过跨版本升级的问题。</p><p>GitLab CE 资源占用：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS</span><br><span class="line">b20641ebf857   gitlab    17.74%    5.869GiB / 15.62GiB   37.58%    425kB / 5.35MB </span><br></pre></td></tr></table></figure><p>最终，我决定迁移至轻量级的 Gitea，Gitea 完成迁移后的资源占用：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">CONTAINER ID   NAME         CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O     PIDS </span><br><span class="line">57b52a98d527   gitea        0.14%     112.2MiB / 3.823GiB   2.87%     446kB / 345kB   0B / 113MB    14 </span><br><span class="line">3abf2803c22c   gitea-db-1   0.00%     26.32MiB / 3.823GiB   0.67%     347kB / 445kB   0B / 1.02MB   9 </span><br></pre></td></tr></table></figure><p>使用 Docker Compose 部署起来也是非常简单的。</p><span id="more"></span><h2 id="Gitea-介绍"><a href="#Gitea-介绍" class="headerlink" title="Gitea 介绍"></a>Gitea 介绍</h2><p>Gitea 的自我介绍：<strong>一款极易搭建的自助 Git 服务</strong></p><ul><li>易安装：通过 二进制 来运行；或者通过 Docker 来运行；或者通过 安装包 来运行。</li><li>跨平台：任何 Go 语言 支持的平台都可以运行 Gitea，包括 Windows、Mac、Linux 以及 ARM。</li><li>轻量级：一个廉价的树莓派的配置足以满足 Gitea 的最低系统硬件要求。最大程度上节省您的服务器资源！</li><li>开源化：所有的代码都开源在 code.gitea.io&#x2F;gitea 上</li></ul><h2 id="修改主机-SSH-端口"><a href="#修改主机-SSH-端口" class="headerlink" title="修改主机 SSH 端口"></a>修改主机 SSH 端口</h2><p>我们将使用 Docker 部署 Gitea，由于 git 默认使用 22 端口更方便一些，22 端口将映射给 Docker 使用，所以需要修改宿主机的 SSH 端口</p><div class="note info"><p>命令均是在 root 权限下执行</p></div><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/ssh/sshd_config</span><br></pre></td></tr></table></figure><p>修改 <code>Port 22</code> 为其他数字。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl restart sshd</span><br></pre></td></tr></table></figure><p>如果是远程服务器，记得先新开一个终端创建进行连接测试，确认可以登录再退出当前的窗口。</p><h2 id="使用-Docker-Compose-部署"><a href="#使用-Docker-Compose-部署" class="headerlink" title="使用 Docker Compose 部署"></a>使用 Docker Compose 部署</h2><div class="note info"><p>如果没有安装 docker compose， 可以查看 <a href="https://u.sb/debian-install-docker/">Debian 12 &#x2F; Ubuntu 24.04 安装 Docker 以及 Docker Compose 教程</a> </p></div><p>首先创建一个工作文件夹，然后在其中创建 docker-compose.yml 文件，填入下面的内容：</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">networks:</span></span><br><span class="line">  <span class="attr">gitea:</span></span><br><span class="line">    <span class="attr">external:</span> <span class="literal">false</span></span><br><span class="line"></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">server:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">docker.gitea.com/gitea:1.24.2</span></span><br><span class="line">    <span class="attr">container_name:</span> <span class="string">gitea</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">USER_UID=1000</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">USER_GID=1000</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">GITEA__database__DB_TYPE=postgres</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">GITEA__database__HOST=db:5432</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">GITEA__database__NAME=gitea</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">GITEA__database__USER=gitea</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">GITEA__database__PASSWD=gitea</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">networks:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">gitea</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./gitea:/data</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/etc/timezone:/etc/timezone:ro</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/etc/localtime:/etc/localtime:ro</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;3000:3000&quot;</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;22:22&quot;</span></span><br><span class="line">    <span class="attr">depends_on:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">db</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">db:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">docker.io/library/postgres:14</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">POSTGRES_USER=gitea</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">POSTGRES_PASSWORD=gitea</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">POSTGRES_DB=gitea</span></span><br><span class="line">    <span class="attr">networks:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">gitea</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./postgres:/var/lib/postgresql/data</span></span><br></pre></td></tr></table></figure><p>Gitea 的文件将保存在与 docker-compose.yml 同目录的 gitea 文件夹内，postgres 数据库文件保存在 postgres 文件夹内。</p><p>启动 Gitea ：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker compose up -d</span><br></pre></td></tr></table></figure><p>可以省略 <code>docker compose pull</code>，第一次启动会自动拉取镜像。</p><p>然后就可以访问 <code>http://&lt;ip&gt;:3000</code> 查看，第一次打开会进入安装界面。</p><p>数据库部分不需要修改，可以修改下面的部分</p><ul><li>服务器域名</li><li>基础URL</li></ul><p><img src="https://m.nep.me/blog/post/gitea.png" alt="Gitea Homepage"></p><h2 id="关闭注册"><a href="#关闭注册" class="headerlink" title="关闭注册"></a>关闭注册</h2><p>进入 docker-compose.yml 目录，编辑文件 <code>./gitea/gitea/conf/app.ini</code> 文件</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim ./gitea/gitea/conf/app.ini</span><br></pre></td></tr></table></figure><p>修改下面的内容</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">[service]</span></span><br><span class="line"><span class="attr">DISABLE_REGISTRATION</span> = <span class="literal">true</span>  <span class="comment"># 禁用注册</span></span><br><span class="line"><span class="comment">#...</span></span><br><span class="line"><span class="attr">SHOW_REGISTARTION_BUTTON</span> = <span class="literal">false</span> <span class="comment"># 隐藏注册按钮</span></span><br><span class="line"></span><br><span class="line"><span class="section">[openid]</span></span><br><span class="line"><span class="attr">ENABLE_OPENID_SIGNIN</span> = <span class="literal">false</span> <span class="comment"># 禁用openid登录</span></span><br><span class="line"><span class="attr">ENABLE_OPENID_SIGNUP</span> = <span class="literal">false</span> <span class="comment"># 禁用openid注册</span></span><br></pre></td></tr></table></figure><p>重启 Gitea:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">docker compose down</span><br><span class="line">docker compose up -d</span><br></pre></td></tr></table></figure><p>如果使用 Nginx 反代 Web 界面，可以将 docker-compose.yml 中的端口设置问仅限本地访问： </p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ports:</span><br><span class="line">  - &quot;127.0.0.1:3000:3000&quot;</span><br></pre></td></tr></table></figure><p>相比资源占用较大的 GitLab，Gitea 在功能上足够满足大多数个人或小团队的 Git 使用需求，且部署、维护成本极低，非常适合在本地或小型 VPS 上运行。</p><p>Gitea 的 Web 界面相当的简洁直观，功能上同样支持常见的 Git 功能和权限控制，支持使用 SSH Key 认证。如果你也有不便托管在 GitHub 上的私有项目，或者希望在局域网内构建自己的 Git 服务，Gitea 是一个非常值得尝试的解决方案。</p>]]></content>
    
    
    <summary type="html">&lt;h2 id=&quot;前言&quot;&gt;&lt;a href=&quot;#前言&quot; class=&quot;headerlink&quot; title=&quot;前言&quot;&gt;&lt;/a&gt;前言&lt;/h2&gt;&lt;p&gt;Git 用来同步一些文档、代码确实非常的方便，但是总会有一些文件不希望同步至 GitHub 或是其他的公共服务商，这时可以使用开源项目自建一个属于私人的 Git 服务器。  &lt;/p&gt;
&lt;p&gt;我是有一些文件在只需要局域网内同步就可以了，在这之前我是使用的 GitLab 社区版部署的私人 Git 服务器。  &lt;/p&gt;
&lt;p&gt;不得不说，GitLab 也是非常强大的，但相对的占用资源也比较高，需要较多的内存，而且也遇到过跨版本升级的问题。&lt;/p&gt;
&lt;p&gt;GitLab CE 资源占用：&lt;/p&gt;
&lt;figure class=&quot;highlight sh&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;b20641ebf857   gitlab    17.74%    5.869GiB / 15.62GiB   37.58%    425kB / 5.35MB &lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;

&lt;p&gt;最终，我决定迁移至轻量级的 Gitea，Gitea 完成迁移后的资源占用：&lt;/p&gt;
&lt;figure class=&quot;highlight sh&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;CONTAINER ID   NAME         CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O     PIDS &lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;57b52a98d527   gitea        0.14%     112.2MiB / 3.823GiB   2.87%     446kB / 345kB   0B / 113MB    14 &lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3abf2803c22c   gitea-db-1   0.00%     26.32MiB / 3.823GiB   0.67%     347kB / 445kB   0B / 1.02MB   9 &lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;

&lt;p&gt;使用 Docker Compose 部署起来也是非常简单的。&lt;/p&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="Docker" scheme="https://homulilly.com/tags/Docker/"/>
    
    <category term="Docker Compose" scheme="https://homulilly.com/tags/Docker-Compose/"/>
    
    <category term="Git" scheme="https://homulilly.com/tags/Git/"/>
    
    <category term="Gitea" scheme="https://homulilly.com/tags/Gitea/"/>
    
  </entry>
  
  <entry>
    <title>部署 n8n 时避免使用 n8n 作为子域名</title>
    <link href="https://homulilly.com/post/avoid-use-n8n-as-subdomain-for-selfhosted-n8n.html"/>
    <id>https://homulilly.com/post/avoid-use-n8n-as-subdomain-for-selfhosted-n8n.html</id>
    <published>2025-07-14T08:47:29.000Z</published>
    <updated>2025-07-15T01:29:56.755Z</updated>
    
    <content type="html"><![CDATA[<p>我自己部署了一个 n8n 的实例，使用了 n8n 作为自域名访问，结果在输入激活码（安装完成后的提示，以及邮件连接跳转）的时候，Chrome 提示危险网站，阻止了我的访问。  </p><p>搜索了一下，有很多类似的情况:  </p><ul><li><a href="https://community.n8n.io/t/n8n-subdomain-got-flagged-as-deceptive-website-by-google/31251">N8n subdomain got flagged as deceptive website by Google</a></li><li><a href="https://community.n8n.io/t/issues-accessing-self-hosted-n8n-n8n-b2bclientsystems-info-in-chrome-works-in-incognito-and-other-browsers/55142/1">Issues Accessing Self-Hosted n8n …</a></li></ul><p>推测是由于域名以及页面于官方相似，被算法判断为仿冒网站。  </p><p>虽然只会在部分 url 下触发警告，但是状态会影响到主域名以及所有的子域名，导致下载普通文件也可能会被拦截。</p><p>域名的当前状态可以在 <a href="https://transparencyreport.google.com/safe-browsing/search">安全浏览工具检测到的网站状态</a> 查看。</p><span id="more"></span><p>我使用的域名的检测结果：</p><blockquote><p>此网站的部分网页不安全<br>网站 xxxxx 包含有害内容，其中的某些网页会：</p></blockquote><blockquote><p>试图诱骗访问者透露个人信息或下载软件<br>不安全的内容可能只出现在某个网站的部分网页中。若想详细了解安全信息，请检查您要访问的具体目录或网页的网址。</p></blockquote><p>如果已经触发了</p><ul><li>建议更换子域名</li><li>在拦截页面点击反馈，说明情况，反馈此网页安全</li><li>在 <a href="https://search.google.com/search-console">Google web Search Console</a> 中添加域名，在安全问题中可以查看到 <strong>欺骗性网页</strong> 的安全问题，然后提交审核</li></ul><p>我在 Search Console 提交了审核后，第二天就通过了。</p><blockquote><p>Google 已收到并处理您的安全审核请求。Google 系统显示，xxxx.xxx 不再包含指向有害网站或下载内容的链接。系统正在从您的网站中取消向用户显示的警告这可能需要花费数小时的时间。</p></blockquote><p>与之类似的还有 Gitea，在部署了 n8n 后，我使用了 <code>gitea.domain.tld</code> 作为我新部署的 Gitea 实例的 WEB 页面的域名，结果在访问设置中的某个设置页面时，也触发了危险网站的提示，我更换了子域名访问就不会再触发，当然我不知道是否是由于当前已经被 Google 判断为不安全导致的。</p><p>所以除了 n8n，部署其他项目时最好也不要使用于官方项目相同的名称作为自域名吧。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;我自己部署了一个 n8n 的实例，使用了 n8n 作为自域名访问，结果在输入激活码（安装完成后的提示，以及邮件连接跳转）的时候，Chrome 提示危险网站，阻止了我的访问。  &lt;/p&gt;
&lt;p&gt;搜索了一下，有很多类似的情况:  &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://community.n8n.io/t/n8n-subdomain-got-flagged-as-deceptive-website-by-google/31251&quot;&gt;N8n subdomain got flagged as deceptive website by Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://community.n8n.io/t/issues-accessing-self-hosted-n8n-n8n-b2bclientsystems-info-in-chrome-works-in-incognito-and-other-browsers/55142/1&quot;&gt;Issues Accessing Self-Hosted n8n …&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;推测是由于域名以及页面于官方相似，被算法判断为仿冒网站。  &lt;/p&gt;
&lt;p&gt;虽然只会在部分 url 下触发警告，但是状态会影响到主域名以及所有的子域名，导致下载普通文件也可能会被拦截。&lt;/p&gt;
&lt;p&gt;域名的当前状态可以在 &lt;a href=&quot;https://transparencyreport.google.com/safe-browsing/search&quot;&gt;安全浏览工具检测到的网站状态&lt;/a&gt; 查看。&lt;/p&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="n8n" scheme="https://homulilly.com/tags/n8n/"/>
    
  </entry>
  
  <entry>
    <title>Windows 11 下 LG 电视开启 HDR 发绿解决方案</title>
    <link href="https://homulilly.com/post/fix-win11-tv-hdr-green-screen.html"/>
    <id>https://homulilly.com/post/fix-win11-tv-hdr-green-screen.html</id>
    <published>2025-07-11T18:35:24.000Z</published>
    <updated>2025-07-16T16:26:39.351Z</updated>
    
    <content type="html"><![CDATA[<p>这几天一直在折腾显卡的问题，只用 DP 接了普通的显示器使用，显卡的问题终于有些眉目了，于是重新接回我的 LG C2 电视，打开 HDR </p><p>嗯？ 屏幕你怎么绿了，而且以前切换后右上角是显示 <strong>HDR</strong> ，现在是 <strong>Dolby Vision</strong> ，难道显卡又出新毛病了？ </p><p>尝试了重启、换线都没有效果，只要一开 HDR 就是绿色的屏幕。 </p><p>我都准备又要使用 DDU 重装驱动了，还好先搜了一下，发现原来是 Windows 最近的更新导致的，解决也很简单</p><ul><li>桌面上点击右键，选择 <strong>显示设置</strong></li><li>选择 TV 对应的屏幕，进入 HDR 的菜单</li><li>点击 HDR 右侧的箭头展开菜单</li><li>关闭 <strong>使用 Dolby Vision 模式</strong></li></ul><p><img src="https://m.nep.me/blog/post/windows-11-tv-hdr-dolby.png" alt="fix windows 11 tv hdr green screen"> </p><p>但是如果重启电脑后，重新从非 HDR 显示器切换过来，又会恢复绿色屏幕，可以使用以下三种方法中的一种</p><span id="more"></span><ul><li>在设置中关闭 Dolby Vision 后，前往 Windows 更新，卸载 KB5063060 </li><li>在 Nvidia 控制面板中将色彩格式改为 YCbCr420 ，这将会导致图像质量下降</li><li>使用 CRU 禁用 Dolby 扩展，<a href="https://www.reddit.com/r/OLED_Gaming/comments/1lgfmml/comment/mzoexf0/">Permanently Disable Dolby Vision via CRU</a></li></ul><p>参考：<a href="https://www.reddit.com/r/OLED_Gaming/comments/1kztazu/lg_c2_showing_dolby_vision_with_purplegreen_tint/">LG C2 Showing Dolby Vision With Purple&#x2F;Green Tint After Win11 Update – CRU Didn’t Help</a></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;这几天一直在折腾显卡的问题，只用 DP 接了普通的显示器使用，显卡的问题终于有些眉目了，于是重新接回我的 LG C2 电视，打开 HDR &lt;/p&gt;
&lt;p&gt;嗯？ 屏幕你怎么绿了，而且以前切换后右上角是显示 &lt;strong&gt;HDR&lt;/strong&gt; ，现在是 &lt;strong&gt;Dolby Vision&lt;/strong&gt; ，难道显卡又出新毛病了？ &lt;/p&gt;
&lt;p&gt;尝试了重启、换线都没有效果，只要一开 HDR 就是绿色的屏幕。 &lt;/p&gt;
&lt;p&gt;我都准备又要使用 DDU 重装驱动了，还好先搜了一下，发现原来是 Windows 最近的更新导致的，解决也很简单&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;桌面上点击右键，选择 &lt;strong&gt;显示设置&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择 TV 对应的屏幕，进入 HDR 的菜单&lt;/li&gt;
&lt;li&gt;点击 HDR 右侧的箭头展开菜单&lt;/li&gt;
&lt;li&gt;关闭 &lt;strong&gt;使用 Dolby Vision 模式&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://m.nep.me/blog/post/windows-11-tv-hdr-dolby.png&quot; alt=&quot;fix windows 11 tv hdr green screen&quot;&gt; &lt;/p&gt;
&lt;p&gt;但是如果重启电脑后，重新从非 HDR 显示器切换过来，又会恢复绿色屏幕，可以使用以下三种方法中的一种&lt;/p&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="Windows 11" scheme="https://homulilly.com/tags/Windows-11/"/>
    
    <category term="HDR" scheme="https://homulilly.com/tags/HDR/"/>
    
    <category term="Dolby Vision" scheme="https://homulilly.com/tags/Dolby-Vision/"/>
    
  </entry>
  
  <entry>
    <title>解决 n8n 显示 Connection lost 的错误</title>
    <link href="https://homulilly.com/post/fix-n8n-show-connection-lost-problem.html"/>
    <id>https://homulilly.com/post/fix-n8n-show-connection-lost-problem.html</id>
    <published>2025-07-11T11:02:55.000Z</published>
    <updated>2025-07-11T19:36:23.050Z</updated>
    
    <content type="html"><![CDATA[<p>我刚装好的 n8n 实例，版本 1.101.1 ，后台访问没有问题，但是创建 workflow 的时候右上角提示 Connection lost</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">You have a connection issue or the server is down.</span><br><span class="line">n8n should reconnect automatically once the issue is resolved.</span><br></pre></td></tr></table></figure><p><img src="https://m.nep.me/blog/post/n8n-show-error.png" alt="n8n show connection lost">  </p><p>先说一下我的环境，我是使用 docker 安装的 n8n，然后使用了 Nginx 进行的反代，不是使用官方提供的带 Traefik 的 docker compose 文件。 </p><p>搜索了一下，发现是 n8n 后端的检测方式的问题，可以修改为使用 websocket 检测的方式：</p><span id="more"></span><p>在 docker-compose.yaml 中加入 <code>N8N_PUSH_BACKEND=websocket</code></p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">n8n:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">docker.n8n.io/n8nio/n8n</span></span><br><span class="line">    <span class="attr">container_name:</span> <span class="string">n8n</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;127.0.0.1:5678:5678&quot;</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="comment"># ...</span></span><br><span class="line">      <span class="comment"># 添加下面这一行</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">N8N_PUSH_BACKEND=websocket</span></span><br><span class="line">      <span class="comment"># ...</span></span><br></pre></td></tr></table></figure><p>然后在 Nginx 中的反代部分启用 websocket 的支持</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">location / &#123;</span><br><span class="line">    proxy_pass http://127.0.0.1:5678;</span><br><span class="line">    proxy_set_header Host $host;</span><br><span class="line">    proxy_set_header X-Real-IP $remote_addr;</span><br><span class="line">    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span><br><span class="line">    proxy_set_header X-Forwarded-Proto https;</span><br><span class="line"></span><br><span class="line">    # 添加下面三行</span><br><span class="line">    proxy_http_version 1.1; </span><br><span class="line">    proxy_set_header Upgrade $http_upgrade;</span><br><span class="line">    proxy_set_header Connection &quot;upgrade&quot;;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>重启 n8n </p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">docker compose down </span><br><span class="line">docker compose up -d</span><br></pre></td></tr></table></figure><p>以及重载 nginx</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">nginx -t</span><br><span class="line">nginx -s reload</span><br></pre></td></tr></table></figure><p>然后就可以了 </p><p><img src="https://m.nep.me/blog/post/n8n-error-fixed.png" alt="n8n error fixed">  </p>]]></content>
    
    
    <summary type="html">&lt;p&gt;我刚装好的 n8n 实例，版本 1.101.1 ，后台访问没有问题，但是创建 workflow 的时候右上角提示 Connection lost&lt;/p&gt;
&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;You have a connection issue or the server is down.&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;n8n should reconnect automatically once the issue is resolved.&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;

&lt;p&gt;&lt;img src=&quot;https://m.nep.me/blog/post/n8n-show-error.png&quot; alt=&quot;n8n show connection lost&quot;&gt;  &lt;/p&gt;
&lt;p&gt;先说一下我的环境，我是使用 docker 安装的 n8n，然后使用了 Nginx 进行的反代，不是使用官方提供的带 Traefik 的 docker compose 文件。 &lt;/p&gt;
&lt;p&gt;搜索了一下，发现是 n8n 后端的检测方式的问题，可以修改为使用 websocket 检测的方式：&lt;/p&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="n8n" scheme="https://homulilly.com/tags/n8n/"/>
    
  </entry>
  
  <entry>
    <title>使用 Docker 部署 Umami 网站访问统计系统</title>
    <link href="https://homulilly.com/post/use-docker-deploy-umami.html"/>
    <id>https://homulilly.com/post/use-docker-deploy-umami.html</id>
    <published>2025-07-10T03:16:35.000Z</published>
    <updated>2025-08-07T14:36:15.934Z</updated>
    
    <content type="html"><![CDATA[<h2 id="关于-Umami"><a href="#关于-Umami" class="headerlink" title="关于 Umami"></a>关于 Umami</h2><p><a href="https://umami.is/">Umami</a> 是一个简单、快速、注重隐私且开源网站访问统计系统，可以作为 Google Analytics 的替代品，Umami 不使用 Cookie，不跟踪用户。   </p><p>Umami 支持自己部署，功能不受限制，如果自己没有服务器，也可以直接在官网注册使用。  </p><p>Umami 的界面非常简洁、直观，功能一目了然，这也是我使用 Umami 的原因，Google Analytics 太强大，界面也很复杂，有时找个功能要找半天。  </p><p>Umami 支持下面的功能</p><ul><li>统计浏览量、访问次数、访客数量、跳出率、平均访问时长</li><li>按时间段生成柱状图</li><li>查看每个 URL 对应的浏览量</li><li>查看来源域名</li><li>查看访客的浏览器、操作系统、设备类型、分辨率、地理位置</li><li>支持生成各种报告</li></ul><p>在开始使用之前，可以查看官方提供的 <a href="https://eu.umami.is/share/LGazGOecbDtaIwDr/umami.is">DEMO</a> 体验后台与统计效果<br><img src="https://m.nep.me/blog/post/umami-demo-preview.png" alt="Umami Demo Preview"></p><p>不过 Umami 不会区分 localhost 的域名，网页载入了统计代码的话就会进行统计。</p><h2 id="使用-Docker-Compose-部署"><a href="#使用-Docker-Compose-部署" class="headerlink" title="使用 Docker Compose 部署"></a>使用 Docker Compose 部署</h2><p>使用 <code>docker compose</code> 可以直接一键部署，首先创建 <code>docker-compose.yml</code>，填入下面的内容</p><span id="more"></span><div class="note info"><p>如果没有安装 docker compose， 可以查看 <a href="https://u.sb/debian-install-docker/">Debian 12 &#x2F; Ubuntu 24.04 安装 Docker 以及 Docker Compose 教程</a> </p></div><p>使用的是官方提供的自带 postgresql 数据库版本的镜像</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">umami:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">ghcr.io/umami-software/umami:postgresql-latest</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;3000:3000&quot;</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="comment"># 使用自己的密码替换 &lt;db_passwd&gt; </span></span><br><span class="line">      <span class="attr">DATABASE_URL:</span> <span class="string">postgresql://umami:&lt;db_passwd&gt;@db:5432/umami</span></span><br><span class="line">      <span class="attr">DATABASE_TYPE:</span> <span class="string">postgresql</span></span><br><span class="line">      <span class="comment"># 生成一段随机字符串替换 &lt;app_secret&gt;</span></span><br><span class="line">      <span class="comment"># openssl rand -base64 32</span></span><br><span class="line">      <span class="attr">APP_SECRET:</span> <span class="string">&lt;app_secret&gt;</span></span><br><span class="line">    <span class="attr">depends_on:</span></span><br><span class="line">      <span class="attr">db:</span></span><br><span class="line">        <span class="attr">condition:</span> <span class="string">service_healthy</span></span><br><span class="line">    <span class="attr">init:</span> <span class="literal">true</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">healthcheck:</span></span><br><span class="line">      <span class="attr">test:</span> [<span class="string">&quot;CMD-SHELL&quot;</span>, <span class="string">&quot;curl http://localhost:3000/api/heartbeat&quot;</span>]</span><br><span class="line">      <span class="attr">interval:</span> <span class="string">5s</span></span><br><span class="line">      <span class="attr">timeout:</span> <span class="string">5s</span></span><br><span class="line">      <span class="attr">retries:</span> <span class="number">5</span></span><br><span class="line">  <span class="attr">db:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">postgres:15-alpine</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="attr">POSTGRES_DB:</span> <span class="string">umami</span></span><br><span class="line">      <span class="attr">POSTGRES_USER:</span> <span class="string">umami</span></span><br><span class="line">      <span class="comment"># 与前面生成的 &lt;db_passwd&gt; 一致</span></span><br><span class="line">      <span class="attr">POSTGRES_PASSWORD:</span> <span class="string">&lt;db_passwd&gt;</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="comment"># 数据文件保存在 docker-compose.yaml 所在目录下的 data 文件夹</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./data:/var/lib/postgresql/data</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">healthcheck:</span></span><br><span class="line">      <span class="attr">test:</span> [<span class="string">&quot;CMD-SHELL&quot;</span>, <span class="string">&quot;pg_isready -U $$&#123;POSTGRES_USER&#125; -d $$&#123;POSTGRES_DB&#125;&quot;</span>]</span><br><span class="line">      <span class="attr">interval:</span> <span class="string">5s</span></span><br><span class="line">      <span class="attr">timeout:</span> <span class="string">5s</span></span><br><span class="line">      <span class="attr">retries:</span> <span class="number">5</span></span><br></pre></td></tr></table></figure><p>然后运行下面的命令即可自动拉取镜像启动</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker compose up -d</span><br></pre></td></tr></table></figure><p>启动后，访问 <code>http://&lt;你的服务器 IP&gt;:3000</code> 进入后台，默认用户名是 <code>admin</code> 密码 <code>umami</code> ，可以在右上角 切换界面语言。</p><div class="note danger"><p>登入后 请第一时间前往 设置 &gt; 用户 修改用户名与密码</p></div><h2 id="设置-Nginx-反代"><a href="#设置-Nginx-反代" class="headerlink" title="设置 Nginx 反代"></a>设置 Nginx 反代</h2><p>Nginx 配置文件中的反代部分如下</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">location / &#123;</span><br><span class="line">    proxy_pass http://127.0.0.1:3000;</span><br><span class="line">    proxy_set_header Host $host;</span><br><span class="line">    proxy_set_header X-Real-IP $remote_addr;</span><br><span class="line">    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span><br><span class="line">    proxy_set_header X-Forwarded-Proto $scheme;</span><br><span class="line"></span><br><span class="line">    proxy_http_version 1.1;</span><br><span class="line">    proxy_read_timeout 60s;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>然后为了安全，我们可以将 docker-compose.yaml 文件中的端口设置仅限本地 Nginx 访问，将下面部分</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ports:</span><br><span class="line">  - &quot;3000:3000&quot;</span><br></pre></td></tr></table></figure><p>修改为</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ports:</span><br><span class="line">  - &quot;127.0.0.1:3000:3000&quot;</span><br></pre></td></tr></table></figure><h2 id="添加站点"><a href="#添加站点" class="headerlink" title="添加站点"></a>添加站点</h2><p>点击 <strong>设置</strong> &gt; <strong>添加网站</strong> 进行添加：</p><ul><li><strong>名字</strong>：显示在 Umami 后台，用于辨识</li><li><strong>域名</strong>：填入实际访问域名，例如 <code>example.com</code>，不需要加 <code>https://</code></li></ul><p>然后点击对应网站的 <strong>编辑</strong>，在 <strong>跟踪代码</strong> 部分即可查看需要使用的代码，将对应的代码附加到需要追踪的网页中即可。  </p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&lt;script defer src=<span class="string">&quot;https://example.com/script.js&quot;</span> data-website-id=<span class="string">&quot;xxxx-xxxx-xxxx-xxxx&quot;</span>&gt;&lt;/script&gt;</span><br></pre></td></tr></table></figure><p>我使用的 Hexo Theme NEXT 主题，可以直接在主题设置中填写 <strong>域名</strong> 与 <code>data-website-id</code> 让追踪生效。</p><h2 id="资源占用"><a href="#资源占用" class="headerlink" title="资源占用"></a>资源占用</h2><p>使用 docker stats 查看资源占用情况如下</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">CONTAINER ID   NAME               CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS </span><br><span class="line">df307a49da94   umami-umami-1      0.01%     238.8MiB / 1.933GiB   12.06%    16.8MB / 655kB    48MB / 73.8MB     48 </span><br><span class="line">e7c0ca63f761   umami-db-1         0.02%     38.71MiB / 1.933GiB   1.96%     189kB / 162kB     8.56MB / 1.26MB   10 </span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">&lt;h2 id=&quot;关于-Umami&quot;&gt;&lt;a href=&quot;#关于-Umami&quot; class=&quot;headerlink&quot; title=&quot;关于 Umami&quot;&gt;&lt;/a&gt;关于 Umami&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://umami.is/&quot;&gt;Umami&lt;/a&gt; 是一个简单、快速、注重隐私且开源网站访问统计系统，可以作为 Google Analytics 的替代品，Umami 不使用 Cookie，不跟踪用户。   &lt;/p&gt;
&lt;p&gt;Umami 支持自己部署，功能不受限制，如果自己没有服务器，也可以直接在官网注册使用。  &lt;/p&gt;
&lt;p&gt;Umami 的界面非常简洁、直观，功能一目了然，这也是我使用 Umami 的原因，Google Analytics 太强大，界面也很复杂，有时找个功能要找半天。  &lt;/p&gt;
&lt;p&gt;Umami 支持下面的功能&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;统计浏览量、访问次数、访客数量、跳出率、平均访问时长&lt;/li&gt;
&lt;li&gt;按时间段生成柱状图&lt;/li&gt;
&lt;li&gt;查看每个 URL 对应的浏览量&lt;/li&gt;
&lt;li&gt;查看来源域名&lt;/li&gt;
&lt;li&gt;查看访客的浏览器、操作系统、设备类型、分辨率、地理位置&lt;/li&gt;
&lt;li&gt;支持生成各种报告&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在开始使用之前，可以查看官方提供的 &lt;a href=&quot;https://eu.umami.is/share/LGazGOecbDtaIwDr/umami.is&quot;&gt;DEMO&lt;/a&gt; 体验后台与统计效果&lt;br&gt;&lt;img src=&quot;https://m.nep.me/blog/post/umami-demo-preview.png&quot; alt=&quot;Umami Demo Preview&quot;&gt;&lt;/p&gt;
&lt;p&gt;不过 Umami 不会区分 localhost 的域名，网页载入了统计代码的话就会进行统计。&lt;/p&gt;
&lt;h2 id=&quot;使用-Docker-Compose-部署&quot;&gt;&lt;a href=&quot;#使用-Docker-Compose-部署&quot; class=&quot;headerlink&quot; title=&quot;使用 Docker Compose 部署&quot;&gt;&lt;/a&gt;使用 Docker Compose 部署&lt;/h2&gt;&lt;p&gt;使用 &lt;code&gt;docker compose&lt;/code&gt; 可以直接一键部署，首先创建 &lt;code&gt;docker-compose.yml&lt;/code&gt;，填入下面的内容&lt;/p&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="Docker" scheme="https://homulilly.com/tags/Docker/"/>
    
    <category term="Docker Compose" scheme="https://homulilly.com/tags/Docker-Compose/"/>
    
    <category term="Selfhost" scheme="https://homulilly.com/tags/Selfhost/"/>
    
    <category term="Umami" scheme="https://homulilly.com/tags/Umami/"/>
    
  </entry>
  
  <entry>
    <title>使用 ChatGPT 生成像素风格照片咒语</title>
    <link href="https://homulilly.com/post/use-chatgpt-gen-everskies-pixel-art.html"/>
    <id>https://homulilly.com/post/use-chatgpt-gen-everskies-pixel-art.html</id>
    <published>2025-07-08T05:31:44.000Z</published>
    <updated>2025-07-10T03:05:58.169Z</updated>
    
    <content type="html"><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>凑个热度，最近发现 Twitter 上一些 Coser 分享照片时上面附带一个非常相似的像素风格小人，看起来非常不错。  </p><p>本来以为是某个 APP 的功能，搜索了一下发现是 7 月在韩国开始的潮流，只需要使用 ChatGPT 就可以生成，免费账户的 ChatGPT 也可以使用，不过生成两张图片后就提示需要等待一天才可以继续上传文件。</p><h2 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h2><p>访问 ChatGPT ，对话时添加需要处理的图片，对话框输入下面 Prompt 就可以了。</p><p>日文版：</p><blockquote><p>Everskiesスタイルの全身ピクセルアートイラストを作成してください。人物の体型、顔の表情、服装とヘアスタイルの表現方法を模倣してください。添付画像の人物の髪型、服装、アクセサリーを参考にして、全身のイラストを描いてください、背景は透過でお願いします。ピクセルアート風のドット絵スタイルで、ゲームキャラクターのような可愛らしい仕上がりにしてください。</p></blockquote><p>中文翻译：</p><blockquote><p>请制作一幅 Everskies 风格的全身像像素画插图。请模仿人物的体型、面部表情、服装以及发型的表现方式。参考所附图片中人物的发型、服装和配饰，绘制完整的人物插图，将背景设为透明。请使用像素风格的点阵图，呈现出像游戏角色一样可爱的效果。</p></blockquote><h2 id="效果"><a href="#效果" class="headerlink" title="效果"></a>效果</h2><span id="more"></span><p><img src="https://m.nep.me/blog/post/chatgpt-pixel-art.png"></p><p>Pic via <a href="https://x.com/UKYEJFT/status/1942479986486858138">Twitter</a></p><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><ul><li><a href="https://www.mfro.net/aiebisu/1352/">韓国で話題！ChatGPT×ドット絵の作り方【複数プロンプト付き】</a></li></ul>]]></content>
    
    
    <summary type="html">&lt;h2 id=&quot;前言&quot;&gt;&lt;a href=&quot;#前言&quot; class=&quot;headerlink&quot; title=&quot;前言&quot;&gt;&lt;/a&gt;前言&lt;/h2&gt;&lt;p&gt;凑个热度，最近发现 Twitter 上一些 Coser 分享照片时上面附带一个非常相似的像素风格小人，看起来非常不错。  &lt;/p&gt;
&lt;p&gt;本来以为是某个 APP 的功能，搜索了一下发现是 7 月在韩国开始的潮流，只需要使用 ChatGPT 就可以生成，免费账户的 ChatGPT 也可以使用，不过生成两张图片后就提示需要等待一天才可以继续上传文件。&lt;/p&gt;
&lt;h2 id=&quot;使用方法&quot;&gt;&lt;a href=&quot;#使用方法&quot; class=&quot;headerlink&quot; title=&quot;使用方法&quot;&gt;&lt;/a&gt;使用方法&lt;/h2&gt;&lt;p&gt;访问 ChatGPT ，对话时添加需要处理的图片，对话框输入下面 Prompt 就可以了。&lt;/p&gt;
&lt;p&gt;日文版：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Everskiesスタイルの全身ピクセルアートイラストを作成してください。人物の体型、顔の表情、服装とヘアスタイルの表現方法を模倣してください。添付画像の人物の髪型、服装、アクセサリーを参考にして、全身のイラストを描いてください、背景は透過でお願いします。ピクセルアート風のドット絵スタイルで、ゲームキャラクターのような可愛らしい仕上がりにしてください。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;中文翻译：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;请制作一幅 Everskies 风格的全身像像素画插图。请模仿人物的体型、面部表情、服装以及发型的表现方式。参考所附图片中人物的发型、服装和配饰，绘制完整的人物插图，将背景设为透明。请使用像素风格的点阵图，呈现出像游戏角色一样可爱的效果。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;效果&quot;&gt;&lt;a href=&quot;#效果&quot; class=&quot;headerlink&quot; title=&quot;效果&quot;&gt;&lt;/a&gt;效果&lt;/h2&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="ChatGPT" scheme="https://homulilly.com/tags/ChatGPT/"/>
    
    <category term="Prompt" scheme="https://homulilly.com/tags/Prompt/"/>
    
    <category term="Pixel Art" scheme="https://homulilly.com/tags/Pixel-Art/"/>
    
    <category term="everskies" scheme="https://homulilly.com/tags/everskies/"/>
    
  </entry>
  
  <entry>
    <title>使用 File Browser 替代 AList (挂载本地存储)</title>
    <link href="https://homulilly.com/post/use-file-browser.html"/>
    <id>https://homulilly.com/post/use-file-browser.html</id>
    <published>2025-06-13T05:27:29.000Z</published>
    <updated>2025-07-08T05:30:04.310Z</updated>
    
    <content type="html"><![CDATA[<p>最近 AList 被收购的话题热度很高，对于事件本身，我就不做评论了。不过对于收购方，基于他的历史情况，确实没有好感。  </p><p>与其使用历史版本，还是更换其他的项目比较好，最开始使用的 MinIO ，也是由于旧版本有漏洞才更换的 AList 。 </p><p>我的需求比较简单，<strong>只是挂载本地的目录</strong>，有个 Web 面板便于上传、管理一下图片等资源，并不需要挂载第三方网盘。  </p><p>搜索一下，发现 <a href="https://github.com/filebrowser/filebrowser">File Browser</a> 这个项目比较符合我的需求，也支持 Docker 一键部署。 </p><p>不过这个项目也在寻找维护者：</p><blockquote><p>Warning!<br>This project is currently not under active maintenance and is looking for maintainers. </p></blockquote><h2 id="File-Browser-介绍"><a href="#File-Browser-介绍" class="headerlink" title="File Browser 介绍"></a>File Browser 介绍</h2><ul><li>支持 Docker 部署</li><li>支持创建文件与文件夹</li><li>支持显示文件列表</li><li>支持用户管理</li><li>支持预览图片</li><li>支持编辑文本文件 </li><li>支持创建分享链接<ul><li>支持设置分享期限</li><li>支持设置密码</li></ul></li><li>使用 Go 语言编写，运行内存和 CPU 占用低</li></ul><span id="more"></span><h2 id="使用-docker-compose-部署"><a href="#使用-docker-compose-部署" class="headerlink" title="使用 docker-compose 部署"></a>使用 docker-compose 部署</h2><p>如果安装好了 Docker 与 docker-compose ，部署起来上非常简单的。 </p><p>直接创建 docker-compose.yml 文件</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">filebrowser:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">filebrowser/filebrowser:s6</span></span><br><span class="line">    <span class="attr">container_name:</span> <span class="string">filebrowser</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/path/to/root:/srv</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/path/to/filebrowser.db:/database/filebrowser.db</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/path/to/settings.json:/config/settings.json</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">PUID=$(id</span> <span class="string">-u)</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">PGID=$(id</span> <span class="string">-g)</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="number">8080</span><span class="string">:80</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br></pre></td></tr></table></figure><p>启动前，如果是全新的环境，需要创建空白的 <code>/path/to/filebrowser.db</code> 文件，然后创建 <code>/path/to/settings.json</code> 填入下面的内容。  </p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;port&quot;</span><span class="punctuation">:</span> <span class="number">80</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;baseURL&quot;</span><span class="punctuation">:</span> <span class="string">&quot;&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;address&quot;</span><span class="punctuation">:</span> <span class="string">&quot;&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;log&quot;</span><span class="punctuation">:</span> <span class="string">&quot;stdout&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;database&quot;</span><span class="punctuation">:</span> <span class="string">&quot;/database/filebrowser.db&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;root&quot;</span><span class="punctuation">:</span> <span class="string">&quot;/srv&quot;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>如果希望访问的路径不是 <code>/</code> 可以在 <code>baseURL</code> 中指定。</p><p>然后修改 docker-compose.yml 中 environment 的内容，在终端执行 <code>id -u</code> 获取，如需指定用户比如 <code>www-data</code> 则是 <code>id -u www-data</code> </p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">environment:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">PUID=$(id</span> <span class="string">-u)</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">PGID=$(id</span> <span class="string">-g)</span></span><br></pre></td></tr></table></figure><p>该用户需要拥有 <code>/path/to/root</code> 的访问权限。  </p><p>执行 <code>docker-compose up -d</code> 启动服务。</p><p>访问 <code>https://&lt;ip or domain&gt;:8080</code> 登录，默认用户名密码都是 <code>admin</code> ，立刻在设置中修改，用户名也是可以修改的。  </p><p>设置 Nginx 反代，我直接使用了之前 AList 的内容，不需要修改：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">location /filebrowser/ &#123;</span><br><span class="line">proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span><br><span class="line">proxy_set_header X-Forwarded-Proto $scheme;</span><br><span class="line">proxy_set_header Host $http_host;</span><br><span class="line">proxy_set_header X-Real-IP $remote_addr;</span><br><span class="line">proxy_set_header Range $http_range;     </span><br><span class="line"></span><br><span class="line">client_max_body_size 2048m;</span><br><span class="line">proxy_buffering off;</span><br><span class="line">        proxy_pass http://127.0.0.1:8080;</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><p>确认没有问题后，可以将 docker 容器的监听端口设置为 <code>127.0.0.1:8080</code></p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">ports:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="number">127.0</span><span class="number">.0</span><span class="number">.1</span><span class="string">:8080:80</span></span><br></pre></td></tr></table></figure><p>执行 <code>docker-compose down &amp;&amp; docker-compose up -d</code> 重启容器</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;最近 AList 被收购的话题热度很高，对于事件本身，我就不做评论了。不过对于收购方，基于他的历史情况，确实没有好感。  &lt;/p&gt;
&lt;p&gt;与其使用历史版本，还是更换其他的项目比较好，最开始使用的 MinIO ，也是由于旧版本有漏洞才更换的 AList 。 &lt;/p&gt;
&lt;p&gt;我的需求比较简单，&lt;strong&gt;只是挂载本地的目录&lt;/strong&gt;，有个 Web 面板便于上传、管理一下图片等资源，并不需要挂载第三方网盘。  &lt;/p&gt;
&lt;p&gt;搜索一下，发现 &lt;a href=&quot;https://github.com/filebrowser/filebrowser&quot;&gt;File Browser&lt;/a&gt; 这个项目比较符合我的需求，也支持 Docker 一键部署。 &lt;/p&gt;
&lt;p&gt;不过这个项目也在寻找维护者：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Warning!&lt;br&gt;This project is currently not under active maintenance and is looking for maintainers. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;File-Browser-介绍&quot;&gt;&lt;a href=&quot;#File-Browser-介绍&quot; class=&quot;headerlink&quot; title=&quot;File Browser 介绍&quot;&gt;&lt;/a&gt;File Browser 介绍&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;支持 Docker 部署&lt;/li&gt;
&lt;li&gt;支持创建文件与文件夹&lt;/li&gt;
&lt;li&gt;支持显示文件列表&lt;/li&gt;
&lt;li&gt;支持用户管理&lt;/li&gt;
&lt;li&gt;支持预览图片&lt;/li&gt;
&lt;li&gt;支持编辑文本文件 &lt;/li&gt;
&lt;li&gt;支持创建分享链接&lt;ul&gt;
&lt;li&gt;支持设置分享期限&lt;/li&gt;
&lt;li&gt;支持设置密码&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;使用 Go 语言编写，运行内存和 CPU 占用低&lt;/li&gt;
&lt;/ul&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="File Browser" scheme="https://homulilly.com/tags/File-Browser/"/>
    
  </entry>
  
  <entry>
    <title>解决 macOS 终端连接 SSH 闲置几分钟后卡住的问题</title>
    <link href="https://homulilly.com/post/fix-macos-ssh-connect-hangs.html"/>
    <id>https://homulilly.com/post/fix-macos-ssh-connect-hangs.html</id>
    <published>2025-06-12T08:57:21.000Z</published>
    <updated>2025-06-12T09:05:55.490Z</updated>
    
    <content type="html"><![CDATA[<p>我用 macOS 默认终端使用 SSH 连接服务器后总是闲置几分钟后就会卡住，无法操作，需要关闭终端重新打开。由于 macOS 的 SIP 对系统文件的保护，在 <code>/etc/ssh/ssh_config</code> 中加入心跳消息配置没有生效。 </p><p>可以在 <code>～/.ssh/config</code> 文件开头加入下面的内容：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">Host *</span><br><span class="line">    ServerAliveInterval 30</span><br><span class="line">    ServerAliveCountMax 10</span><br></pre></td></tr></table></figure><p>表示每 30s 向服务器发送一次心跳连接，10 次失败后断开。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;我用 macOS 默认终端使用 SSH 连接服务器后总是闲置几分钟后就会卡住，无法操作，需要关闭终端重新打开。由于 macOS 的 SIP 对系统文件的保护，在 &lt;code&gt;/etc/ssh/ssh_config&lt;/code&gt; 中加入心跳消息配置没有生效。 &lt;/p&gt;
&lt;p&gt;</summary>
      
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="macOS" scheme="https://homulilly.com/tags/macOS/"/>
    
  </entry>
  
  <entry>
    <title>手游观察：星落（日服）</title>
    <link href="https://homulilly.com/post/game-elpis-jp.html"/>
    <id>https://homulilly.com/post/game-elpis-jp.html</id>
    <published>2025-04-10T04:17:28.000Z</published>
    <updated>2025-06-09T09:29:22.614Z</updated>
    
    <content type="html"><![CDATA[<p>这游戏国服 2024 年 7 月 23 日开服，日服是 2025 年 3 月 27 开服。</p><p>选择日服是因为看到刚开服，而且听说初期之后可以养老，每天上线 10 分钟即可，而且还开了联动。  </p><p><del>还能学习日语</del>，结果剧情直接跳过了。  </p><p>评价：一个月了，确实有些无聊，每天登录一次就行，日常 10 来分钟，久了确实没啥意思。</p><span id="more"></span><h2 id="卡池机制"><a href="#卡池机制" class="headerlink" title="卡池机制"></a>卡池机制</h2><p>米家卡池，五星 2% ，60 抽没有五星之后每抽 +5% ，70 抽保底， UP 概率 50% ，第二次五星不歪。  </p><p>抽卡票分限定和普池，300 钻一抽。  </p><p>商店卖的是源晶，可以买皮肤（15源晶）或是兑换钻石，一个兑换 120 钻，需要兑换是时可以去商店兑换支援礼包，赠送一些素材。</p><p>最高档 11000 JPY 110 源晶，13200 钻，首充双倍。</p><h2 id="角色养成"><a href="#角色养成" class="headerlink" title="角色养成"></a>角色养成</h2><p>满突需要本体 + 额外五只，不过机制一般在 3 突，有通用突破素材。  </p><p>然后就是刷圣遗物。  </p><p>队伍一次可以上八个角色。</p><h2 id="体验"><a href="#体验" class="headerlink" title="体验"></a>体验</h2><p>目前看来初期给的钻&#x2F;抽很多，联动两只开图鉴是没有问题的。</p><h2 id="课金内容"><a href="#课金内容" class="headerlink" title="课金内容"></a>课金内容</h2><p>月卡： 6 源晶（720 钻） + 每日 150 钻，2 管小体力药<br>通行证： <strong>1500</strong> JPY 一个皮肤 + 1500 钻 + 5 抽 + 一些素材，有普通通行证和活动通行证<br>黑市契约： <strong>150</strong> JPY 1.5 抽 + 1&#x2F;6 五星通用突破材料，每周更新，六周可以换一次五星突破，看起来限定也能用<br>五星突破材料： <strong>1500</strong> JPY 可以买一次。</p><p>商店礼包大概优惠些的 1000 JPY 10 抽，常规 1500 JPY 10 抽。</p><h2 id="常用链接"><a href="#常用链接" class="headerlink" title="常用链接"></a>常用链接</h2><h3 id="巴哈"><a href="#巴哈" class="headerlink" title="巴哈"></a>巴哈</h3><p><a href="https://forum.gamer.com.tw/C.php?bsn=79475&snA=49&tnum=4">日服兌換碼 </a><br><a href="https://forum.gamer.com.tw/C.php?bsn=79475&snA=46&tnum=1">日服開局抽取建議 (更新 - 截至半周年天梯圖 ver.2)</a></p><h3 id="TAPTAP-国服"><a href="#TAPTAP-国服" class="headerlink" title="TAPTAP(国服)"></a>TAPTAP(国服)</h3><p><a href="https://www.taptap.cn/app/382112/strategy?os=android">星落 TAPTAP</a><br><a href="https://www.taptap.cn/moment/636627111737558060">星落强度榜，配队思路</a><br><a href="https://www.taptap.cn/moment/605118383398062429">前期养成角色强度榜，角色养成先后规划，配队</a></p><h3 id="日语攻略网站"><a href="#日语攻略网站" class="headerlink" title="日语攻略网站"></a>日语攻略网站</h3><p><a href="https://gamerch.com/elpis/">Gamerch - 星落：深淵のエルピス攻略Wiki</a></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;这游戏国服 2024 年 7 月 23 日开服，日服是 2025 年 3 月 27 开服。&lt;/p&gt;
&lt;p&gt;选择日服是因为看到刚开服，而且听说初期之后可以养老，每天上线 10 分钟即可，而且还开了联动。  &lt;/p&gt;
&lt;p&gt;&lt;del&gt;还能学习日语&lt;/del&gt;，结果剧情直接跳过了。  &lt;/p&gt;
&lt;p&gt;评价：一个月了，确实有些无聊，每天登录一次就行，日常 10 来分钟，久了确实没啥意思。&lt;/p&gt;</summary>
    
    
    
    <category term="Games" scheme="https://homulilly.com/categories/Games/"/>
    
    
    <category term="Mobile Game" scheme="https://homulilly.com/tags/Mobile-Game/"/>
    
    <category term="星落" scheme="https://homulilly.com/tags/%E6%98%9F%E8%90%BD/"/>
    
  </entry>
  
  <entry>
    <title>手游观察：棕色尘埃2</title>
    <link href="https://homulilly.com/post/game-brown-dust2.html"/>
    <id>https://homulilly.com/post/game-brown-dust2.html</id>
    <published>2025-04-04T05:02:03.000Z</published>
    <updated>2025-05-09T11:01:22.795Z</updated>
    
    <content type="html"><![CDATA[<p>又下了个手游，棕色尘埃2，记录一下。</p><p>游戏性：★★★★★<br>肝度：★★★</p><p>剧情过完后可以一天只登陆一次</p><span id="more"></span><h2 id="跨平台"><a href="#跨平台" class="headerlink" title="跨平台"></a>跨平台</h2><p>Windows、Android、iOS</p><h2 id="游戏内容"><a href="#游戏内容" class="headerlink" title="游戏内容"></a>游戏内容</h2><p>游戏风格类似歧路旅人，像素小人，战旗 PVP</p><ul><li>剧情主线</li><li>小游戏</li><li>公会战</li><li>PVP，排名奖励差距不大</li><li>做装备，刷词条<ul><li>传说 UR 制造概率 5%</li><li>刷熟悉词条</li><li>精炼品质</li></ul></li><li>各种塔<ul><li>肉鸽塔：Lv4 属性抽卡券，Lv5 抽卡券，角色与自己 Box 有关。</li></ul></li></ul><h2 id="角色与抽卡"><a href="#角色与抽卡" class="headerlink" title="角色与抽卡"></a>角色与抽卡</h2><p>200 一抽，每个池子每天都有免费一抽，100抽保底五星，天井 200 抽。</p><p>专武需要抽，不是很重要，游戏可以做通用装备。</p><p>低星战神有，而且不止一个。</p><p>这游戏抽卡的保底倒是比较友好，200 抽卡点数可以兑换当期 UP，卡池过后剩余点数会兑换为魔法粉尘，200 魔法粉尘可以兑换商店角色（除了限定，UP 卡池过后会进入商店）</p><h2 id="养成"><a href="#养成" class="headerlink" title="养成"></a>养成</h2><p>角色完全体五突，大部分主要 +3 即可，通用突破，非限定角色每月一次，消耗抽卡的重复材料。</p><h2 id="初始推荐"><a href="#初始推荐" class="headerlink" title="初始推荐"></a>初始推荐</h2><p>纯石头号大概 60 元 2000+ 抽，带人权限定 1500 抽的大概 300 块，联动没有必要。  </p><h2 id="游戏流程"><a href="#游戏流程" class="headerlink" title="游戏流程"></a>游戏流程</h2><ul><li>主线通关第四章，解锁恶魔城商店，可以开始锻造UR4毕业装备</li><li>主线通关第八章，招募兔弓（莉亚特里斯 - 罗戴夫之星），物理九宫格</li><li>主线通关第九章，获取锻造UR装备最缺的木头和金矿</li></ul><h2 id="常用链接"><a href="#常用链接" class="headerlink" title="常用链接"></a>常用链接</h2><ul><li><p><a href="https://browndust2-wiki.pages.dev/">工具站</a></p></li><li><p><a href="https://www.gamekee.com/zsca2/">GAMEKEE - 棕色尘埃2</a></p></li><li><p><a href="https://www.gamekee.com/zsca2/596306.html">萌新们遇到的各种问题以及每日必做的事（1.5周年版本）</a></p></li><li><p><a href="https://cdnimg-v2.gamekee.com/wiki2.0/images/w_2698/h_4351/50118/688915/2025/1/20/700023.png">副本简要指南</a></p></li><li><p><a href="https://cdnimg-v2.gamekee.com/wiki2.0/images/w_2232/h_2806/50118/688915/2025/2/23/241487.png">全商店兑换推荐一图流</a></p></li><li><p><a href="https://www.gamekee.com/zsca2/644038.html">游戏装备养成步骤顺序推荐</a></p></li><li><p><a href="https://www.gamekee.com/zsca2/639721.html">节奏榜</a></p></li><li><p><a href="https://www.gamekee.com/zsca2/619029.html">兑换码汇总</a> \ <a href="https://redeem.bd2.pmang.cloud/bd2/index.html?lang=zh-TW&userId=Zris">兑换码网页</a></p></li><li><p><a href="https://www.browndust2.com/zh-cn/news?page=0&type=dev_note">开发者笔记</a></p></li></ul>]]></content>
    
    
    <summary type="html">&lt;p&gt;又下了个手游，棕色尘埃2，记录一下。&lt;/p&gt;
&lt;p&gt;游戏性：★★★★★&lt;br&gt;肝度：★★★&lt;/p&gt;
&lt;p&gt;剧情过完后可以一天只登陆一次&lt;/p&gt;</summary>
    
    
    
    <category term="Games" scheme="https://homulilly.com/categories/Games/"/>
    
    
    <category term="Brown Dust2" scheme="https://homulilly.com/tags/Brown-Dust2/"/>
    
    <category term="Mobile Game" scheme="https://homulilly.com/tags/Mobile-Game/"/>
    
  </entry>
  
  <entry>
    <title>手游观察：跑跑姜饼人 王国</title>
    <link href="https://homulilly.com/post/game-cookie-run-kingdom.html"/>
    <id>https://homulilly.com/post/game-cookie-run-kingdom.html</id>
    <published>2025-03-22T04:56:12.000Z</published>
    <updated>2025-04-28T02:26:07.939Z</updated>
    
    <content type="html"><![CDATA[<p>以前玩过一次 跑跑姜饼人 王国 ，印象是画风很可爱，画面效果很好，但是有点肝，后来退坑了。</p><p>最近发现石头自抽号资源是真的多，我又买了一个，再来试试，先记录一下，<del>避免以后再再重蹈覆辙</del>。  </p><p>2025.03 买的时候记得找 <strong>黑影牛奶饼干</strong> + <strong>幻彩</strong> ， 然后钻石多的，没有必要买自选，可以只带黑影。  </p><p>评价：玩了几天，发现略有骗钱，而且太肝了，还整一些小游戏不能 AUTO（开发者玩了一把感觉能玩，然后加个 100 次的任务），有这时间，干什么不好，而且游戏没有减负倾向。  </p><p>游戏性：★★★★<br>肝度：★★★★★</p><p>由于发钻太多，强力卡不能用钻抽，当期会出特殊抽卡道具。</p><p>评价：一个月了，太肝，不要玩。</p><span id="more"></span><h2 id="跨平台"><a href="#跨平台" class="headerlink" title="跨平台"></a>跨平台</h2><p>PC 可以使用 Google Play Games PC<br>Mac 可以安装 iPad 版本，但是风扇会转</p><p>Tips： Mac 的 iPad 版本的广告是最不恶心人的。  </p><h2 id="游戏目标"><a href="#游戏目标" class="headerlink" title="游戏目标"></a>游戏目标</h2><ul><li>升级城堡等级</li><li>推图 8-30 开酵母世界，然后到野兽酵母大陆刷脆饼</li><li>酵母世界会送十片纯香草觉醒碎片</li></ul><h2 id="游戏内容"><a href="#游戏内容" class="headerlink" title="游戏内容"></a>游戏内容</h2><ul><li>城堡建设，放置生产</li><li>推图 PVE</li><li>工会战 PVE</li><li>竞技场 非即时 PVP</li><li>刷脆饼，重置刷词条，钻石、氪金道具、体力无底洞。</li></ul><h3 id="城堡建设-生产建筑"><a href="#城堡建设-生产建筑" class="headerlink" title="城堡建设 - 生产建筑"></a>城堡建设 - 生产建筑</h3><p>优先将城堡升级至 Lv8 ，开三条火车</p><h4 id="原料建筑物"><a href="#原料建筑物" class="headerlink" title="原料建筑物"></a>原料建筑物</h4><p>使用金币生成：瑞士卷木柴、方糖、豆豆果冻，可以直接把格子开满四个格子花费2400（300+500+700+900）钻石，900 的格子可以不开</p><ul><li>木匠小屋（瑞士卷木柴）</li><li>方糖采石场（方糖）</li><li>豆豆果冻（豆豆果冻）</li><li>果冻梅果园（果冻莓，最大 7 格）</li><li>饼干风车（饼干粉）</li><li>牛奶井（牛奶）</li><li>棉花糖羊毛</li></ul><h4 id=""><a href="#" class="headerlink" title=""></a></h4><h2 id="卡池介绍"><a href="#卡池介绍" class="headerlink" title="卡池介绍"></a>卡池介绍</h2><p>10抽 3000 钻 </p><h3 id="饼干角色卡池"><a href="#饼干角色卡池" class="headerlink" title="饼干角色卡池"></a>饼干角色卡池</h3><ul><li>稀有度：野兽（0.75%）、上古+传奇+龙族（0.43%）、史诗+超级稀有（19.46%）、稀有、普通</li></ul><h3 id="皮肤卡池"><a href="#皮肤卡池" class="headerlink" title="皮肤卡池"></a>皮肤卡池</h3><p>没有战力加成，不用钻抽</p><h3 id="宝物卡池"><a href="#宝物卡池" class="headerlink" title="宝物卡池"></a>宝物卡池</h3><p>不用钻抽，抽卡副产物慢慢攒</p><h2 id="突破系统"><a href="#突破系统" class="headerlink" title="突破系统"></a>突破系统</h2><p>碎片升星，抽卡重复 20 碎片，满星 20+30+50+70+100 &#x3D; 270<br>然后满了还需要超越</p><p>部分角色需要觉醒，需要额外的觉醒碎片</p><h2 id="课金内容"><a href="#课金内容" class="headerlink" title="课金内容"></a>课金内容</h2><ul><li><strong>首充奖励</strong>：一个饼干 + 3000 钻石</li><li><strong>新手礼包</strong>：   <ul><li>P1 28HKD 超级稀有自选、3 只随机不重复超级稀有(并不是必 New)、10000 钻</li><li>P2 78HKD</li><li>P3 229 HKD 100+100 抽，<strong>没有必要</strong></li><li>P4 368 HKD 传奇自选 + 饼干 Lv90 + 技能 Lv90 加其他资源，<strong>没有必要</strong></li></ul></li><li>活动每日签到礼包：53 HKD ，头像 + 饼干 Lv70 + 活动 20 抽，一个超级稀有自选，<strong>没有必要</strong></li><li>Lv90 礼包：228HKD 饼干 Lv90 + 技能 Lv90  抢钱，<strong>没有必要</strong></li><li>Lv80 礼包：88HKD 技能 Lv80，<strong>没有必要</strong></li></ul><p>一般来说买买通行证即可。</p><h3 id="通行证"><a href="#通行证" class="headerlink" title="通行证"></a>通行证</h3><ul><li><strong>王国通行证</strong>：38 HKD，一个经验糖建筑，普池 10 抽 + 宿命池 20 抽。</li><li><strong>活动通行证</strong>：128 HKD，强力角色可以买，活动池 60 + 普通池 35 ，外加建筑每天送活动 2 抽（需要 24 小时登录一次），建筑升到 10 级也送 10+ 活动池。</li></ul><h3 id="功能性"><a href="#功能性" class="headerlink" title="功能性"></a>功能性</h3><ul><li>地精扩充礼包： 158 HKD x3，，<strong>没有必要</strong></li><li>安居乐业礼包：经验建筑 梦与希望之树 38HKD</li><li>自动生产建筑礼包，可以摸鱼收菜可以不买：  <ul><li>匠人木工厂：1500 钻</li><li><strong>Pack1</strong>： 218 HKD 匠人木工厂 + 豆豆果冻 + 方糖</li><li><strong>Pack2</strong>： 278 HKD 饼干粉 + 果冻莓 + 香醇牛奶 + 棉花糖羊毛</li><li>豆豆果冻： 58 HKD</li><li><strong>方糖</strong>： 78 HKD</li><li>饼干粉： 83 HKD</li><li>果冻莓： 88 HKD</li><li><strong>香醇牛奶</strong>：108 HKD</li><li>棉花糖羊毛：118 HKD</li></ul></li></ul><h2 id="一些链接"><a href="#一些链接" class="headerlink" title="一些链接"></a>一些链接</h2><p><a href="https://forum.gamer.com.tw/C.php?bsn=70199&snA=7106">新手懶人包 (2月4日更新)</a><br><a href="https://forum.gamer.com.tw/C.php?bsn=70199&snA=6710">傳奇脆餅掉落位置</a><br><a href="https://www.taptap.cn/moment/236288042694869251">节奏榜 2025.02.20</a></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;以前玩过一次 跑跑姜饼人 王国 ，印象是画风很可爱，画面效果很好，但是有点肝，后来退坑了。&lt;/p&gt;
&lt;p&gt;最近发现石头自抽号资源是真的多，我又买了一个，再来试试，先记录一下，&lt;del&gt;避免以后再再重蹈覆辙&lt;/del&gt;。  &lt;/p&gt;
&lt;p&gt;2025.03 买的时候记得找 &lt;strong&gt;黑影牛奶饼干&lt;/strong&gt; + &lt;strong&gt;幻彩&lt;/strong&gt; ， 然后钻石多的，没有必要买自选，可以只带黑影。  &lt;/p&gt;
&lt;p&gt;评价：玩了几天，发现略有骗钱，而且太肝了，还整一些小游戏不能 AUTO（开发者玩了一把感觉能玩，然后加个 100 次的任务），有这时间，干什么不好，而且游戏没有减负倾向。  &lt;/p&gt;
&lt;p&gt;游戏性：★★★★&lt;br&gt;肝度：★★★★★&lt;/p&gt;
&lt;p&gt;由于发钻太多，强力卡不能用钻抽，当期会出特殊抽卡道具。&lt;/p&gt;
&lt;p&gt;评价：一个月了，太肝，不要玩。&lt;/p&gt;</summary>
    
    
    
    <category term="Games" scheme="https://homulilly.com/categories/Games/"/>
    
    
    <category term="Mobile Game" scheme="https://homulilly.com/tags/Mobile-Game/"/>
    
    <category term="Cookie Run Kingdom" scheme="https://homulilly.com/tags/Cookie-Run-Kingdom/"/>
    
  </entry>
  
  <entry>
    <title>手游观察：无限暖暖</title>
    <link href="https://homulilly.com/post/game-infinity-nikki.html"/>
    <id>https://homulilly.com/post/game-infinity-nikki.html</id>
    <published>2025-03-21T05:13:22.000Z</published>
    <updated>2025-03-25T03:14:17.071Z</updated>
    
    <content type="html"><![CDATA[<p>时隔许久，又有 PC 可以用了，想整个休闲游戏玩玩。  </p><p>不得不说，二次元手游这个东西，虽然知道它骗钱，但这个抽卡体系就是有一些上头，抽过之后感觉就戒不掉了。  </p><p>尝试一下叠纸的无限暖暖，记录一下体验。</p><p><a href="https://www.gamekee.com/infinitynikki/">无限暖暖wiki</a></p><p>评价：太休闲了，有一点点无聊。</p><span id="more"></span><h2 id="玩什么"><a href="#玩什么" class="headerlink" title="玩什么"></a>玩什么</h2><ul><li><strong>收集服装</strong></li><li>做做剧情活动</li><li>地图收集、解谜</li><li>小游戏</li><li>服装评分（<del>战力</del>）PK（PVE）</li><li>战斗内容：类似 QTE 式的</li></ul><h2 id="系统"><a href="#系统" class="headerlink" title="系统"></a>系统</h2><ul><li>多端登录：可以</li></ul><h2 id="抽卡系统"><a href="#抽卡系统" class="headerlink" title="抽卡系统"></a>抽卡系统</h2><ul><li>货币：付费星石（紫钻），免费钻石（粉钻），6480 钻 &#x2F; 14000JPY</li><li>抽卡道具：120 钻一抽，限定池与普池使用不同道具</li><li>五星概率 1.5%， 20 抽保底，但是一套衣服分为 9 或 10 个部件，所以要抽 <strong>180</strong> &#x2F; <strong>200</strong> 抽，不过还好一套齐了之前不会出现重复部件</li><li>突破系统：服装进化（不同颜色），需要再抽一套，五星可能有多种颜色</li><li>周卡：150 JPY 60 紫钻 + 60*7&#x3D;420 体力</li><li>月卡：750 JPY 300 紫钻 + 90*30&#x3D;2700 粉钻</li><li>通行证：基础 1500 JPY ，高级 2700 JPY 基础内容 + 980 紫钻 + 立升 10 级 + 头像框 + 10 个体力药</li></ul><h2 id="一些链接"><a href="#一些链接" class="headerlink" title="一些链接"></a>一些链接</h2><ul><li><a href="https://forum.gamer.com.tw/C.php?bsn=76450&snA=555">課金商城的CP整理(TWD)</a></li><li><a href="https://www.wanuxi.com/%e3%80%8a%e6%97%a0%e9%99%90%e6%9a%96%e6%9a%96%e3%80%8b%e5%85%91%e6%8d%a2%e7%a0%81%e5%ba%8f%e5%8f%b7%e5%a4%a7%e5%85%a8%e3%80%90%e5%9b%bd%e9%99%85%e6%9c%8d%e3%80%91/">《无限暖暖》兑换码序号大全 - 国际服</a></li><li><a href="https://forum.gamer.com.tw/C.php?bsn=76450&snA=1142&tnum=2">1.3版本傳說季｜資源福利總覽（無課＋課金計算）</a><ul><li>白嫖：79 抽</li><li>月卡：103 抽</li><li>通行证：119 抽</li></ul></li></ul><h2 id="手游骗钱套路"><a href="#手游骗钱套路" class="headerlink" title="手游骗钱套路"></a>手游骗钱套路</h2><ul><li>限制道具入手渠道：人为制造稀缺性</li><li>概率迷惑：把保底计算进显示综合概率，利用认知偏差</li><li>限制供给：控制掉落数量，比如特殊材料限定每周一次</li><li>体力限制：限制体力回复，提供氪金恢复渠道</li><li>首充诱惑：一次性首充超值回馈，培养氪金习惯</li><li>月卡&#x2F;通行证：让玩家花钱还觉得自己赚了</li><li>限时内容</li></ul><p><del>我已经氪了月卡了</del></p><p>总之，手游本质上是由厂商控制供给的系统，其设计初衷主要是为了让玩家付费。至于游戏是否好玩，虽然并非核心目标，但为了吸引和留住玩家，厂商也会在最低限度上满足这一条件。<br>因此，抽卡时切勿过于投入，避免上头。不过，无限暖暖我的体验评价是超级休闲，不同于其他强调战力的手游，抽到的角色不需要高昂的培养成本，待我再玩一段时间再来评价。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;时隔许久，又有 PC 可以用了，想整个休闲游戏玩玩。  &lt;/p&gt;
&lt;p&gt;不得不说，二次元手游这个东西，虽然知道它骗钱，但这个抽卡体系就是有一些上头，抽过之后感觉就戒不掉了。  &lt;/p&gt;
&lt;p&gt;尝试一下叠纸的无限暖暖，记录一下体验。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gamekee.com/infinitynikki/&quot;&gt;无限暖暖wiki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;评价：太休闲了，有一点点无聊。&lt;/p&gt;</summary>
    
    
    
    <category term="Games" scheme="https://homulilly.com/categories/Games/"/>
    
    
    <category term="Mobile Game" scheme="https://homulilly.com/tags/Mobile-Game/"/>
    
    <category term="Infinity Nikki" scheme="https://homulilly.com/tags/Infinity-Nikki/"/>
    
  </entry>
  
  <entry>
    <title>关闭 Windows 11 资源管理器的 OneDrive 开始备份提示</title>
    <link href="https://homulilly.com/post/windows-11-explorer-disable-onedrive-backup.html"/>
    <id>https://homulilly.com/post/windows-11-explorer-disable-onedrive-backup.html</id>
    <published>2025-03-02T03:41:06.000Z</published>
    <updated>2025-03-02T15:39:07.846Z</updated>
    
    <content type="html"><![CDATA[<p>Windows 还是喜欢用本地账户，然而资源管理器到处都是 OneDrive 的备份提示，身世烦人，搜索一下发现可以通过编辑注册表关闭。</p><p>按 <code>Windows+R</code> 打开运行窗口，输入 <code>regedit</code> 打开注册表编辑器。</p><p>导航到 </p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StorageProvider\OneDrive</span><br></pre></td></tr></table></figure><p>编辑 <code>StorageProviderKnownFolderSyncInfoSourceFactory</code> 由 <code>&#123;07CA83F0-DF06-4E67-89DD-E80924A49512&#125;</code> 改为 null 即可。</p><p>修改后立即生效。</p><p>不过这样重启后就又恢复了，需要限制这个注册表的权限。</p><ul><li>右键点击左侧的 <strong>OneDrive</strong> , 选择 <strong>权限</strong></li><li>点击 <strong>高级</strong></li><li>点击底部 <strong>禁用继承</strong></li><li>选择 <strong>将已继承的权限转为此对象的显示权限</strong> ，然后应用与确定</li><li>把 System 、你的用户、Admiinistrators 的完全控制权限的 <strong>允许</strong> 取消</li><li>点击应用即可</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;Windows 还是喜欢用本地账户，然而资源管理器到处都是 OneDrive 的备份提示，身世烦人，搜索一下发现可以通过编辑注册表关闭。&lt;/p&gt;
&lt;p&gt;按 &lt;code&gt;Windows+R&lt;/code&gt; 打开运行窗口，输入 &lt;code&gt;regedit&lt;/code&gt; 打开注册表</summary>
      
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="Windows" scheme="https://homulilly.com/tags/Windows/"/>
    
  </entry>
  
  <entry>
    <title>使用 UTM 在 macOS 上创建 macOS 15 虚拟机</title>
    <link href="https://homulilly.com/post/use-utm-create-macos-vm-on-macos.html"/>
    <id>https://homulilly.com/post/use-utm-create-macos-vm-on-macos.html</id>
    <published>2024-12-12T11:55:18.000Z</published>
    <updated>2025-08-19T06:24:00.404Z</updated>
    
    <content type="html"><![CDATA[<p>使用了 VMware Fusion 创建了一个 Windows 11 ARM 虚拟机后，想试试能不能也创建一个 macOS ARM 的虚拟机，毕竟有时候还是需要一个不同的环境，我也没有第二个设备。  </p><p>下载了 ipsw 恢复镜像，Fusion 看起来并不支持。 </p><p>搜索了一下发现 <a href="https://kb.parallels.com/cn/125561">Parallels</a> 和免费的 UTM 是支持。</p><p>最终是通过 UTM 安装的，过程非常的简单，运行也比较流畅。  </p><span id="more"></span><h2 id="下载-ipsw-格式的-macOS-镜像"><a href="#下载-ipsw-格式的-macOS-镜像" class="headerlink" title="下载 ipsw 格式的 macOS 镜像"></a>下载 ipsw 格式的 macOS 镜像</h2><p>访问 <a href="https://ipsw.me/product/Mac">https://ipsw.me/product/Mac</a> 通过选择设备获取镜像下载链接，下载是通过 Apple 的服务器下载的。  </p><p>我下载的版本是 <code>15.1.1</code> 。</p><p>下载后记得打开终端校验一下文件完整性。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> Downloads</span><br><span class="line">openssl sha1 UniversalMac_15.1.1_24B2091_Restore.ipsw </span><br><span class="line"></span><br><span class="line"><span class="comment"># 输出需要与网页的相同</span></span><br><span class="line">SHA1(UniversalMac_15.1.1_24B2091_Restore.ipsw)= f9c870544bc208d9574eb07d8226cd80a77e13e2</span><br></pre></td></tr></table></figure><h2 id="下载安装-UTM"><a href="#下载安装-UTM" class="headerlink" title="下载安装 UTM"></a>下载安装 UTM</h2><p>UTM 在 AppStore 是付费的，但是 <a href="https://mac.getutm.app/">官网</a> 可以免费下载。 </p><p>双击下载的 UTM.dmg ，将 UTP.app 拖放到 Application 中。<br><img src="https://m.nep.me/blog/post/utm-install.png" alt="UTM Install"></p><p>然后从启动台中打开 UTM ，打开时会有隐私询问，选择打开。</p><h2 id="创建虚拟机"><a href="#创建虚拟机" class="headerlink" title="创建虚拟机"></a>创建虚拟机</h2><p>打开 UTM 后，选择创建虚拟机。<br><img src="https://m.nep.me/blog/post/utm-app-home.png" alt="UTM Privacy ask"></p><p>我是安装相同架构的系统，所以自定义选择 <strong>虚拟化</strong> 。<br><img src="https://m.nep.me/blog/post/utm-create-cpu-type.png"></p><ul><li>预配置选择 macOS 12+ </li><li>拖放之前下载的 <code>.ipsw</code> 镜像到 <strong>导入 IPSW</strong> 界面中</li><li>硬件界面设置内存与 CPU 核心数</li></ul><p><img src="https://m.nep.me/blog/post/utm-create-set-ram-and-cpu.png"></p><ul><li>设置硬盘大小，默认是 64GB，安装完成后会占用 20GB ，剩余 40GB 用，我设置了 128GB</li><li><strong>总结</strong> 界面确认一下信息，点击 <strong>存储</strong></li></ul><p><img src="https://m.nep.me/blog/post/utm-create-overview.png"></p><p>存储后点击启动，会有抹掉磁盘提示，因为是空的，选择好就可以。<br><img src="https://m.nep.me/blog/post/utm-create-confirm.png"></p><p>等待安装完成，出现苹果 LOGO 后进入欢迎界面引导设置，就安装成功了。</p><p><img src="https://m.nep.me/blog/post/utm-create-apple-logo.png"></p><p><img src="https://m.nep.me/blog/post/utm-create-welcome.png"></p><p>按照引导依次完成设置： </p><ul><li>选择语言</li><li>设置地区</li><li>登陆账户可以跳过</li><li>同意隐私协议</li><li>设置账户与密码</li><li>设置时区</li><li>选择外观主题</li></ul><p>然后即可成功进入系统<br><img src="https://m.nep.me/blog/post/utm-create-done.png"></p><p>刚安装的系统占用大约 20GB 左右。<br><img src="https://m.nep.me/blog/post/utm-create-disk-usage.png"></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;使用了 VMware Fusion 创建了一个 Windows 11 ARM 虚拟机后，想试试能不能也创建一个 macOS ARM 的虚拟机，毕竟有时候还是需要一个不同的环境，我也没有第二个设备。  &lt;/p&gt;
&lt;p&gt;下载了 ipsw 恢复镜像，Fusion 看起来并不支持。 &lt;/p&gt;
&lt;p&gt;搜索了一下发现 &lt;a href=&quot;https://kb.parallels.com/cn/125561&quot;&gt;Parallels&lt;/a&gt; 和免费的 UTM 是支持。&lt;/p&gt;
&lt;p&gt;最终是通过 UTM 安装的，过程非常的简单，运行也比较流畅。  &lt;/p&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="macOS" scheme="https://homulilly.com/tags/macOS/"/>
    
    <category term="UTM" scheme="https://homulilly.com/tags/UTM/"/>
    
    <category term="VM" scheme="https://homulilly.com/tags/VM/"/>
    
  </entry>
  
  <entry>
    <title>使用 VMware Fusion 在 macOS 中创建 Windows ARM 虚拟机</title>
    <link href="https://homulilly.com/post/use-fusion-create-windows-arm-vm-on-macos.html"/>
    <id>https://homulilly.com/post/use-fusion-create-windows-arm-vm-on-macos.html</id>
    <published>2024-12-12T07:27:29.000Z</published>
    <updated>2025-03-21T05:12:31.658Z</updated>
    
    <content type="html"><![CDATA[<p>之前 VMware Workstation 和 Fusion 彻底免费了，外加也可以下载 Windows on ARM 的镜像了。  </p><p>安装下来体验一下。  </p><p>与使用 UTM 对比</p><ul><li>UTM 可以方便的设置共享文件夹，从虚拟机访问宿主机的文件夹</li><li>UTM 安装 Window11 时会自动重启到设置本地账户</li><li>Fusion 使用感觉更流畅一些，UTM 偶尔会卡顿一下</li></ul><span id="more"></span><h2 id="免登录下载-VMware-Fusion"><a href="#免登录下载-VMware-Fusion" class="headerlink" title="免登录下载 VMware Fusion"></a>免登录下载 VMware Fusion</h2><p>可以直接使用 Homebrew 安装</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">brew install vmware-fusion</span><br></pre></td></tr></table></figure><p>直接去官网下载 VMware Fusion 需要登陆，不打算注册相关账户，于是搜索了一下，发现了一个免登录下载的方法。  </p><p>就是从更新接口下载 <a href="https://softwareupdate.vmware.com/cds/vmw-desktop/">https://softwareupdate.vmware.com/cds/vmw-desktop/</a></p><p>不过下载后需要手动解压才可以安装。  </p><p>依次点击 Fusion &gt; 13.6.1 &gt; 24319021 &gt; universal &gt; core &gt; com.vmware.fusion.zip.tar 进行下载</p><p>下载后需要解压两次得到 <code>VMware Fusion.app</code> 复制到 应用程序(Application) 中。 </p><p>然后打开 VMware Fusion ，按照提示进行授权就可以了。</p><h2 id="下载-Windows-11-ARM64"><a href="#下载-Windows-11-ARM64" class="headerlink" title="下载 Windows 11 ARM64"></a>下载 Windows 11 ARM64</h2><p>访问微软官方网站下载<br><a href="https://www.microsoft.com/zh-cn/software-download/windows11arm64">https://www.microsoft.com/zh-cn/software-download/windows11arm64</a></p><h2 id="安装-Windows"><a href="#安装-Windows" class="headerlink" title="安装 Windows"></a>安装 Windows</h2><p>打开 VM Fusion ，把下载的镜像拖放到窗口中，然后按照步骤进行</p><ul><li>固件选择 UEFI</li><li>选择加密，需要生成一个 TPM 密码，可以自动生成，要保存好</li><li>进入完成界面，默认说 4G 内存，2 核心CPU，点击自定义设置可以修改虚拟机名称并修改配置</li></ul><p>macOS Fusion 鼠标回到宿主机的快捷键是 <code>Control + Commond</code></p><h3 id="安装过程"><a href="#安装过程" class="headerlink" title="安装过程"></a>安装过程</h3><p>启动后显示 黑屏 + <code>Press any key boot from CD/CDROM</code> 时要马上按一个键，不然很快就跳过这个步骤了（可以等超时后进入蓝色的 BIOS 界面再选择 <strong>Boot normally</strong>）。</p><p>然后就进入 Windows 的安装界面了 </p><p><img src="https://m.nep.me/blog/post/use-fusion-install-win-arm-step.png"></p><p>按照提示进行点击下一步</p><ul><li>选项安装选项：<strong>安装 Windows 11</strong><ul><li><strong>勾选</strong> 同意 I agree everything will be deleted including files, apps, and settings</li></ul></li><li>产品密钥界面选择左下角 <strong>我没有产品密钥</strong></li><li>映像选择 <strong>Windows 11 专业版</strong></li><li><strong>接受</strong> 许可协议</li><li>选择磁盘直接点击 <strong>下一步</strong></li><li>最后选择 <strong>安装</strong></li></ul><p>安装过程 Windows 会自动操作，重启几次后进入 Windows 初始设置界面。  </p><p>按照步骤选择语言、键盘布局后，在设置网络这一步会卡住<br><img src="https://m.nep.me/blog/post/use-fusion-install-win-arm-no-network.png" alt="Windows 11 Install No Network"></p><p>需要按 <code>Shift + F10</code> 打开命令窗口，输入下面的命令</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">OOBE\BypassNRO</span><br></pre></td></tr></table></figure><p>然后会重启，需要重新选择地区、键盘布局，到添加网络时可以选择 <strong>我没有 Internet 连接</strong> 了。 </p><p>然后就可以继续，设置账户名称、密码（可以跳过）、隐私选项。</p><h3 id="安装-VMware-Tools"><a href="#安装-VMware-Tools" class="headerlink" title="安装 VMware Tools"></a>安装 VMware Tools</h3><ul><li>点击顶部菜单的 <strong>虚拟机</strong> &gt; <strong>安装 VMware Tools</strong> 。</li><li>虚拟机窗口弹窗选择安装，但是并不自动安装，只会挂载光驱</li><li>打开 Windows 的资源管理器，在光驱中手动点击 <strong>Setup</strong> 安装</li></ul><h3 id="其他设置"><a href="#其他设置" class="headerlink" title="其他设置"></a>其他设置</h3><p>我安装后 Fusion 已经自动设置了 Retina 支持，可以在虚拟机 <strong>设置</strong> &gt; <strong>显示</strong> 中查看</p><p>安装 VMware Tools 后 Windows 的显示缩放比例是 250%，不是很合适。  </p><p>打开 Windows 的设置，显示设置，缩放部分点击 <code>关闭自定义缩放</code>，注销登录后，手动设置一个适合的分辨率。</p><h3 id="删除虚拟机"><a href="#删除虚拟机" class="headerlink" title="删除虚拟机"></a>删除虚拟机</h3><p>右键 Dock 上的 VMware Fusion 图标，选择 <strong>虚拟机资源库</strong></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;之前 VMware Workstation 和 Fusion 彻底免费了，外加也可以下载 Windows on ARM 的镜像了。  &lt;/p&gt;
&lt;p&gt;安装下来体验一下。  &lt;/p&gt;
&lt;p&gt;与使用 UTM 对比&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UTM 可以方便的设置共享文件夹，从虚拟机访问宿主机的文件夹&lt;/li&gt;
&lt;li&gt;UTM 安装 Window11 时会自动重启到设置本地账户&lt;/li&gt;
&lt;li&gt;Fusion 使用感觉更流畅一些，UTM 偶尔会卡顿一下&lt;/li&gt;
&lt;/ul&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="macOS" scheme="https://homulilly.com/tags/macOS/"/>
    
    <category term="Windows ARM" scheme="https://homulilly.com/tags/Windows-ARM/"/>
    
    <category term="VMware Fusion" scheme="https://homulilly.com/tags/VMware-Fusion/"/>
    
  </entry>
  
  <entry>
    <title>macOS 上无法访问局域网设备</title>
    <link href="https://homulilly.com/post/macos-local-network-unreachable.html"/>
    <id>https://homulilly.com/post/macos-local-network-unreachable.html</id>
    <published>2024-12-04T02:55:10.000Z</published>
    <updated>2024-12-10T18:51:47.492Z</updated>
    
    <content type="html"><![CDATA[<p>一觉起来，VSCode 和 Chrome 都无法访问我的 ALL IN BOOM 了，Chrome 访问提示下面的错误</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable constant_">ERR_ADDRESS_UNREACHABLE</span></span><br></pre></td></tr></table></figure><p>检查 ALL IN BOOM 发现并没有关机，在终端内 ping 可以正常得到回应，使用 Windows 设备也可以正常访问。  </p><p>搜了一下，类似情况还挺多，前往系统的 <strong>设置</strong> &gt; <strong>隐私与安全</strong> &gt; <strong>本地网络</strong> ，开启对应 APP 的权限。  </p><p>不过我的本来就是开启状态的，于是尝试了一下关闭重新打开，然后就恢复了。  </p><span id="more"></span><p><img src="https://m.nep.me/blog/post/macos-localnet.png" alt="macOS Local Network Privacy"></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;一觉起来，VSCode 和 Chrome 都无法访问我的 ALL IN BOOM 了，Chrome 访问提示下面的错误&lt;/p&gt;
&lt;figure class=&quot;highlight js&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;variable constant_&quot;&gt;ERR_ADDRESS_UNREACHABLE&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;检查 ALL IN BOOM 发现并没有关机，在终端内 ping 可以正常得到回应，使用 Windows 设备也可以正常访问。  &lt;/p&gt;
&lt;p&gt;搜了一下，类似情况还挺多，前往系统的 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;隐私与安全&lt;/strong&gt; &amp;gt; &lt;strong&gt;本地网络&lt;/strong&gt; ，开启对应 APP 的权限。  &lt;/p&gt;
&lt;p&gt;不过我的本来就是开启状态的，于是尝试了一下关闭重新打开，然后就恢复了。  &lt;/p&gt;</summary>
    
    
    
    <category term="Note" scheme="https://homulilly.com/categories/Note/"/>
    
    
    <category term="macOS" scheme="https://homulilly.com/tags/macOS/"/>
    
  </entry>
  
</feed>
