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

  1. What Exactly Does This Tool Do for Me?
  2. Can My Machine Handle It?
  3. The 15-Minute Express Install
  4. Manual Install: Smaller Footprint, Full Control
  5. Three Things to Do After First Login
  6. The Daily Workflow: Create, Rewrite, Schedule, Review
  7. Ten Real-World Questions (FAQ)
  8. Going Further: Plug-ins, Templates, and Clusters
  9. Checklist for Backups, Upgrades, and Troubleshooting
  10. 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

  1. Clone the repository

    git clone https://github.com/Canqiang/wechat-auto-publisher.git
    cd wechat-auto-publisher
    
  2. 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.

  3. 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
    
  4. Start everything

    docker-compose up -d
    
  5. 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.

  1. Create required folders

    mkdir -p data/{logs,images,uploads} ssl
    
  2. Generate a self-signed SSL (testing only)

    ./scripts/generate-ssl.sh
    

    In production, use Certbot or your CA.

  3. Bring up just the database and cache

    docker-compose up -d db redis
    
  4. Initialize the database

    docker-compose exec db psql -U user -d wechat_auto -f /var/lib/postgresql/data/init.sql
    
  5. 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

  1. Articles → AI Generate
  2. Topic: “How to Choose Summer Camping Gear”
  3. Style: “Friendly explainer,” length 800–1,000 words
  4. Click Generate; a draft appears in 30 s
  5. Quick polish → Save

6.2 Rewrite: Crawler + Paraphrase

Steps

  1. Articles → Crawl Articles
  2. Pick a trending 100 k+ view article
  3. System rewrites, keeps images, removes duplicates
  4. Manual compliance check → Save

6.3 Schedule: Set and Forget

Steps

  1. Publishing Schedule → New Plan
  2. Select the article “How to Choose Summer Camping Gear”
  3. Set time “Tomorrow 08:00,” frequency “Once”
  4. 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!