Welcome to go-pugleaf NNTP to Web Gateway
A modern, secure, high-performance Go-based NNTP newsgroup system
Network Nodes
🇺🇸 rocksolid-us.pugleaf.net
All Newsgroups from:
+ RockSolidBBS.com
+ NovaBBS.com
+ NovaBBS.org
+ NovaLink.us
+ i2pn2.org
Retention: 1990-2025
Status: sync paused
|
🇺🇸 novabbs.pugleaf.net
Retention: 2023-2025
Status: sync paused
|
🇩🇪 dorfdsl.pugleaf.net
Testserver for dorfdsl
Retention: 1990-2025
Status: Live!
|
🇩🇪 reader-nyc.newsdeef.eu:11982
Testserver for dorfdsl
Retention: ~ 3-6 months
Status: Live!
|
🇵🇱 polski.pugleaf.net
Only for darius!
Retention: 1990-2025
Status: Live!
|
📋 gmane.pugleaf.net
Status: sync paused
|
📰 gwene.pugleaf.net
Status: sync paused
|
go-pugleaf Development Updates
Each network node has its own dedicated news section - visit Site News for node-specific updates
🗄️ New Servers arrived!
July 21, 2025
Big Mama 01 @ 🇬🇧 UK - London: Host: onlyservers.com CPU: 2x Intel(R) Xeon(R) Gold 5115 CPU @ 2.40GHz [2x (10c/20t)] RAM: 256G DDR4 ECC BOOT: 2x 480G SSD DISK: 2x 8T SSD NET: 25 Gbit @ 1000 TB monthly 📥 That will boost import performance to the moon! 🎯 Archive Nodes @ 🇫🇮 FI - Helsinki: Host: pulsedmedia.com 1x Front Node / Overview CPU: Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz RAM: 16G DDR4 DISK: 2T NVME NET: 1 Gbit 2x Storage Nodes CPU: Intel(R) Core(TM) i5-6500T CPU @ 2.50GHz RAM: 16G DDR4 DISK: 4T NVME NET: 1 Gbit Moving data now.
🎁 Hardware Donation & European Expansion
July 16 + 17, 2025
💥 AMAZING NEWS! We've received a $250 dedicated server as a physical donation: 🖥️ 6-month Xeon-E31240, 16GB DDR3 ECC, 4×8TB HDD - Located in Europe! 🇪🇺 🌍 Newsgroup Migration started: 📰 rocksolid.* and more → 🇺🇸 rocksolid-us.pugleaf.net (full retention ~1990-2025) + The New Home for: ++ RockSolidBBS.com / NovaLink.us ++ NovaBBS.com / NovaBBS.org ++ i2pn2.org Moving newsgroups to another Server: 🔄 Migration Status: 🇩🇪 pi-dach.dorfdsl.de is restored and will be available again soon! 🤝 Community: We hope Marco will consider hosting a little pugleaf node! 📦 Recovery: The pi-dach backup is running here and is (or should be) up to date. + Cronjob runs every 5 minutes to fetch new articles. We'll see how this works! 📰 de.* and ger.* → 🇩🇪 dorfdsl.pugleaf.net (full retention ~1990-2025) 📰 pl.* → 🇵🇱 polish.pugleaf.net (full retention ~1990-2025) 📰 gmane.* → gmane.pugleaf.net (news.gmane.io) 📰 gwene.* → gwene.pugleaf.net (news.gmane.io) 📍 Status of Newsgroups Migration: ➤ Visit Statistics to monitor ongoing import progress ➤ Article counts (should) update every 5 minutes 🐛 Community Support: Found bugs or have suggestions? Please post to newsgroup: 'rocksolid.nodes.help' We welcome all feedback and your input helps us improve the system! Your suggestions are valuable to us. 📧 Note: Email support is not currently available. ⚡ Early Launch: This service went live ahead of schedule!
🎉 go-pugleaf NNTP Gateway Goes Live!
July 15, 2025
Welcome to our new high-performance NNTP newsgroup system built with Go. **🚀 ANNOUNCEMENT: First go-pugleaf NNTP Node Online - Carrying Forward Retro Guy's Legacy** We are proud to announce that the first **go-pugleaf** NNTP node is now online and operational! **🌐 Access Information:** - **Web Interface:** rocksolid-us.pugleaf.net - **NNTP Server:** Coming within the next few days - **Coverage:** Full rocksolid.* hierarchy + additional groups **📊 Current Status:** ✅ **ONLINE** - Web interface fully functional 🔄 **BACKFILLING** - Importing articles from legacy rslight installations 📥 **FETCHING** - Automated article retrieval via cron jobs **🛠️ Development Roadmap:** - **Next Few Days:** NNTP server for reading access - **In Progress:** Incoming article peering setup - **TODO:** Posting access and full bidirectional peering **💝 Tribute to Retro Guy:** This project carries forward the legacy of **Retro Guy** @novabbs.com The visionary lead developer of rslight. Though he sadly cannot see this evolution of his work... RIP! We are committed to keeping the rocksolid.* community alive and thriving. The fresh, modern interface and robust Go-based architecture represent our dedication to honoring his contributions while building for the future. **🔧 Technical Highlights:** - Built with modern Go architecture for performance and reliability - High-speed parallel article fetching and processing - Efficient database design for large-scale article storage - Full NNTP protocol compliance **🤝 Community Notes:** We're in the exciting phase of bringing historical rocksolid.* content back online! The migration from legacy rslight installations is proceeding smoothly, ensuring no community history is lost. **🎯 Mission:** To provide a stable, modern, and efficient platform for the rocksolid.* community and beyond! Stay tuned for NNTP access announcements and peering updates! **The go-pugleaf Development Team** *Honoring the past, building the future* We are not responsible for this spam in news.admin.peering... --- *Cross-posted to relevant groups. For technical updates,visit the web interface.
⚡ Phase 6: NNTP Server almost Ready for Launch
July 07, 2025
### Core NNTP Server Architecture - [x] **Server Foundation**: - [x] Main NNTP server struct with configuration - [x] TCP listener with TLS/SSL support - [x] Client connection management - [x] Connection pooling and resource limits - [x] Graceful shutdown handling - [x] Multi-threaded request processing ### NNTP Protocol Implementation (RFC 3977) - [x] **Essential Commands (Priority 1)**: - [x] `CAPABILITIES` - Server capability announcement - [x] `MODE READER` - Switch to reader mode - [x] `AUTHINFO USER/PASS` - User authentication - [x] `QUIT` - Clean connection termination - [x] `HELP` - Command help system - [x] **Group Management Commands**: - [x] `LIST` - List available newsgroups - [x] `LIST ACTIVE` - Active groups with counts - [x] `LIST NEWSGROUPS` - Groups with descriptions - [x] `GROUP` - Select newsgroup and get stats - [x] `LISTGROUP` - List article numbers in group - [x] **Article Retrieval Commands**: - [x] `STAT` - Check article existence - [x] `HEAD` - Retrieve article headers - [x] `BODY` - Retrieve article body - [x] `ARTICLE` - Retrieve complete article - [x] Support for both message-ID and article number addressing - [x] **Overview Commands**: - [x] `XOVER` - Article overview data (NOV format) - [x] `XHDR` - Specific header retrieval - [ ] `HDR` - RFC 3977 header command - [ ] `OVER` - RFC 3977 overview command - [ ] **Advanced Commands (Priority 2)**: - [x] `POST` - Article posting (optional) - [x] `IHAVE` - Article transfer (server-to-server) - [x] `CHECK/TAKETHIS` - Streaming commands - [ ] `DATE` - Server date/time - [ ] `NEWGROUPS` - New groups since date - [ ] `NEWNEWS` - New articles since date ### Database Integration - [x] **Data Access Layer**: - [x] Integrate with existing `*database.Database` - [x] Reuse `models.Article`, `models.Newsgroup` structures - [x] Efficient article retrieval by message-ID and number - [x] Group statistics and article counting - [x] XOVER data generation from database - [x] Range-based overview queries for XOVER/XHDR - [x] Article caching for frequently accessed content ### Authentication & Security - [x] **User Authentication**: - [x] Integrate with existing user system (`models.User`) - [x] AUTHINFO command with database user validation (framework) - [x] Session management for authenticated connections - [x] Permission-based group access control - [ ] **Security Features**: - [ ] Rate limiting per connection/IP - [ ] Command validation and sanitization - [ ] Logging of all NNTP operations - [ ] Connection timeout management - [ ] IP-based access control (optional) ### Configuration & Management - [x] **Server Configuration**: - [x] NNTP server port and binding configuration - [x] TLS/SSL certificate management - [x] Maximum connections and resource limits - [ ] Command-specific feature toggles - [x] Integration with existing `config.ServerConfig` - [ ] **Administration Integration**: - [ ] NNTP server status in admin dashboard - [ ] Real-time connection monitoring - [ ] Command usage statistics - [ ] Server performance metrics - [ ] Configuration management via web interface ### Testing & Validation - [ ] **Protocol Compliance**: - [ ] RFC 3977 compliance testing - [ ] Test with standard NNTP clients (tin, slrn, Thunderbird) - [ ] Multi-line response handling - [ ] Error code consistency - [ ] Character encoding support (UTF-8) ---
🛠️ Phase 5: Admin Dashboard & Tools
July 04, 2025
### Admin Interface - [x] Create admin dashboard - [x] API Tokens Management - [ ] Add server status monitoring - [x] Implement newsgroup management: - [x] Add new groups - [x] Delete groups - [x] Modify group settings - [x] sections Create/Set/Modify for newsgroups - [x] Bulk operations - [x] Create user management interface - [x] Add provider configuration - [x] Implement system settings - [ ] Create backup/restore tools - [ ] Implement backup automation ### Monitoring & Logging - [ ] Create health check endpoints - [ ] Create log rotation - [ ] Add alerting system ### Maintenance Tools - [x] Create article cleanup tools - [x] Add database optimization - [x] Create migration scripts ---
🔐 Phase 4: Security & Authentication Complete
June 30, 2025
### User Management ✅ COMPLETE - [x] Implement user registration with validation - [x] Add password hashing (bcrypt) - [x] Create login/logout system - [x] Implement session management - [x] Add JWT token support - [x] Create user profile system - [x] Profile: password change functionality - [ ] Add password reset functionality via email - [ ] Add external SMTP sending support - [ ] Implement email verification for new accounts (+ option in admin panel do enable/disble) - [x] Implement user roles/permissions - [x] Add user registration form template - [x] Create login/logout page templates - [x] **Admin interface for user management (create/update/delete)** - [x] **API token management system with CRUD operations** - [x] **Session-based web authentication with secure cookies** ### Search Functionality ⚡ IN PROGRESS - [x] **Basic search page template implemented** - [x] **Search API endpoints (newsgroup search working)** - [x] Create search API endpoints - [x] **Newsgroup name search functionality** - [ ] Implement full-text search for articles (FTS5 schema ready) - [x] Add search page template - [x] Add advanced search filters (author, date, group) - [x] Implement search result pagination - [ ] Add search result highlighting ### Security Features ✅ PARTIALLY COMPLETE - [x] **API token authentication system with secure hashing** - [x] **Secure session handling with HttpOnly cookies** - [x] **Password validation and bcrypt hashing** - [x] **Input validation framework** - [x] **SQL injection prevention (parameterized queries)** - [x] **XSS protection via template HTML escaping** - [x] Implement SQL injection prevention (already in place with parameterized queries) - [ ] Add CSRF protection - [ ] Implement rate limiting middleware - [ ] Add comprehensive input validation framework - [ ] Add file upload security - [ ] Create audit logging ### Theme & UI Enhancements ✅ COMPLETE - [x] **Bootstrap 5.3 dark mode integration** - [x] **Modern theme switcher with localStorage persistence** - [x] **Responsive design optimized for mobile** - [x] **Professional navigation with authentication links** - [x] **Theme selector positioned bottom-right to avoid overlap** - [x] **Page refresh functionality for complete theme application** ---
🔥 Phase 3: Web UI & Threading
June 27, 2025
### Gin Web Framework Setup - [x] Set up Gin web server (internal/web/) - [x] Create router configuration - [x] Add paginated API endpoints: - [x] GET /api/v1/groups (list newsgroups) - [x] GET /api/v1/groups/:group/overview (group overview) - [x] GET /api/v1/groups/:group/articles/:articleNum (single article) - [x] GET /api/v1/groups/:group/threads (thread data) - [x] Create cmd/web/main.go server entry point - [x] Add middleware: - [x] Logging middleware - [x] Static file serving - [x] CORS middleware - [x] Error handling middleware - [x] Create comprehensive error handling system - [x] Add request validation ### 🔥 REVOLUTIONARY FORUM-STYLE THREADING SYSTEM - [x] **Clean thread list page**: Shows only thread titles with message counts - [x] **Full thread view route**: `/groups/:group/thread/:threadRoot` - [x] **Complete forum experience**: Click thread → see full discussion - [x] **Full article content inline**: All messages display complete article bodies - [x] **Flat threading hierarchy**: Forum-style (no confusing nested replies) - [x] **Smart threading engine**: Parses Message-ID/References for perfect grouping - [x] **Chronological message sorting**: Root first, then replies by date - [x] **Rich metadata display**: Author, date, lines, bytes for each message - [x] **Thread navigation**: Clean breadcrumbs and back-to-threads links ### HTML Templates & UI - [x] Create base template layout with theme support - [x] Design newsgroup listing page with pagination - [x] Create article display template with proper formatting - [x] Implement pagination controls for Groups and Articles - [x] **Revolutionary thread.html template with full article content** - [x] **Updated threads.html for clean thread-only listing** - [x] Create stats page with system information - [x] Add help page with documentation - [x] Design error page with user-friendly messages - [x] Add comprehensive navigation - [x] **Forum-style thread discussions with inline content** ### Static Assets & Frontend - [x] Create modern CSS framework (responsive design) - [x] Implement multiple theme system: - [x] Modern theme (gradient design with animations) - [x] Classic theme (retro terminal green-on-black) - [x] Amber theme (vintage amber terminal) - [x] Add JavaScript functionality: - [x] Theme switching with localStorage persistence - [x] Responsive navigation - [x] Pagination controls - [x] Article navigation - [x] Mobile-friendly responsive design - [x] RockSolid rocket logo integration ### Performance & Scalability - [x] Implement efficient pagination for all large datasets - [x] Optimize database queries with proper indexing - [x] Memory-efficient template rendering - [x] Preloader system for newsgroup descriptions - [x] Reply count tracking and display - [x] Error handling for missing articles/groups - [x] **Full article loading optimization for thread views** - [x] **Efficient thread message grouping and sorting** ---
🗄️ Phase 2: Database Architecture Complete
June 25, 2025
### Database Schema Design - [x] Design main database schema - [x] config table (system configuration) - [x] providers table (NNTP server configurations) - [x] newsgroups table (subscribed groups metadata) - [x] users table (user accounts) - [x] sessions table (user sessions) - [x] user_permissions table (access control) - [x] Design per-group database schemas - [x] articles table (full article storage) - [x] **threads table (revolutionary forum-style threading)** - [x] overview table (XOVER data for performance) - [x] Create database migration system - [x] Implement database connection pooling ### SQLite3 Implementation - [x] Create database abstraction layer (internal/database/) - [x] Implement main database management - [x] Implement per-newsgroup database management - [x] Add article storage functions - [x] **Implement revolutionary threading logic using Message-ID/References** - [x] **Forum-style flat threading (one thread per original post)** - [x] Create overview data management (XOVER caching) - [x] Add database indexing for performance - [x] Implement efficient batching and scalability features - [x] **Thread counting and message grouping** - [ ] Implement database backup/restore ### Data Models & Import System - [x] Create Go structs for all data models - [x] Implement JSON serialization - [x] Add validation tags - [x] Create model relationships - [x] Add database query methods - [x] Implement NNTP-to-database import pipeline: - [x] Group subscription and metadata import - [x] Article batch import using XOVER/XHDR - [x] Threading logic based on Message-ID/References - [x] Incremental sync for new articles - [x] Downloaded article tracking system - [x] Scalable batching for large groups - [x] Batched sync for new articles - [x] Downloaded article tracking system - [x] Scalable batching for large groups ---
🚀 Phase 1: Foundation & Vision Complete
June 20, 2025
### Project Structure - [x] Basic project structure created - [x] README.md written with clear vision - [x] LICENSE.md placeholder created - [x] Brainstorm document created - [x] Proper Go module structure setup - [x] Create internal package structure - [x] Set up cmd/ directory for executables - [x] Create GOALS.md with detailed project roadmap - [x] Create web/ directory for frontend assets - [x] Add configs/ directory for configuration files - [x] Create migrations/ directory for database schemas ### Go Module & Dependencies - [x] Initialize go.mod with proper module name - [x] Configure VS Code for Go module mode (removed GOPATH) - [x] Add required dependencies: - [x] Gin web framework - [x] SQLite3 driver - [x] Password hashing (bcrypt) - [x] Set up go.sum for dependency management ### Component Extraction & NNTP Implementation - [x] Extract Config.go → internal/config/config.go - [x] Extract ConnPool.go → internal/nntp/pool.go - [x] Extract NetConn.go → internal/nntp/client.go + commands.go - [x] Add newsgroup-specific NNTP commands - [x] Test basic NNTP connectivity - [x] Implement RFC-compliant NNTP client with all core commands: - [x] LIST (newsgroups) - [x] GROUP (select group) - [x] STAT (article status) - [x] ARTICLE (full article) - [x] HEAD (article headers) - [x] BODY (article body) - [x] XOVER (overview data with 1000-line batching) - [x] XHDR (header data with 1000-line batching) - [x] LISTGROUP (article numbers) - [x] Implement connection pooling with SSL/TLS support - [x] Add authentication handling (username/password) - [x] Create comprehensive error handling and dot-line reading - [x] Real-world testing with news.blueworldhosting.com:563 - [x] Real-world testing with lux-feed1.newsdeef.eu:563 - [x] Test with newsgroups (news.admin.peering: 3,294 articles) - [x] Validate XOVER/XHDR auto-limiting for database efficiency ---