<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>软件 &#8211; 1738348785</title>
	<atom:link href="https://www.arkicho.cn/tag/%E8%BD%AF%E4%BB%B6/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.arkicho.cn</link>
	<description>1738348785‘s blog</description>
	<lastBuildDate>Mon, 06 Apr 2026 08:43:02 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.arkicho.cn/wp-content/uploads/2023/11/cropped-110281182_p1-32x32.png</url>
	<title>软件 &#8211; 1738348785</title>
	<link>https://www.arkicho.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GitHub Actions自动化工作流</title>
		<link>https://www.arkicho.cn/blog/355/</link>
					<comments>https://www.arkicho.cn/blog/355/#respond</comments>
		
		<dc:creator><![CDATA[1738348785]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 08:40:49 +0000</pubDate>
				<category><![CDATA[文章]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[软件]]></category>
		<guid isPermaLink="false">https://www.arkicho.cn/?p=355</guid>

					<description><![CDATA[跑单元测试、打包代码、部署到服务器、发布版本号，能在代码提交的一瞬间自动完成。 什么是 GitHub Acti [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>跑单元测试、打包代码、部署到服务器、发布版本号，能在代码提交的一瞬间自动完成。</p>



<h2 class="wp-block-heading">什么是 GitHub Actions？<br></h2>



<p>简单来说，GitHub Actions 是一个事件驱动的自动化平台。<br>事件 (Event)：当你推送代码（push）、发起合并请求（pull request）或者给仓库打星（star）时。<br>动作 (Action)：它会自动触发预先定义好的任务。<br>它直接集成在 GitHub 中，无需像 Jenkins 那样额外部署服务器，而且对于开源项目是完全免费的。</p>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景一-python-项目-从测试到-release-自动发布-0">场景一：Python 项目——从测试到 Release 自动发布</h2>



<p>对于 Python 开发者，最优雅的工作流是：<strong>推送到主分支跑测试 -&gt; 打版本标签（Tag）自动生成 Release 并上传 Wheel 包。</strong></p>



<pre class="wp-block-preformatted"><code>name: Python Release Pipeline<br><br>on:<br>  push:<br>    branches: [ main ]<br>    tags: [ 'v*' ] # 匹配 v1.0.0, v2.1.0 等<br><br>jobs:<br>  test:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - uses: actions/checkout@v4<br>      - name: Set up Python<br>        uses: actions/setup-python@v5<br>        with:<br>          python-version: '3.10'<br>      - run: pip install pytest &amp;&amp; pytest<br><br>  publish:<br>    needs: test<br>    if: startsWith(github.ref, 'refs/tags/') # 只有推标签时才执行<br>    runs-on: ubuntu-latest<br>    steps:<br>      - uses: actions/checkout@v4<br>      - name: Build Wheel<br>        run: |<br>          pip install build<br>          python -m build<br>      - name: Create GitHub Release<br>        uses: softprops/action-gh-release@v2<br>        with:<br>          files: dist/*  # 自动将打包后的 whl 和 tar.gz 上传到 Release 附件<br>        env:<br>          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景二-前端项目-自动构建并部署到-github-pages-0">场景二：前端项目——自动构建并部署到 GitHub Pages</h2>



<p>如果你有一个 React、Vue 或静态博客（Hexo/Hugo），你一定希望代码一提交，网站就自动更新。</p>



<ul class="wp-block-list">
<li><strong>核心逻辑</strong>：安装依赖 -> 构建静态文件 -> 推送到 <code>gh-pages</code> 分支。</li>
</ul>



<pre class="wp-block-preformatted"><code>name: Deploy Website<br><br>on:<br>  push:<br>    branches: [ main ]<br><br>jobs:<br>  deploy:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - uses: actions/checkout@v4<br>      <br>      - name: Setup Node<br>        uses: actions/setup-node@v4<br>        with:<br>          node-version: '20'<br>          cache: 'npm'<br><br>      - run: npm install<br>      - run: npm run build  # 产出通常在 dist 文件夹<br><br>      - name: Deploy to GitHub Pages<br>        uses: JamesIves/github-pages-deploy-action@v4<br>        with:<br>          folder: dist    # 部署构建后的文件夹<br>          branch: gh-pages # 部署到的目标分支</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景三-devops-进阶-自动构建-docker-镜像并推送到仓库-0">场景三：DevOps 进阶——自动构建 Docker 镜像并推送到仓库</h2>



<p>对于微服务开发者，自动更新 Docker 镜像并推送到 Docker Hub 或阿里云镜像服务是刚需。</p>



<ul class="wp-block-list">
<li><strong>亮点</strong>：利用 <code>secrets</code> 保护账号密码，利用 <code>tags</code> 自动给镜像打版本。</li>
</ul>



<pre class="wp-block-preformatted"><code>name: Docker Build and Push<br><br>on:<br>  push:<br>    tags: [ 'v*' ]<br><br>jobs:<br>  docker:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - name: Login to Docker Hub<br>        uses: docker/login-action@v3<br>        with:<br>          username: ${{ secrets.DOCKERHUB_USERNAME }}<br>          password: ${{ secrets.DOCKERHUB_TOKEN }}<br><br>      - name: Build and push<br>        uses: docker/build-push-action@v5<br>        with:<br>          push: true<br>          tags: user/my-app:latest, user/my-app:${{ github.ref_name }} # 同时打 latest 和版本号标签</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--场景四-定时任务-cron-jobs-你的云端小秘书-0">场景四：定时任务（Cron Jobs）——你的云端小秘书</h2>



<p>GitHub Actions 不仅能跟随代码变动触发，还能<strong>定时运行</strong>。比如：每天早上 8 点抓取天气、自动签到、或者定时清理数据库。</p>



<pre class="wp-block-preformatted"><code>name: Daily Cron Job<br><br>on:<br>  schedule:<br>    - cron: '0 0 * * *' # 每天北京时间上午 8 点运行 (UTC 0:00)<br>  workflow_dispatch:   # 允许手动在页面点击运行<br><br>jobs:<br>  morning-task:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - name: Run my script<br>        run: curl https://my-api.com/daily-checkin?token=${{ secrets.MY_TOKEN }}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="heading-50d04244-d78f-4bec-a598-1beaadddc29c--总结-0">总结</h2>



<p>GitHub Actions 的强大之处在于它消除了“环境一致性”的问题。无论是 Python 的打包、前端的部署，还是 Docker 的分发，你只需要在 <code>.github/workflows</code> 下写好那几十行 YAML 脚本，剩下的就交给 GitHub 的服务器去处理。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="heading-ba90d684-ae65-4ebf-bdbb-aeb12c5ea0d7--相关资源-0">相关资源</h3>



<ul class="wp-block-list">
<li><a href="https://docs.github.com/en/actions" target="_blank" rel="noreferrer noopener">官方文档</a></li>



<li><a href="https://github.com/marketplace?type=actions" target="_blank" rel="noreferrer noopener">GitHub Actions 市场</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.arkicho.cn/blog/355/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>一台服务器如何通过不同域名指向不同站点？nginx</title>
		<link>https://www.arkicho.cn/blog/342/</link>
					<comments>https://www.arkicho.cn/blog/342/#respond</comments>
		
		<dc:creator><![CDATA[1738348785]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 17:17:21 +0000</pubDate>
				<category><![CDATA[文章]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[软件]]></category>
		<guid isPermaLink="false">https://www.arkicho.cn/?p=342</guid>

					<description><![CDATA[在云服务器资源宝贵的今天，我们往往希望在一个公网ip的一台服务器上运行多个项目。比如： Nginx 作为高性能 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>在云服务器资源宝贵的今天，我们往往希望在一个公网ip的一台服务器上运行多个项目。比如：</p>



<ul class="wp-block-list">
<li><code>www.a.com</code>&nbsp;指向个人博客。</li>



<li><code>www.b.com</code>&nbsp;指向api反代。</li>
</ul>



<p>Nginx 作为高性能的 HTTP 和反向代理服务器，通过 <strong>“虚拟主机（Virtual Host）”</strong> 功能，可以轻松实现根据访问的域名将请求转发到不同的目录或后端服务。</p>



<h2 class="wp-block-heading"><strong>核心原理</strong></h2>



<p>当我们在浏览器输入域名并回车时，请求最终都会到达服务器的 80（HTTP）或 443（HTTPS）端口。Nginx 能够区分不同站点的秘密在于 HTTP 请求头中的 Host 字段。Nginx 接收到请求后，会将其中的域名与配置文件中 server_name 指令进行匹配，匹配成功后，就进入对应的 server 块进行处理。</p>



<p>在/etc/nginx/conf.d/ 目录下为每个站点创建独立的配置文件。</p>



<h2 class="wp-block-heading">准备工作</h2>



<ol class="wp-block-list">
<li><strong>域名解析</strong>：确保你的多个域名（如&nbsp;<code>a.com</code>&nbsp;和&nbsp;<code>b.com</code>）都已通过 A 记录解析到同一台服务器的 IP 地址。</li>



<li><strong>环境安装</strong>：服务器已安装 Nginx。</li>



<li><strong>站点准备</strong>：准备好不同站点的代码目录。
<ul class="wp-block-list">
<li>站点 A 路径：<code>/var/www/site_a</code></li>



<li>站点 B 路径：<code>/var/www/site_b</code></li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">具体配置步骤</h2>



<p id="heading-2f9c5987-50c4-48d5-9ea5-200f894784b4--1-配置站点-a-0">1. 配置站点 A</p>



<p>创建文件 <code>/etc/nginx/conf.d/site_a.conf</code>:</p>



<pre class="wp-block-preformatted"><code>server {<br>    listen 80;<br>    server_name a.com www.a.com; # 这里填写你的域名<br><br>    root /var/www/site_a; # 站点代码存放路径<br>    index index.html index.htm index.php;<br><br>    location / {<br>        try_files $uri $uri/ =404;<br>    }<br><br>    # 如果是 PHP 站点，取消下面注释<br>    # location ~ \.php$ {<br>    #     include snippets/fastcgi-php.conf;<br>    #     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;<br>    # }<br>}</code></pre>



<p id="heading-2f9c5987-50c4-48d5-9ea5-200f894784b4--2-配置站点-b-0">2. 配置站点 B</p>



<p>创建文件 <code>/etc/nginx/conf.d/site_b.conf</code>:</p>



<pre class="wp-block-preformatted"><code>server {<br>    listen 80;<br>    server_name b.com www.b.com; # 这里填写第二个域名<br><br>    root /var/www/site_b;<br>    index index.html index.htm;<br><br>    location / {<br>        # 如果站点B是一个运行在 3000 端口的 Node.js 程序，可以使用反向代理<br>        # proxy_pass http://localhost:3000;<br>        try_files $uri $uri/ =404;<br>    }<br>}</code></pre>



<p>这里其实配置文件中也可以加入cert证书，来实现443端口，https连接。</p>



<h2 class="wp-block-heading"><strong>验证并生效</strong></h2>



<p>先进行语法检查：<br><code>sudo nginx -t</code><br>如果看到 syntax is ok 和 test is successful，则说明配置无误。接着重新加载 Nginx 配置：<br><code>sudo systemctl reload nginx <br><em># 或者</em><br>sudo nginx -s reload</code></p>



<p>如果所有&nbsp;<code>server_name</code>&nbsp;都不匹配，Nginx 会默认转发给<strong>第一个</strong>加载的配置文件。建议设置一个默认服务器（default_server）来处理未匹配域名。</p>



<p>通过 Nginx 的虚拟主机配置，我们可以极大地提高服务器的利用率。无论是静态 HTML 页面、PHP 网站，还是通过反向代理对接 Java/Node.js 服务，配置逻辑都是一致的。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.arkicho.cn/blog/342/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>有关漫画机翻</title>
		<link>https://www.arkicho.cn/blog/310/</link>
					<comments>https://www.arkicho.cn/blog/310/#respond</comments>
		
		<dc:creator><![CDATA[1738348785]]></dc:creator>
		<pubDate>Fri, 26 Dec 2025 11:01:36 +0000</pubDate>
				<category><![CDATA[文章]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[软件]]></category>
		<guid isPermaLink="false">https://www.arkicho.cn/?p=310</guid>

					<description><![CDATA[漫画机翻Manga-Translator-UI和Saber-Translator]]></description>
										<content:encoded><![CDATA[<h1><a href="https://github.com/hgmzhn/manga-translator-ui">Manga-Translator-UI</a></h1>
<p>https://github.com/hgmzhn/manga-translator-ui</p>
<p data-path-to-node="15">这款工具是基于著名的 <code data-path-to-node="15" data-index-in-node="11">manga-image-translator</code> 核心引擎开发的。Manga-Translator-UI 更像是一个<b data-path-to-node="15" data-index-in-node="88">专业的翻译工作台</b>。它提供了 Qt 桌面版和 Web 网页版两种界面，非常适合对翻译质量和排版有精细要求的用户。</p>
<p data-path-to-node="16">核心亮点：</p>
<ol start="1" data-path-to-node="17">
<li>
<p data-path-to-node="17,0,0"><b data-path-to-node="17,0,0" data-index-in-node="0">可视化的 &#8220;所见即所得&#8221; 编辑器</b>： 这是它的杀手锏。翻译完后，你可以直接在图上拖动文本框、调整气泡大小、修改字体样式、用画笔/橡皮擦微调蒙版。对于想要制作 &#8220;汉化组级别&#8221; 作品的个人用户来说，这个编辑器非常顺手。</p>
</li>
<li>
<p data-path-to-node="17,1,0"><b data-path-to-node="17,1,0" data-index-in-node="0">广泛的格式与语言支持</b>： 除了日漫，它对<b data-path-to-node="17,1,0" data-index-in-node="19">韩漫、美漫</b>的支持也非常好。支持竖条漫的拼接和处理。</p>
</li>
<li>
<p data-path-to-node="17,2,0"><b data-path-to-node="17,2,0" data-index-in-node="0">极简的安装与部署</b>：</p>
<ul data-path-to-node="17,2,1">
<li>
<p data-path-to-node="17,2,1,0,0"><b data-path-to-node="17,2,1,0,0" data-index-in-node="0">一键脚本</b>：提供了 Windows 一键安装脚本，自动配置 Python 环境和依赖，不用担心配环境报错。</p>
</li>
<li>
<p data-path-to-node="17,2,1,1,0"><b data-path-to-node="17,2,1,1,0" data-index-in-node="0">Docker 支持</b>：对于有NAS的用户或者有VPS的用户，直接一行 Docker 命令就能在服务器或 NAS 上跑起来。通过Web来进行手机远程机翻。</p>
</li>
</ul>
</li>
<li>
<p data-path-to-node="17,3,0"><b data-path-to-node="17,3,0" data-index-in-node="0">灵活的翻译引擎</b>： 内置了 OpenAI (GPT), Gemini, Sakura (专门优化过的日翻中模型) 等多种引擎，且支持批量处理整个文件夹。</p>
</li>
<li><b data-path-to-node="17,3,0" data-index-in-node="0">超分辨率模型</b>： 让糊图变模糊，</li>
<li><b>AI上色</b>： 内置了 MC2上色模型，黑白漫画秒变全彩。</li>
<li><strong>字体编辑和排版： </strong></li>
</ol>
<ol>
<li style="list-style-type: none;">
<ul data-path-to-node="17">
<li><strong>AI 智能断句：</strong>告别 &#8220;支离破碎&#8221; 的机翻体验，它解决了一个困扰机翻漫画多年的顽疾，文字断句与回填排版。</li>
<li><strong>自动提取术语 ：</strong>AI 自动识别并积累专有名词，保持翻译一致性。</li>
<li><strong>智能嵌字 ：</strong>自动排版译文，支持多种字体。</li>
</ul>
</li>
</ol>
<p data-path-to-node="18"><b data-path-to-node="18" data-index-in-node="0">推荐人群</b>：对翻译后的排版效果有要求、不仅看日漫还看韩漫/美漫、或者喜欢在服务器/Docker 环境部署服务的用户。整体翻译质量+文字排版+修复图片方面做的更加好，对图形质量更佳。</p>
<h1 data-path-to-node="18"><a href="https://github.com/MashiroSaber03/Saber-Translator">Saber-Translator</a></h1>
<p data-path-to-node="18">https://github.com/MashiroSaber03/Saber-Translator</p>
<p data-path-to-node="18">如果你想要一款<b data-path-to-node="8" data-index-in-node="7">集翻译、阅读、管理</b> 的软件。</p>
<p data-path-to-node="16">核心亮点：</p>
<p data-path-to-node="18">1.如果你想要一款<b data-path-to-node="8" data-index-in-node="7">集翻译、阅读、管理、分析于一体</b>的 &#8220;全能型&#8221; 软件，Saber-Translator 绝对是你的首选。它的定位非常清晰——<b data-path-to-node="8" data-index-in-node="68">&#8220;小白也能轻松使用&#8221;</b>，并且功能极其丰富。</p>
<p data-path-to-node="18"><b data-path-to-node="10,1,0" data-index-in-node="0">2.强大的 &#8220;书架&#8221; 系统</b>： 它不仅仅是个翻译器，更像是一个漫画阅读器（如 Tachiyomi）。你可以创建书籍、管理章节、打标签。翻译好的漫画直接在软件里就能优雅地阅读，还有基于多模态大模型的漫画剧情总结功能。</p>
<p data-path-to-node="10,2,0"><b data-path-to-node="10,2,0" data-index-in-node="0">3.Manga Insight（漫画洞察）</b>： 这是 Saber 最黑科技的功能！它不仅仅是把日文变成中文，它利用 AI <b data-path-to-node="10,2,0" data-index-in-node="58">深度理解漫画内容</b>。</p>
<ul data-path-to-node="10,2,1">
<li>
<p data-path-to-node="10,2,1,0,0"><b data-path-to-node="10,2,1,0,0" data-index-in-node="0">剧情分析</b>：它可以帮你梳理剧情、识别角色。</p>
</li>
<li>
<p data-path-to-node="10,2,1,1,0"><b data-path-to-node="10,2,1,1,0" data-index-in-node="0">智能问答 (RAG)</b>：你可以直接问它：&#8221;这一话里男主对女主说了什么？&#8221; 或者 &#8220;第15页发生了什么？&#8221;，它能基于漫画内容回答你。</p>
</li>
<li>
<p data-path-to-node="10,2,1,2,0"><b data-path-to-node="10,2,1,2,0" data-index-in-node="0">生成百科</b>：自动生成角色图鉴、世界观设定、无剧透简介等。</p>
</li>
</ul>


<p><strong>两者都支持高质量多模态翻译</strong>： 支持 &#8220;高质量翻译模式&#8221;，利用多模态模型（如 GPT-5.2，Gemini 3 Pro/flash，豆包，GLM）同时读取多张图片，理解上下文，让模型理解是哪个角色说了那句话，通过大模型OCR，自动纠错OCR识别的错误，同时大体量的视觉模型，防止出现传统本地OCR的识别错误问题。</p>



<p>总体来说个人觉得</p>



<p><a href="https://github.com/hgmzhn/manga-translator-ui">Manga-Translator-UI</a>的翻译质量嵌字相对更好，图像功能更丰富。</p>



<p><a href="https://github.com/MashiroSaber03/Saber-Translator">Saber-Translator</a>的阅读功能更好。</p>



<p>如果你是<strong>个人阅读党</strong>，想要存一堆生肉漫画慢慢看，甚至想让 AI 帮你总结剧情，<strong>Saber-Translator</strong> 会给你带来很多惊喜。</p>



<p>如果你是<strong>汉化组新人</strong>或者<strong>修图强迫症</strong>，需要对每一页的翻译效果和排版进行精细调整，或者你有大量韩漫/美漫需要处理，<strong>Manga-Translator-UI</strong> 的效率和编辑器会更适合你。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"></figure>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1449" height="2160" src="https://www.arkicho.cn/wp-content/uploads/2025/12/Gemini_Generated_Image_u2vqp7u2vqp7u2vq-1449x2160.jpg" alt="" class="wp-image-314" srcset="https://www.arkicho.cn/wp-content/uploads/2025/12/Gemini_Generated_Image_u2vqp7u2vqp7u2vq-1449x2160.jpg 1449w, https://www.arkicho.cn/wp-content/uploads/2025/12/Gemini_Generated_Image_u2vqp7u2vqp7u2vq-201x300.jpg 201w, https://www.arkicho.cn/wp-content/uploads/2025/12/Gemini_Generated_Image_u2vqp7u2vqp7u2vq-768x1145.jpg 768w, https://www.arkicho.cn/wp-content/uploads/2025/12/Gemini_Generated_Image_u2vqp7u2vqp7u2vq-1030x1536.jpg 1030w, https://www.arkicho.cn/wp-content/uploads/2025/12/Gemini_Generated_Image_u2vqp7u2vqp7u2vq-1374x2048.jpg 1374w, https://www.arkicho.cn/wp-content/uploads/2025/12/Gemini_Generated_Image_u2vqp7u2vqp7u2vq.jpg 1696w" sizes="(max-width: 1449px) 100vw, 1449px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.arkicho.cn/blog/310/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
