commit a27093d1b898ccd597143002481e7612e800a249 Author: Evie Date: Wed May 20 22:32:08 2026 -0400 Initial commit: Retro-Proxy-Stack diff --git a/GEMINI.md b/GEMINI.md new file mode 100644 index 0000000..6dc3fc2 --- /dev/null +++ b/GEMINI.md @@ -0,0 +1,40 @@ +# Retro-Proxy-Stack + +A collection of Docker configurations designed to bridge the gap between modern internet services (email, web) and legacy clients (Outlook Express 6, IE 5/6 on Windows 9x/XP). + +**Note:** This project is an orchestration layer. All core functionality is provided by the following upstream projects: + +## Architecture & Credits +- **[Stunnel](https://www.stunnel.org/):** Used for SMTP/POP3/IMAP protocol/TLS translation. +- **[WebOne](https://github.com/atauenis/webone):** Modern-to-legacy HTTP proxy for browsing. +- **[WRP (Web Rendering Proxy)](https://github.com/tenox7/wrp):** Visual-rendering proxy that converts modern web pages into clickable image maps. + +## Features +- **Legacy Mail Proxy:** Uses `Stunnel` to translate non-SSL legacy client connections into secure TLS 1.3 tunnels for modern servers. *Note: Best used with your own private mail server (like Synology MailPlus) that supports standard basic authentication (PLAIN/LOGIN).* +- **WebOne Proxy:** An HTTP proxy that strips modern security requirements and complex scripts, allowing vintage browsers to access the modern web. +- **WRP (Web Rendering Proxy):** A visual proxy that renders modern webpages as clickable image maps for hardware that cannot handle modern web standards. + +## Services +| Service | Role | Host Port | Purpose | +| :--- | :--- | :--- | :--- | +| **Stunnel** | Mail Proxy | 25, 110, 143 | Bridges legacy mail clients to modern TLS-enabled servers. | +| **WebOne** | HTTP Proxy | 8081 | Allows retro browsers to access the modern web (strips TLS/scripts). | +| **WRP** | Visual Proxy | 8082 | Renders modern sites as image maps for very limited hardware. | + +## Quick Start +1. **Start Services:** + `docker compose up -d` + +2. **Mail Client Configuration:** + - Configure your client (Outlook Express 6) to use the server's IP address for SMTP/POP/IMAP. + - **Crucial:** Disable "Secure Password Authentication" (SPA) in the client's account settings. + - Set connection security to "None" (the proxy handles the encryption). + +3. **Retro Browsing:** + - **For WebOne:** Set your browser's proxy settings to `:8081`. + - **For WRP:** Navigate to `http://:8082` in your legacy browser. + +## Configuration +- All infrastructure and service mappings are defined in `compose.yml`. +- Mail proxy settings are defined in `stunnel.conf`. +- When adding or modifying services, ensure they maintain compatibility with older security standards required by Windows 9x/XP clients. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a464f8d --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Retro-Proxy-Stack + +A Docker Compose orchestration layer that bundles existing proxy tools to help legacy Windows 9x/XP clients (Outlook Express 6, IE 5/6) connect to modern services. + +**Note:** This project is purely a configuration layer. All core functionality is provided by the respective upstream projects. + +## Features +- **Legacy Mail Proxy:** Uses `Stunnel` to translate non-SSL legacy client connections into secure TLS 1.3 tunnels for modern servers. *Note: Best used with your own private mail server (like Synology MailPlus) that supports standard basic authentication (PLAIN/LOGIN).* +- **WebOne Proxy:** An HTTP proxy that strips modern security requirements and complex scripts, allowing vintage browsers to access the modern web. +- **WRP (Web Rendering Proxy):** A visual proxy that renders modern webpages as clickable image maps for hardware that cannot handle modern web standards. + +## Included Tools +- **[Stunnel](https://www.stunnel.org/):** Handles secure TLS translation for legacy mail clients. +- **[WebOne](https://github.com/atauenis/webone):** An HTTP proxy that strips modern security requirements, enabling vintage browsers to access the modern web. +- **[WRP (Web Rendering Proxy)](https://github.com/tenox7/wrp):** A visual proxy that renders modern webpages as clickable image maps. + +## Setup +1. **Configure:** Update `stunnel.conf` with your upstream mail server details. +2. **Launch:** Run `docker compose up -d` to start all services. +3. **Configure Clients:** + - **Mail:** Set up accounts in your legacy client (Outlook Express 6) using the host's IP. Disable "Secure Password Authentication" (SPA) and use no encryption (the proxy handles it). + - **Web:** Set your browser's proxy settings to `host-ip:8081` (WebOne) or visit `http://host-ip:8082` (WRP). + +## Documentation +For full details on architecture, service mappings, and configuration, see [GEMINI.md](./GEMINI.md). diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..7d7b71f --- /dev/null +++ b/compose.yml @@ -0,0 +1,39 @@ +services: + # Using Alpine with Stunnel manually installed to have full control over the config + stunnel: + image: alpine:latest + container_name: stunnel-proxy + restart: always + command: > + sh -c "apk add --no-cache stunnel && + stunnel /etc/stunnel/stunnel.conf" + volumes: + - ./stunnel.conf:/etc/stunnel/stunnel.conf:ro + ports: + - "110:110" + - "143:143" + - "25:25" + networks: + - mail-proxy + + webone: + image: u306060/webone + container_name: webone-proxy + restart: always + ports: + - "8081:8080" + networks: + - mail-proxy + + wrp: + image: tenox7/wrp + container_name: wrp-proxy + restart: always + ports: + - "8082:8080" + networks: + - mail-proxy + +networks: + mail-proxy: + driver: bridge diff --git a/stunnel.conf b/stunnel.conf new file mode 100644 index 0000000..e20c8f2 --- /dev/null +++ b/stunnel.conf @@ -0,0 +1,21 @@ +# Stunnel Configuration for Legacy Mail Proxy +# Forwarding non-SSL legacy client connections to modern SSL/TLS mail server + +client = yes +foreground = yes +debug = info + +# IMAP Bridge +[imap] +accept = 0.0.0.0:143 +connect = are-nas.lan.1qaz.ca:993 + +# POP3 Bridge +[pop3] +accept = 0.0.0.0:110 +connect = are-nas.lan.1qaz.ca:995 + +# SMTP Bridge +[smtp] +accept = 0.0.0.0:25 +connect = are-nas.lan.1qaz.ca:465