wx_channels_download Docker & Self-Hosted Deployment

GitHub

Go repository by @ltaoo. AI agent rules & system prompts with 9.9k stars.

9,882 stars Go Go 175 files · ~97,053 tokens
1. Pull Image (DOCKERHUB) docker pull ltaoo/wx_channels_download:latest
2. Docker Run (1-Click Launch) docker run -d --name wx_channels_download -p 3000:3000 --restart always ltaoo/wx_channels_download:latest
3. Podman Run podman run -d --name wx_channels_download -p 3000:3000 --restart always ltaoo/wx_channels_download:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/ltaoo/wx_channels_download:latest
5. ORAS Pull (OCI Artifact) oras pull ltaoo/wx_channels_download:latest
docker/webtop/Dockerfile
FROM lscr.io/linuxserver/webtop:ubuntu-xfce

ENV DEBIAN_FRONTEND=noninteractive \
    LANG=zh_CN.UTF-8 \
    LC_ALL=zh_CN.UTF-8 \
    LIBGL_ALWAYS_SOFTWARE=1 \
    WX_IN_DOCKER=1 \
    WX_VIDEO_HOME=/config/wx_video_download \
    WX_VIDEO_SEED_HOME=/usr/local/share/wx_video_download \
    WX_CHANNELS_DOWNLOAD_CONFIG_FILEPATH=/config/wx_video_download/config.yaml \
    WECHAT_BIN=/usr/bin/wechat

# Copy files that rarely change and are needed by the install step
COPY SunnyNet.cer /usr/local/share/ca-certificates/SunnyNet.crt
COPY WeChatLinux_arm64.deb /tmp/WeChatLinux_arm64.deb

# Expensive layer: cached as long as base image, cert, and deb don't change
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        locales \
        procps \
        psmisc \
        iproute2 \
        iptables \
        nftables \
        sudo \
        libcap2-bin \
        xdotool \
        xclip \
        libnss3-tools \
        fonts-wqy-zenhei \
        fonts-wqy-microhei \
        fonts-noto-cjk \
        fonts-noto-color-emoji \
        libnss3 \
        libgbm1 \
        libasound2t64 \
        libxss1 \
        libatomic1 \
        libxdamage1 \
        libxkbcommon-x11-0 \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-keysyms1 \
        libxcb-render-util0 \
        libxcb-xkb1 \
        libxcb-cursor0 \
        libgtk-3-0t64 \
        libatk1.0-0t64 \
        libatk-bridge2.0-0t64 \
        libatspi2.0-0t64 \
        libcups2t64 \
        libxcomposite1 \
        libxrandr2 \
        libxfixes3 \
        libxtst6 \
        libxshmfence1 \
        libdrm2; \
    apt-get install -y --no-install-recommends /tmp/WeChatLinux_arm64.deb; \
    sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen; \
    locale-gen; \
    update-ca-certificates; \
    mkdir -p /etc/pki/nssdb; \
    if [ ! -f /etc/pki/nssdb/cert9.db ]; then certutil -d sql:/etc/pki/nssdb -N --empty-password; fi; \
    certutil -d sql:/etc/pki/nssdb -D -n SunnyRoot >/dev/null 2>&1 || true; \
    certutil -d sql:/etc/pki/nssdb -D -n SunnyNet >/dev/null 2>&1 || true; \
    certutil -d sql:/etc/pki/nssdb -A -n SunnyNet -t "CT,C,C" -i /usr/local/share/ca-certificates/SunnyNet.crt; \
    rm -f /tmp/WeChatLinux_arm64.deb; \
    apt-get clean; \
    rm -rf /var/lib/apt/lists/*

# Copy files that change on every release
COPY wx_video_download /usr/local/share/wx_video_download/wx_video_download
COPY config.yaml /usr/local/share/wx_video_download/config.yaml
COPY global.js /usr/local/share/wx_video_download/global.js

RUN set -eux; \
    sed -i '/^api:/,/^[^[:space:]]/s/^\(  hostname:[[:space:]]*\).*/\1"0.0.0.0"/' /usr/local/share/wx_video_download/config.yaml; \
    sed -i '/^proxy:/,/^[^[:space:]]/s/^\(  hostname:[[:space:]]*\).*/\1"0.0.0.0"/' /usr/local/share/wx_video_download/config.yaml; \
    sed -i '/^proxy:/,/^[^[:space:]]/s/^\(  tun:[[:space:]]*\).*/\1true/' /usr/local/share/wx_video_download/config.yaml; \
    chmod +x /usr/local/share/wx_video_download/wx_video_download; \
    setcap cap_net_admin,cap_net_raw+ep /usr/local/share/wx_video_download/wx_video_download || true

COPY rootfs/ /
RUN chmod +x /usr/local/bin/wx-* /custom-cont-init.d/*

EXPOSE 3000 3001 2022 2023