The WeChat Official Account Auto-Publisher: A Plain-English Guide for Junior-College Graduates
If you have already used Docker to spin up a blog or asked ChatGPT to draft a weekly report, this guide will save you three days of trial and error. If you have never touched Flask before, follow the steps line-by-line and the system will still run. Everything you are about to read comes only from the official README—nothing has been added from outside sources.
Table of Contents
-
What Exactly Does This Tool Do for Me? -
Can My Machine Handle It? -
The 15-Minute Express Install -
Manual Install: Smaller Footprint, Full Control -
Three Things to Do After First Login -
The Daily Workflow: Create, Rewrite, Schedule, Review -
Ten Real-World Questions (FAQ) -
Going Further: Plug-ins, Templates, and Clusters -
Checklist for Backups, Upgrades, and Troubleshooting -
Final Word: Spend the Saved Time on Better Topics
1. What Exactly Does This Tool Do for Me?
Feature | One-Sentence Summary | When You’ll Use It |
---|---|---|
AI Content Generation | Type a topic → get a draft → tweak and go | Breaking-news posts, quick fill-ins |
Smart Crawler & Rewrite | Import any article → AI paraphrases → keeps images | Industry round-ups, weekly digests |
Auto Image Creation | Headline in, DALL-E or Stable Diffusion cover out | No Photoshop skills needed |
Markdown to WeChat HTML | Paste Markdown → perfect WeChat layout | Re-posting blog articles |
Scheduled Publishing | Like an alarm clock for posts | Holidays, long flights |
Analytics Dashboard | Reads, likes, shares in one chart | End-of-month reporting |
Bottom line: the system handles the repetitive parts of “write, schedule, publish, measure,” so you focus on ideas and polish.
2. Can My Machine Handle It?
Item | Minimum | Comfortable |
---|---|---|
Docker Engine | 20.10 or newer | 24.x |
Docker Compose | 2.0 or newer | 2.20 |
CPU | 2 cores | 4 cores |
RAM | 4 GB | 8 GB |
Disk | 20 GB free | 50 GB SSD |
Internet | GitHub and OpenAI reachable | Stable connection preferred |
You can run everything on localhost
without a domain. For production, a registered domain and HTTPS are strongly recommended.
3. The 15-Minute Express Install
Ideal for personal accounts, test accounts, or anyone who just wants the job done.
Step List
-
Clone the repository git clone https://github.com/Canqiang/wechat-auto-publisher.git cd wechat-auto-publisher
-
Run the one-liner setup chmod +x scripts/init-project.sh ./scripts/init-project.sh
The script creates directories, generates a self-signed SSL certificate, and pulls Docker images.
-
Edit the essentials cp .env.example .env nano .env
Fill in at least these three lines:
OPENAI_API_KEY=sk-xxx WECHAT_APP_ID=wx1234567890 WECHAT_APP_SECRET=xxxx
-
Start everything docker-compose up -d
-
Open your browser at https://localhost
Default login:admin / admin123
—change it immediately.
4. Manual Install: Smaller Footprint, Full Control
For users who already have PostgreSQL, want to use their own Nginx, or run on ARM machines.
-
Create required folders mkdir -p data/{logs,images,uploads} ssl
-
Generate a self-signed SSL (testing only) ./scripts/generate-ssl.sh
In production, use Certbot or your CA.
-
Bring up just the database and cache docker-compose up -d db redis
-
Initialize the database docker-compose exec db psql -U user -d wechat_auto -f /var/lib/postgresql/data/init.sql
-
Start the remaining services docker-compose up -d
5. Three Things to Do After First Login
Order | Menu Path | Action | Why It Matters |
---|---|---|---|
① | Settings → LLM Config | Paste your OpenAI or Claude key and base URL | No key, no AI drafts |
② | Settings → WeChat Config | Enter AppID, AppSecret, and server URL | Must match the URL you set in WeChat’s backend: https://yourdomain.com/api/wechat/callback |
③ | Settings → Crawler Config | Add one or two WeChat article URLs | Optional, but unlocks the rewrite feature |
6. The Daily Workflow: Create, Rewrite, Schedule, Review
6.1 Create: Let AI Draft the Article
Steps
-
Articles → AI Generate -
Topic: “How to Choose Summer Camping Gear” -
Style: “Friendly explainer,” length 800–1,000 words -
Click Generate; a draft appears in 30 s -
Quick polish → Save
6.2 Rewrite: Crawler + Paraphrase
Steps
-
Articles → Crawl Articles -
Pick a trending 100 k+ view article -
System rewrites, keeps images, removes duplicates -
Manual compliance check → Save
6.3 Schedule: Set and Forget
Steps
-
Publishing Schedule → New Plan -
Select the article “How to Choose Summer Camping Gear” -
Set time “Tomorrow 08:00,” frequency “Once” -
Save; the system will push it automatically
6.4 Review: Read the Dashboard
Next morning, open Analytics
-
12 k reads, 300+ shares -
Heat-map shows 08:00 is the peak
→ Use the same slot next time
7. Ten Real-World Questions (FAQ)
Q1: Can I use a domestic AI provider?
A: If the endpoint is OpenAI-compatible, just change OPENAI_BASE_URL
.
Q2: Docker port conflict?
A: Edit BACKEND_PORT
and FRONTEND_PORT
in .env
then docker-compose up -d
.
Q3: Daily post limits?
A: Subscription accounts: 1 post; service accounts: 4 posts. The system warns and e-mails you if you exceed.
Q4: Copyright on AI images?
A: DALL-E and Stable Diffusion outputs are generally safe for commercial use, but always review.
Q5: How do I back up?
A:
./scripts/backup.sh
Creates backup-2025-08-18.tar.gz
with data and DB dump.
Q6: Will an upgrade erase data?
A: Upgrades replace only the images; volumes keep your data intact.
Q7: Change the front-end theme?
A: Front-end is React + Ant Design. Edit frontend/src/styles/global.less
then docker-compose build frontend
.
Q8: Where are the logs?
A:
docker-compose logs -f backend
docker-compose logs -f frontend
Q9: Use my own PostgreSQL?
A: Point DATABASE_URL
to the external instance, e.g.
DATABASE_URL=postgresql://user:pass@172.17.0.1:5432/wechat_auto
Q10: ARM machine support?
A: Official images support both linux/amd64 and linux/arm64; no extra steps needed.
8. Going Further: Plug-ins, Templates, and Clusters
8.1 Custom LLM Service
Extend the base class in backend/services/llm_service.py
and implement the generate()
method to plug in any new model.
8.2 Add New Crawler Sources
Implement the CrawlerInterface
with a fetch()
method returning uniform JSON, then register it in backend/services/crawler.py
.
8.3 Template Market
Markdown-to-WeChat style templates live in backend/services/markdown_converter.py
. Clone and tweak the CSS to create “minimal white,” “tech black,” or brand themes.
8.4 Horizontal Scaling
docker-compose up -d --scale backend=3
Nginx load balancing is already configured; no extra work.
9. Checklist for Backups, Upgrades, and Troubleshooting
Scenario | Command | Rollback |
---|---|---|
Before upgrade | ./scripts/backup.sh |
Restore from .tar.gz |
Upgrade | docker-compose pull && docker-compose up -d |
Done in 30 s |
Disk full | docker system prune -f |
Frees dangling images |
Accidental DB delete | docker-compose exec db psql -U user -d wechat_auto < backup.sql |
5 min restore |
Forgot admin password | SQL: update users set password='newhash' |
CLI reset |
10. Final Word: Spend the Saved Time on Better Topics
All technical steps are now on the table: Docker-savvy users can be up in 15 minutes; newcomers can still follow the “Manual Install” section line-by-line.
The hard part was never the tooling—it is the steady production of good topics. Let this system handle the mechanical chores, then devote the reclaimed hours to field research, factory visits, and reader interviews.
May your account read more like a magazine and less like a stack of AI drafts.
Happy publishing!