<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>FastAPI on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/fastapi/</link>
        <description>Recent content in FastAPI on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sat, 06 Jun 2026 19:16:35 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/fastapi/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>How to use xianyu-auto-reply? Xianyu automatic reply system functions and deployment notes</title>
        <link>https://knightli.com/en/2026/06/06/xianyu-auto-reply-guide/</link>
        <pubDate>Sat, 06 Jun 2026 19:16:35 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/06/06/xianyu-auto-reply-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;zhinianboke/xianyu-auto-reply&lt;/code&gt; is an automated management system for Xianyu scenarios. It is not an automatic reply script with only a few lines of rules, but a complete web system that puts account management, message sending and receiving, automatic replies, AI replies, automatic shipping, product release, order processing and backend management together.&lt;/p&gt;
&lt;p&gt;If you just want to add a few keyword replies to Xianyu messages, it may be a bit heavy; if you are also doing virtual goods, coupon shipping, multi-account management, automatic evaluation and product release, its functional coverage is relatively complete.&lt;/p&gt;
&lt;h2 id=&#34;what-can-this-project-do&#34;&gt;What can this project do?
&lt;/h2&gt;&lt;p&gt;Judging from the project README, the main system mainly covers these modules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple account management: supports multiple Xianyu account logins, status switching, cookie maintenance and login renewal;&lt;/li&gt;
&lt;li&gt;Automatic reply: supports text keywords, image keywords, default replies and product-specific replies;&lt;/li&gt;
&lt;li&gt;AI reply: supports access to large models for contextual dialogue and intelligent replies;&lt;/li&gt;
&lt;li&gt;Automatic delivery: supports coupons, virtual goods, automatic reissue and delivery records;&lt;/li&gt;
&lt;li&gt;Online chat: Provides conversation list, messaging and chat linkage;&lt;/li&gt;
&lt;li&gt;Product release: supports material library, address library, single product release, batch release and release log;&lt;/li&gt;
&lt;li&gt;Orders and evaluation: Supports order pulling, automatic evaluation, request for red flowers and status tracking;&lt;/li&gt;
&lt;li&gt;Commodity collection and distribution: including Goofish collection, supply management and settlement links;&lt;/li&gt;
&lt;li&gt;Notification and risk control: including message notification, risk control log, system feedback and announcement management.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a &lt;code&gt;promotion&lt;/code&gt; rebate subsystem in the project, which is used to manage rebate accounts, product selection rules, material libraries, publishing rules, deletion rules and compensation tasks. However, the README also states that Docker Compose in the root directory only covers the main system by default, and the rebate subsystem needs to be started separately.&lt;/p&gt;
&lt;h2 id=&#34;technology-stack-and-system-structure&#34;&gt;Technology stack and system structure
&lt;/h2&gt;&lt;p&gt;The technology stack of this project is relatively typical:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backend: FastAPI, SQLAlchemy 2.0, Loguru;&lt;/li&gt;
&lt;li&gt;Database: MySQL 8.0;&lt;/li&gt;
&lt;li&gt;Cache and task assistance: Redis 7;&lt;/li&gt;
&lt;li&gt;Browser automation: Playwright, Chromium / Chrome;&lt;/li&gt;
&lt;li&gt;Scheduled tasks: APScheduler;&lt;/li&gt;
&lt;li&gt;Front-end: React 18, TypeScript, Vite, TailwindCSS, Zustand, Lucide React;&lt;/li&gt;
&lt;li&gt;Deployment: Docker, Docker Compose, Nginx.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The service split is also relatively clear:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;Default Port&lt;/th&gt;
          &lt;th&gt;Function&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;9000&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Main system front end&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;backend-web&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;8089&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Main system API gateway and business interface&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;websocket&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;8090&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Xianyu WebSocket, messaging, login and order linkage&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;scheduler&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;8091&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Automatic shipping, evaluation, order pulling, cookie refresh and other scheduled tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;promotion/backend&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;8092&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Rebate backend API&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;promotion/frontend&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;9001&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Rebate front end&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The dependencies of the main system are roughly:&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;/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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mysql / redis -&amp;gt; backend-web -&amp;gt; websocket -&amp;gt; scheduler
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;frontend -&amp;gt; backend-web
&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;That is, it is not a single-container application. Before deployment, it is best to confirm that the server port, memory, database persistence and reverse proxy are all arranged.&lt;/p&gt;
&lt;h2 id=&#34;server-deployment-method&#34;&gt;Server deployment method
&lt;/h2&gt;&lt;p&gt;It is recommended to use Docker and Docker Compose for project deployment. The server needs to be installed first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker 20.10+&lt;/li&gt;
&lt;li&gt;Docker Compose 2.0+&lt;/li&gt;
&lt;li&gt;Minimum 2-core CPU / 4GB RAM&lt;/li&gt;
&lt;li&gt;Recommended 4-core CPU / 8GB RAM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The one-click deployment command given by README is:&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;curl -fsSL https://xy-update.zhinianboke.com/deploy.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sed &lt;span class=&#34;s1&#34;&gt;&amp;#39;s/\r$//&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&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;The update command is:&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;curl -fsSL https://xy-update.zhinianboke.com/update.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sed &lt;span class=&#34;s1&#34;&gt;&amp;#39;s/\r$//&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&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;If you want to see the script content clearly yourself, you can clone the repository first and then deploy:&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;/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;git clone https://github.com/zhinianboke/xianyu-auto-reply.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;nb&#34;&gt;cd&lt;/span&gt; xianyu-auto-reply
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash deploy.sh
&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;The first run will automatically generate the &lt;code&gt;.env&lt;/code&gt; configuration file and &lt;code&gt;docker-compose.deploy.yml&lt;/code&gt;, and pull the pre-built image to start the service. After deployment is complete, the default access address is usually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frontend: &lt;code&gt;http://服务器IP:9000&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;API documentation: &lt;code&gt;http://服务器IP:8089/docs&lt;/code&gt;
-Default account: &lt;code&gt;admin&lt;/code&gt; / &lt;code&gt;admin123&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&amp;rsquo;s a very practical suggestion: don&amp;rsquo;t blindly run remote scripts directly on the production server. At least run it on a test machine first, or download the script and check it clearly. It will create configurations, pull images, clean up old containers and start services, and the scope of permissions is not small.&lt;/p&gt;
&lt;h2 id=&#34;local-source-code-build&#34;&gt;Local source code build
&lt;/h2&gt;&lt;p&gt;If you want to build from source, you can execute in the root directory of the repository:&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;bash build.sh rebuild
&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;Commonly used commands include:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Command&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bash build.sh rebuild&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Delete old containers and images, rebuild and start&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bash build.sh start&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Start service&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bash build.sh stop&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Stop service&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bash build.sh restart&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Restart service&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bash build.sh logs&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;View real-time logs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bash build.sh status&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Check service status&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You can also rebuild a service individually:&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;bash build_frontend.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash build_backend_web.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash build_websocket.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash build_scheduler.sh
&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;Python 3.11+, Node.js 18+, MySQL, Redis and Chromium/Chrome are also required for source code development. Playwright is used in the backend service. If the browser is missing when logging in or publishing, you need to execute:&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;python -m playwright install chromium
&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;h2 id=&#34;things-that-must-be-changed-after-deployment&#34;&gt;Things that must be changed after deployment
&lt;/h2&gt;&lt;p&gt;The default administrator account for this project is:&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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;admin / admin123
&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;The first thing to do after the deployment is completed is to change the password. As long as the front-end port is exposed to the public network, the default password is equivalent to handing over the backend.&lt;/p&gt;
&lt;p&gt;Also check these configurations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CORS_ORIGINS&lt;/code&gt;: Do not use &lt;code&gt;*&lt;/code&gt; directly in the production environment;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BACKEND_WEB_PUBLIC_URL&lt;/code&gt;: used to generate external file URL, which must be filled in correctly after reverse proxy;&lt;/li&gt;
&lt;li&gt;HTTPS: It is best to use HTTPS for external network access;&lt;/li&gt;
&lt;li&gt;MySQL data volume: automatic shipping, products, orders, and account status are all in it and must be backed up;&lt;/li&gt;
&lt;li&gt;Static resource directory: involving pictures, materials, and file URLs, which must also be included in the backup;&lt;/li&gt;
&lt;li&gt;Playwright browser environment: automatic login, cookie refresh, and publishing functions all rely on it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are only testing on your own internal network, you can first use the LAN IP to access it; if you want to use it on the public network, it is recommended to put it behind a reverse proxy and limit the access scope of the management background.&lt;/p&gt;
&lt;h2 id=&#34;who-is-it-suitable-for&#34;&gt;Who is it suitable for?
&lt;/h2&gt;&lt;p&gt;This program is more suitable for these people:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you have multiple Xianyu accounts, you need to check the messages and status in a unified manner;&lt;/li&gt;
&lt;li&gt;To make virtual goods or coupons, automatic delivery and reissue records are required;&lt;/li&gt;
&lt;li&gt;Frequently answer similar questions repeatedly, hoping to use keywords or AI replies to reduce the workload;&lt;/li&gt;
&lt;li&gt;Have some experience in using servers and Docker;&lt;/li&gt;
&lt;li&gt;Able to maintain MySQL, Redis, container logs and backups by yourself;&lt;/li&gt;
&lt;li&gt;Understand the risks of platform rules and do not intend to use them to violate regulations or harass you.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not suitable for completely zero-based users. The system has many functions, which also means that deployment, configuration, troubleshooting and risk control are all your own responsibility.&lt;/p&gt;
&lt;h2 id=&#34;risks-and-boundaries&#34;&gt;Risks and Boundaries
&lt;/h2&gt;&lt;p&gt;For tools like Xianyu Automation, what you really need to pay attention to is not &amp;ldquo;whether it can run&amp;rdquo;, but &amp;ldquo;whether something will happen after running&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;There are at least a few risks that you need to think about in advance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Platform rules risks: automatic replies, automatic publishing, and automatic shipping may touch platform risk control;&lt;/li&gt;
&lt;li&gt;Account risk: Cookie maintenance, WebSocket connection and browser automation may cause account abnormalities;&lt;/li&gt;
&lt;li&gt;Data risk: account information, orders, chat records, and shipping materials must be protected;&lt;/li&gt;
&lt;li&gt;Security risks: Do not expose the backend, API documents, and database ports to the public network casually;&lt;/li&gt;
&lt;li&gt;Compliance risk: The README clearly states that the project is only for learning and research, and reminds not to use it for behavior that violates platform rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, this project adopts the AGPL-3.0 license, and the README specifically states &amp;ldquo;No commercial use&amp;rdquo;. If you want to re-develop and deploy it to others, or put it into business processes, it is best to carefully read the restrictions of LICENSE and README first, and don’t just look at the function list.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;zhinianboke/xianyu-auto-reply&lt;/code&gt; is positioned more like an automated backend for Xianyu, rather than a simple automatic reply script. Its advantage is that it has a wide range of functions. The main system includes accounts, chats, replies, shipments, releases, orders and risk control logs. The technology stack is also relatively modern, and the Docker deployment path is relatively clear.&lt;/p&gt;
&lt;p&gt;But its threshold is not low either. You need to be able to deploy services, manage databases, handle the Playwright environment, modify default accounts, configure reverse proxy and backup data. More importantly, Xianyu Automation itself has platform rules and account risk control risks.&lt;/p&gt;
&lt;p&gt;My suggestion is: first run through the main system in the test environment, connect only one low-risk account, and then consider whether to expand the scope of use after confirming that the reply, delivery and order processes are stable. Don&amp;rsquo;t connect multiple important accounts and real transactions right away.&lt;/p&gt;
&lt;h2 id=&#34;reference-sources&#34;&gt;Reference sources
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/zhinianboke/xianyu-auto-reply/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;zhinianboke/xianyu-auto-reply - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
