• PyGate Has been released

    From Stephen Walsh@3:633/280 to All on Thu Jan 22 11:36:10 2026
    Hello everybody!


    PyGate - Python FidoNet-NNTP Gateway, has been released to the public.

    PyGate is a Python-based gateway system that bridges FidoNet echomail and NNTP newsgroups, allowing seamless message exchange between the two networks.

    Version: 1.5.2
    Author: Stephen Walsh
    Contact: vk3heg@gmail.com | FidoNet 3:633/280 | FSXNet 21:1/195 | Amiganet 39:901/280
    Based on: SoupGate by Tom Torfs

    Features
    Core Functionality

    Bidirectional Gateway: Messages flow seamlessly between FidoNet and NNTP
    Flexible Deployment Modes: Full gateway mode or client-only mode
    Area Mapping: Flexible mapping between FidoNet areas and NNTP newsgroups
    Message Hold System: Manual review and approval of messages
    Spam Filtering: Advanced regex-based filtering with built-in patterns
    Netmail Notifications: Automatic notifications for held messages
    Areafix Support: Dynamic area management via netmail with wildcard protection
    Character Set Handling: Proper encoding conversion per FTS standards

    Advanced Features

    Message Deduplication: Prevents duplicate messages
    Cross-posting Control: Configurable limits on cross-posted messages
    Timezone Support: Proper timezone handling (TZUTC)
    Message Threading: Preserves reply chains and references
    Administrative Panel: Admin panel interface for message review of held messages, filter management, newsrc management, newsgroups list viewing.

    Requirements

    Python 3.7 or higher
    NNTP server access
    FidoNet mailer (binkd recommended)
    Required Python packages:
    configparser
    pathlib
    logging
    datetime
    uuid
    json
    paramiko (for SSH/remote ctlinnd on Windows deployments)
    psutil (for automation script process management)


    Deployment Modes

    PyGate supports two deployment modes:
    Full Gateway Mode (Default)

    In this mode, PyGate manages both the NNTP connection and the server configuration:

    Updates local newsrc file when areas are added/removed
    Executes ctlinnd commands to create/remove newsgroups on NNTP server
    Requires server administrative privileges or SSH access
    Best for deployments where PyGate runs on or manages the news server

    [Gateway]
    client_mode = false # or omit this line (false is default)

    Client-Only Mode

    In this mode, PyGate operates as a standard NNTP client without server management:

    Updates local newsrc file when areas are added/removed
    Does NOT execute ctlinnd commands
    Assumes newsgroups already exist on the remote NNTP server
    Does not require server administrative privileges
    Best for connecting to external/remote news servers you don't control

    [Gateway]
    client_mode = true

    When to use client-only mode:

    Connecting to a remote news server you don't administer
    Using a commercial or third-party news provider
    Testing PyGate without affecting server configuration
    Security-restricted environments where ctlinnd access is unavailable

    Note: In client-only mode, areafix operations will still update your local newsrc file, but you must ensure the corresponding newsgroups exist on the NNTP
    server before subscribing to them.


    Message Hold System

    The hold system allows manual review of messages before they are gated, providing control over message flow. When areas are remapped to fidonet echomail
    areas. This is mainly to protect fidonet from usenet spam.

    Configuration

    Enable holding in pygate.cfg:

    [Arearemap]
    Hold = yes
    notify_sysop = yes

    How It Works

    Message Evaluation: Each message is checked against area mappings
    Hold Decision: Messages in mapped areas are held for review
    Notification: Netmail sent to sysop (once per hour maximum)
    Review Process: Admin reviews messages via admin panel
    Action: Messages are approved, rejected, or archived

    Notification System

    When messages are held:

    Netmail sent to sysop at linked_address
    Rate Limited: Maximum one notification per hour
    Comprehensive: Lists all areas with pending messages
    Tracking: State saved in hold/notifications.json





    https://github.com/vk3heg/pygate




    Vorlon


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Tommi Koivula@2:221/1 to All on Thu Jan 22 17:33:21 2026
    On 22.01.2026 17.15, Stephen Walsh wrote:

    Hello everybody!

    PyGate - Python FidoNet-NNTP Gateway, has been released to the public.

    Testing...

    Based on: SoupGate by Tom Torfs

    +1 :)

    'Tommi


    --- PyGate Linux v1.5.2
    * Origin: RBB PyGate (2:221/1)
  • From Stephen Walsh@3:633/280 to Tommi Koivula on Fri Jan 23 11:05:52 2026
    Hello Tommi!

    22 Jan 26 17:33, you wrote to all:

    PyGate - Python FidoNet-NNTP Gateway, has been released to the
    public.

    Testing...

    Will be waiting for any feedback!

    It's been running here on my news server every half an hour since I started the project in October last year.

    Based on: SoupGate by Tom Torfs

    +1 :)

    Soupgate was good, but there was just to many bits that needed bolting together.

    Compiling it for Linux showed a number of short comings and bugs.



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)