Wechat Official Editor

Goal

  • Run the WeChat Official Account editor as a Docker container.
  • Persist data with volumes.
  • Expose it at woeditor.manxialiu.org behind Nginx + TLS.

Prerequisites

  • A working Docker + Docker Compose setup.
  • An Nginx reverse proxy container (or host Nginx).
  • A Certbot flow that can issue/renew certs for woeditor.manxialiu.org.

I’m assuming you already use the shared nginx + certbot pattern from the other services.

Docker Compose service

Add a service to your existing compose.yml.

Replace:

  • REPLACE_WITH_IMAGE with the actual image name.
  • INTERNAL_PORT with the port the app listens on inside the container.
  woeditor:
    image: REPLACE_WITH_IMAGE
    container_name: woeditor
    restart: unless-stopped
    environment:
      TZ: "UTC"
      # Add app-specific env vars here.
    volumes:
      - ./woeditor/data:/data
      # Add other persistent paths required by the app.
    expose:
      - "INTERNAL_PORT"

Don’t publish the app port directly (ports:) if Nginx is the only entry point. Use expose: so it stays internal to the Docker network.

Nginx reverse proxy config

Add a server block for the subdomain.

version: "3.9"

services:
  certbot:
    image: certbot/certbot:latest
    container_name: certbot
    volumes:
      - ./certbot/www:/var/www/certbot
      - ./certbot/conf:/etc/letsencrypt

  nginx:
    image: nginx:alpine
    container_name: nginx
    restart: unless-stopped
    depends_on:
      - freshrss
      - wallabag
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
      - ./certbot/www:/var/www/certbot:ro
      - ./certbot/conf:/etc/letsencrypt:ro

  woeditor:
    image: wechatofficial:latest
    container_name: woeditor
    ports:
      - "5173:5173"
    environment:
      - NODE_ENV=development
    # Hot reload: mount your code into the container
    volumes:
      - ./WechatOfficialEditor:/app
      # Keep container's node_modules (avoids overwriting by the bind mount)
      - /app/node_modules
    command: pnpm web dev --host 0.0.0.0 --port 5173

Certificates

If you’re using a single SAN cert, add woeditor.manxialiu.org to the cert request and re-run Certbot.

docker compose run --rm certbot certonly \
  --webroot -w /var/www/certbot \
  -d woeditor.manxialiu.org \
  --email you@example.com \
  --agree-tos \
  --no-eff-email

Bring it up

docker compose up -d woeditor nginx

Quick checks:

  • docker compose ps
  • docker logs -f woeditor
  • curl -I https://woeditor.manxialiu.org

What I need from you to make this exact

Send these and I’ll tighten the section with concrete values:

  • Docker image name (or repo URL)
  • Internal port the app listens on
  • Any required env vars
  • Any DB requirement (Postgres/MariaDB/SQLite)
  • Which paths must be persisted
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9