<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Gitea on 达蒙西的囚笼</title>
        <link>https://blog.cba.nxlan.cn/categories/gitea/</link>
        <description>Recent content in Gitea on 达蒙西的囚笼</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>Tech-love Share Hope</copyright>
        <lastBuildDate>Wed, 22 Apr 2026 16:03:12 +0800</lastBuildDate><atom:link href="https://blog.cba.nxlan.cn/categories/gitea/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Gitea 私有代码仓库快速部署</title>
        <link>https://blog.cba.nxlan.cn/p/gitea/</link>
        <pubDate>Wed, 22 Apr 2026 16:03:12 +0800</pubDate>
        
        <guid>https://blog.cba.nxlan.cn/p/gitea/</guid>
        <description>&lt;img src="https://r2.blog.nxlan.cn/PicGobuild_gitea_title.png" alt="Featured image of post Gitea 私有代码仓库快速部署" /&gt;&lt;p&gt;&lt;strong&gt;摘要&lt;/strong&gt;: 基于真实踩坑案例，实现 1Panle 平台 + Gitea 私有仓库快速部署。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;前情提要&#34;&gt;前情提要
&lt;/h2&gt;&lt;p&gt;前面&lt;a class=&#34;link&#34; href=&#34;https://blog.cba.nxlan.cn/p/setup_mcp_server&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;文章&lt;/a&gt;中提到了 MCP server 快速部署案例。&lt;/p&gt;
&lt;p&gt;其中有一种场景：用户自己开发了一个 mcp server 代码，希望运行在 1Panel 的MCP 组件中，而不是只能够在本地运行。&lt;/p&gt;
&lt;p&gt;并且文章中提到，1Panel 中新增的 mcp server配置如下——&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/bin/sh -c &amp;#34;apk add git &amp;amp;&amp;amp; uvx --from git+http://lab.nxlan.cn:3008/pdream/jobsearch-mcp-server.git jobsearch-mcp-server --transport stdio&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;上面用到代码仓库 &lt;a class=&#34;link&#34; href=&#34;http://lab.nxlan.cn:3008/pdream/jobsearch-mcp-server.git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://lab.nxlan.cn:3008/pdream/jobsearch-mcp-server.git&lt;/a&gt; 就是本文主角——gitea 个人仓库。&lt;/p&gt;
&lt;h2 id=&#34;一gitea-基础配置&#34;&gt;一、Gitea 基础配置
&lt;/h2&gt;&lt;p&gt;延续1Panel 中特色功能：图形化部署+应用内部关联。&lt;/p&gt;
&lt;p&gt;可以 &lt;strong&gt;2分钟&lt;/strong&gt;快速实现 gitea 应用的部署，&lt;strong&gt;5分钟&lt;/strong&gt;完成初始化，&lt;strong&gt;10分钟&lt;/strong&gt;完成反向代理配置。&lt;/p&gt;
&lt;p&gt;之后，就可以同步自己的代码到gitea 仓库中了。&lt;/p&gt;
&lt;p&gt;感兴趣的话，不妨参考本文一步一步操作完成。&lt;/p&gt;
&lt;h3 id=&#34;11-gitea-应用创建&#34;&gt;1.1 Gitea 应用创建
&lt;/h3&gt;&lt;p&gt;首先在 &lt;strong&gt;&amp;ldquo;应用商店&amp;rdquo; -&amp;gt; &amp;ldquo;全部&amp;rdquo; -&amp;gt; &amp;ldquo;搜索&amp;rdquo;&lt;/strong&gt; 栏中输入 gitea 关键字，找到可以安装的应用。&lt;/p&gt;
&lt;p&gt;注意点击 第一个 &lt;strong&gt;Gitea&lt;/strong&gt; &amp;ldquo;安装&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423105639274.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;如果 1Panel 中没有安装过数据库服务，会有需要安装数据库的提醒（如下图）——&lt;/p&gt;
&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423105949887.png&#34; style=&#34;zoom:50%;&#34; /&gt;
&lt;p&gt;如果是这种情况，就&lt;strong&gt;需要先安装数据库&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;点击&amp;quot;去安装&amp;quot;后，直接跳转到&lt;strong&gt;数据库安装界&lt;/strong&gt;面——&lt;/p&gt;
&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423110438421.png&#34; style=&#34;zoom:50%;&#34; /&gt;
&lt;p&gt;点击**&amp;ldquo;确认&amp;rdquo;** 按键，等待数据库安装完成。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423110641229.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果点击&amp;quot;安装&amp;quot; 后，提示：&amp;ldquo;未开启外部映射，将无法从外外网访问数据库服务&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;可以根据自己需求，再勾选 &amp;ldquo;高级设置&amp;quot;中的 &amp;ldquo;端口外部访问&amp;quot;选项。&lt;/p&gt;
&lt;p&gt;一般&lt;strong&gt;不建议&lt;/strong&gt; 直接开放数据库服务到外部，所以我这里默认不启用此功能。&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;再次回到Gitea 安装界面，数据库服务可以选择刚创建好的postgres 了。&lt;/p&gt;
&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423111041133.png&#34; style=&#34;zoom:50%;&#34; /&gt;
&lt;p&gt;因为，稍后使用 ssh 协议同步代码，需要访问 gitea 的ssh 服务，这里需要勾选 &amp;ldquo;端口外部访问&amp;rdquo; 的选项。&lt;/p&gt;
&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423111209507.png&#34; style=&#34;zoom:50%;&#34; /&gt;
&lt;p&gt;点击&amp;quot;确认&amp;quot;后，就开始自动安装 gitea 应用了。&lt;/p&gt;
&lt;p&gt;安装成功后，可以在应用商店中看到刚新增的两个应用——&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423111647878.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;12-追加反代配置&#34;&gt;1.2 追加反代配置
&lt;/h3&gt;&lt;p&gt;默认安装完成时，gitea 应用的web 服务绑定在宿主机的 3000端口。对应我的主机就是 &lt;a class=&#34;link&#34; href=&#34;http://lab.nxlan.cn:3000&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://lab.nxlan.cn:3000&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;如果1Panel 在你的内部局域网，就可以直接访问上述页面，进行后续初始化工作。（可以跳过本段）&lt;/p&gt;
&lt;p&gt;但是，如果gitea 宿主机在云上，又怎么能直接访问这个管理页面呢？&lt;/p&gt;
&lt;p&gt;一种方式就是：追加反向代理配置，通过已经上线的https 服务，代理/gitea 流量到 http://127.0.0.1:3000 的真实服务。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;还有一种方法是：登录到云主机 管理页面，在&lt;strong&gt;安全策略&lt;/strong&gt;下，追加一条——放行公网访问主机 3000 端口的策略。&lt;/p&gt;
&lt;p&gt;考虑到：这样临时放行后，还是要取消并开通反代，我就没有这么操作。&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;操作步骤上，还是先进入**&amp;ldquo;网站&amp;rdquo; -&amp;gt; &amp;ldquo;反向代理&amp;rdquo; -&amp;gt; &amp;ldquo;创建&amp;rdquo;**， 创建一条新代理规则，请求路径假设就是 /gitea。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423112918360.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;并在原始代理配置文件内容基础上追加——&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;location ^~ /gitea &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# 追加配置：去掉 /gitea 前缀，发给后端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    rewrite ^/gitea&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;/.*&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;$ &lt;span class=&#34;nv&#34;&gt;$1&lt;/span&gt; break&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# --- 默认设置 ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_pass http://127.0.0.1:3000&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header Host &lt;span class=&#34;nv&#34;&gt;$host&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header X-Real-IP &lt;span class=&#34;nv&#34;&gt;$remote_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header X-Forwarded-For &lt;span class=&#34;nv&#34;&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header REMOTE-HOST &lt;span class=&#34;nv&#34;&gt;$remote_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header Upgrade &lt;span class=&#34;nv&#34;&gt;$http_upgrade&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header Connection &lt;span class=&#34;nv&#34;&gt;$http_connection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header X-Forwarded-Proto &lt;span class=&#34;nv&#34;&gt;$scheme&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_set_header X-Forwarded-Port &lt;span class=&#34;nv&#34;&gt;$server_port&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_http_version 1.1&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    add_header X-Cache &lt;span class=&#34;nv&#34;&gt;$upstream_cache_status&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_ssl_server_name off&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    proxy_ssl_name &lt;span class=&#34;nv&#34;&gt;$proxy_host&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;保存反代配置后，进入gitea 配置文件目录——&lt;u&gt;/opt/1panel/apps/gitea/gitea/data/gitea/conf&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;修改配置文件app.ini中的一条配置：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;server&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;APP_DATA_PATH&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; /data/gitea
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;DOMAIN&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; localhost
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SSH_DOMAIN&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; localhost
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HTTP_PORT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 修改为自己外部域名和代理接口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROOT_URL&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; https://lab.nxlan.cn/gitea/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;DISABLE_SSH&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SSH_PORT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;22&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SSH_LISTEN_PORT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;22&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LFS_START_SERVER&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;修改好后，重启gitea 应用新配置。再次访问反代地址—— &lt;a class=&#34;link&#34; href=&#34;https://lab.nxlan.cn/gitea&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://lab.nxlan.cn/gitea&lt;/a&gt;，就可以看到初始化配置页面了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423114750315.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;13-完成应用初始化&#34;&gt;1.3 完成应用初始化
&lt;/h3&gt;&lt;p&gt;在上述初始化页面中，1Panel 已经帮我们补充好了数据库地址、名称、用户、密码等信息。&lt;/p&gt;
&lt;p&gt;这里保持默认，点击 &lt;strong&gt;&amp;ldquo;立即安装&amp;rdquo;&lt;/strong&gt; 完成最后的初始化工作。&lt;/p&gt;
&lt;p&gt;最后，完成管理员账户的设置——&lt;/p&gt;
&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423115342985.png&#34; style=&#34;zoom:50%;&#34; /&gt;
&lt;p&gt;管理账户创建后，重新登录。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423115555538.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;14-同步代码至仓库&#34;&gt;1.4 同步代码至仓库
&lt;/h3&gt;&lt;p&gt;同步本地写好的代码前，需要先在 Gitea 上创建仓库。&lt;/p&gt;
&lt;p&gt;我们的第一个代码仓库，名字就叫 &amp;ldquo;jobsearch-mcp-server&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;为了方便mcp server 拉取项目代码，项目可见性不勾选 &amp;ldquo;将仓库设为私有&amp;rdquo;——也就是公开的意思。&lt;/p&gt;
&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423115908283.png&#34; style=&#34;zoom:50%;&#34; /&gt;
&lt;p&gt;其他保持默认，这样我们第一个代码仓库就创建完成了。&lt;/p&gt;
&lt;p&gt;仓库创建完后，需要追加个人应用 访问令牌——方便开发主机同步代码。&lt;/p&gt;
&lt;p&gt;在 &lt;strong&gt;&amp;ldquo;个人信息&amp;rdquo; -&amp;gt; &amp;ldquo;应用&amp;rdquo; -&amp;gt; &amp;ldquo;生成新的令牌&amp;rdquo;&lt;/strong&gt; 中 输入令牌名称，并追加repository 等读写的权限。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423122033363.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;添加成功后，会出现一行令牌字符串，类似于——a385cac305f80ff43dfe202d727b5a33176d18b3&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423123926927.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;在开发主机上，按照以下命令顺序执行，同步代码到gitea 仓库：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# git 项目初始化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查看当前 remote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 删除过往 remote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote remove origin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 追加&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote add origin https://pdream:&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;TOKEN&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;@lab.nxlan.cn/gitea/pdream/jobsearch-mcp-server.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 推送本地代码到仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push --set-upstream origin master
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enumerating objects: 52, &lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Counting objects: 100% &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;52/52&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;, &lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Delta compression using up to &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt; threads
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Compressing objects: 100% &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;42/42&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;, &lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Writing objects: 100% &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;52/52&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;, 100.22 KiB &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; 5.90 MiB/s, &lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Total &lt;span class=&#34;m&#34;&gt;52&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;delta 19&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;, reused &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;delta 0&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;, pack-reused &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;remote: . Processing &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; references
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;remote: Processed &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; references in total
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;To https://lab.nxlan.cn/gitea/pdream/jobsearch-mcp-server.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; * &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;new branch&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;      master -&amp;gt; master
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;branch &lt;span class=&#34;s1&#34;&gt;&amp;#39;master&amp;#39;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; up to track &lt;span class=&#34;s1&#34;&gt;&amp;#39;origin/master&amp;#39;&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;提示同步成功。此时访问仓库页面，就可以看到刚上传的代码了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimage-20260423130025098.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二1panel-mcp-server-部署从-gitea-拉取&#34;&gt;二、1Panel MCP Server 部署（从 Gitea 拉取）
&lt;/h2&gt;&lt;h3 id=&#34;21-场景&#34;&gt;2.1 场景
&lt;/h3&gt;&lt;p&gt;在 1Panel 上通过 MCP 管理界面部署 MCP Server时，因为源代码在个人 Gitea上，所以在MCP server 启动要指定git项目地址。&lt;/p&gt;
&lt;h3 id=&#34;22-正确启动命令&#34;&gt;2.2 正确启动命令
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;经过反代服务器（推荐）&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/bin/sh -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;apk add git &amp;amp;&amp;amp; uvx --from git+https://lab.nxlan.cn/gitea/pdream/jobsearch-mcp-server jobsearch-mcp-server --transport stdio&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;直连 Gitea（不经反代，数据未加密）&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/bin/sh -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;apk add git &amp;amp;&amp;amp; uvx --from git+http://lab.nxlan.cn:3000/pdream/jobsearch-mcp-server.git jobsearch-mcp-server --transport stdio&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;参数说明&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--transport stdio&lt;/code&gt; — 1Panel MCP 托管必须使用 stdio 传输模式（解决 SSE 嵌套冲突）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;23-注意事项&#34;&gt;2.3 注意事项
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;路径格式&lt;/strong&gt;：&lt;code&gt;git+https://&lt;/code&gt; 而非本地路径，容器内无法访问宿主机文件系统&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;传输模式&lt;/strong&gt;：必须加 &lt;code&gt;--transport stdio&lt;/code&gt;，否则与 1Panel MCP 托管机制冲突&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;反代 vs 直连&lt;/strong&gt;：经反代走 443 端口（SSL 由反代终止），直连走 3000 数据不经加密传输（服务直接暴露在公网）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;环境变量&lt;/strong&gt;：在jobserch 这个 MCP Server 项目中需要声明环境变量 &amp;ldquo;DEEPSEEK_API_KEY&amp;rdquo;，否则提示 &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; 未配置。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;三补充-使用ssh方式同步代码&#34;&gt;三、补充 ：使用ssh方式同步代码
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;前提：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Gitea 应用创建时，勾选了 &lt;strong&gt;&amp;ldquo;端口外部访问&amp;rdquo;&lt;/strong&gt; 的选项。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;31-ssh-key-生成&#34;&gt;3.1 SSH Key 生成
&lt;/h3&gt;&lt;p&gt;开发主机&lt;strong&gt;密钥生成&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh-keygen -t ed25519 -C &lt;span class=&#34;s2&#34;&gt;&amp;#34;your_email@xx.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 输出：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#   id_ed25519      (私钥)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#   id_ed25519.pub  (公钥)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;添加主机的ssh key到 Gitea&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查看公钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat ~/.ssh/id_ed25519.pub
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 复制内容 → Gitea Web UI → 用户设置 → SSH 密钥 → 添加&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证连通性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh -p &lt;span class=&#34;m&#34;&gt;222&lt;/span&gt; git@lab.nxlan.cn -T
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 预期：Welcome to Gitea!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;仓库 ssh 密钥截图&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://r2.blog.nxlan.cn/PicGoimg_v3_02110_589f6a24-6bd5-4fe0-bb73-2bd33563a16g.jpg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;32-修改git-remote-配置&#34;&gt;3.2 修改git remote 配置
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 删除之前的 remote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote remove origin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 将 之前配置的 HTTPS 改为 SSH（注意端口 222）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote set-url origin ssh://git@lab.nxlan.cn:222/pdream/jobsearch-mcp-server.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote -v
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;33-http-与-ssh-的分工&#34;&gt;3.3 HTTP 与 SSH 的分工
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;通道&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
          &lt;th&gt;使用场景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;HTTP（S）&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;拉取&lt;/strong&gt;源代码&lt;/td&gt;
          &lt;td&gt;MCP Server 容器内 &lt;code&gt;uvx --from git+https://...&lt;/code&gt; 从 Gitea 拉代码&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;HTTP（S）&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;上传&lt;/strong&gt;源代码&lt;/td&gt;
          &lt;td&gt;本地编辑完成后 &lt;code&gt;git push&lt;/code&gt; 将代码同步回 Gitea。此时origin为： https://pdream:[TOKEN]@lab.nxlan.cn/gitea/pdream/jobsearch-mcp-server.git&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;SSH&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;上传&lt;/strong&gt;源代码&lt;/td&gt;
          &lt;td&gt;本地编辑完成后 &lt;code&gt;git push&lt;/code&gt; 将代码同步回 Gitea 。此时origin为： ssh://git@lab.nxlan.cn:222/pdream/jobsearch-mcp-server.git&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;本例实战&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MCP Server 部署：容器通过 &lt;strong&gt;HTTPS&lt;/strong&gt; 拉取 &lt;code&gt;jobsearch-mcp-server&lt;/code&gt; 源码&lt;/li&gt;
&lt;li&gt;代码编辑后推送：本地也通过 &lt;strong&gt;HTTPS&lt;/strong&gt; 方式 ( &lt;code&gt;https://pdream:[TOKEN]@lab.nxlan.cn/...&lt;/code&gt;) 提交到 Gitea&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;两者各司其职，不冲突。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;四mcp-server-排错速查&#34;&gt;四、mcp server 排错速查
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;症状&lt;/th&gt;
          &lt;th&gt;原因&lt;/th&gt;
          &lt;th&gt;解法&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;uvx --from /path/to/repo&lt;/code&gt; 报错&lt;/td&gt;
          &lt;td&gt;容器内无法访问宿主机路径&lt;/td&gt;
          &lt;td&gt;改用 &lt;code&gt;git+https://&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;git clone&lt;/code&gt; 卡住/超时&lt;/td&gt;
          &lt;td&gt;容器网络不通或缺 git&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;apk add git&lt;/code&gt;，检查网络&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;SSL certificate problem&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;自签证书&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git config --global http.sslVerify false&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;容器启动后立刻退出&lt;/td&gt;
          &lt;td&gt;缺环境变量&lt;/td&gt;
          &lt;td&gt;检查 &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; 等必填变量&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SSH 克隆认证失败&lt;/td&gt;
          &lt;td&gt;端口非 22&lt;/td&gt;
          &lt;td&gt;确认 Gitea SSH 端口为 &lt;strong&gt;222&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;五principle经验规则&#34;&gt;五、Principle（经验规则）
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;supergateway 容器内操作默认缺 git，&lt;strong&gt;先用 &lt;code&gt;apk add git&lt;/code&gt; 兜底&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;MCP server 启动命令只支持单字段，&lt;strong&gt;用 &lt;code&gt;/bin/sh -c&lt;/code&gt; 串联多条指令&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;使用 HTTPS 服务推送源代码时，注意&lt;strong&gt;令牌权限&lt;/strong&gt;要给够，否则会报告 403 的错误&lt;/li&gt;
&lt;li&gt;Gitea SSH 端口&lt;strong&gt;映射为 222&lt;/strong&gt;，配置 remote 时需注意指定端口&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        
    </channel>
</rss>
