Badwolf Web IRC Client
A modern, feature-rich WebSocket IRC client for WordPress. Connect your website visitors to your IRC server with real-time chat, private messaging, desktop notifications, and a beautiful tabbed interface. Version 5.2.0 – What’s New 🔧 WordPress 6.9 Compatibility FIXED: Plugin now works perfectly with WordPress 6.9 FIXED: Script loading issues with block themes and Full Site Editing (FSE) FIXED: Configuration passing to JavaScript 🔌 WebSocket Improvements FIXED: Connection stability issues FIXED: Binary WebSocket data handling ADDED: IRC subprotocol support for UnrealIRCd ⚙️ User Experience ADDED: Settings link in plugin list for easy access IMPROVED: Error handling and logging IMPROVED: Connection reliability Features ✅ Real-time IRC chat via secure WebSocket (wss://) ✅ Private messaging between users ✅ Desktop notifications for mentions and PMs ✅ Multiple channel support with tabbed interface ✅ User list with right-click context menus ✅ Command history (use arrow keys) ✅ Auto-reconnection with smart retry logic ✅ Customizable themes (light/dark) ✅ Mobile-responsive design ✅ IRC commands support (/nick, /join, /part, /msg, /me) ✅ Tab completion for nicknames ✅ Unread message badges ✅ Message history (500 messages per channel) Requirements WordPress: 5.0 or higher (tested up to 6.9) PHP: 7.4 or higher IRC Server: UnrealIRCd 6.x with WebSocket support (recommended) SSL Certificate: Valid SSL/TLS certificate for secure WebSocket (wss://) Configuration WordPress Settings Navigate to Settings → Badwolf Web IRC Client and configure: WebSocket URL: Your IRC server WebSocket URL (e.g., wss://irc.example.com:7443) Default Channel: IRC channel to join (e.g., #general) Nickname Prefix: Prefix for auto-generated nicknames (e.g., guest) Real Name: Default real name for users Theme: Light or Dark theme Auto Connect: Automatically connect when page loads UnrealIRCd Server Configuration Your UnrealIRCd server must have WebSocket support enabled: `conf Load WebSocket module loadmodule “websocket”; Configure WebSocket listener listen { ip *; port 7443; options { tls; websocket; } tls-options { certificate “/path/to/fullchain.pem”; key “/path/to/privkey.pem”; options { no-client-certificate; } } } ` SSL Certificate Setup (Let’s Encrypt) `bash Install certbot if not already installed sudo apt-get install certbot Get certificate for your IRC domain sudo certbot certonly –standalone -d irc.yourdomain.com Copy certificates to UnrealIRCd sudo cp /etc/letsencrypt/live/irc.yourdomain.com/fullchain.pem /path/to/unrealircd/conf/tls/ sudo cp /etc/letsencrypt/live/irc.yourdomain.com/privkey.pem /path/to/unrealircd/conf/tls/ Set correct permissions sudo chown unrealircd:unrealircd /path/to/unrealircd/conf/tls/*.pem sudo chmod 600 /path/to/unrealircd/conf/tls/privkey.pem sudo chmod 644 /path/to/unrealircd/conf/tls/fullchain.pem Restart UnrealIRCd cd /path/to/unrealircd ./unrealircd restart ` Auto-Renewal Setup Create a renewal hook to automatically copy certificates: `bash Create renewal hook script sudo nano /etc/letsencrypt/renewal-hooks/deploy/copy-to-unrealircd.sh ` Add this content: `bash !/bin/bash cp /etc/letsencrypt/live/irc.yourdomain.com/fullchain.pem /path/to/unrealircd/conf/tls/ cp /etc/letsencrypt/live/irc.yourdomain.com/privkey.pem /path/to/unrealircd/conf/tls/ chown unrealircd:unrealircd /path/to/unrealircd/conf/tls/*.pem chmod 600 /path/to/unrealircd/conf/tls/privkey.pem chmod 644 /path/to/unrealircd/conf/tls/fullchain.pem /path/to/unrealircd/unrealircd rehash ` Make it executable: `bash sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/copy-to-unrealircd.sh ` Usage Basic Shortcode ` [web_irc_client] ` Shortcode with Attributes ` [web_irc_client theme=”dark” width=”100%” height=”600px”] ` Available attributes: theme – Override theme (light or dark) width – Set custom width (default: 100%) height – Set custom height (default: 70vh) IRC Commands Users can use standard IRC commands: /nick newname – Change nickname /join #channel – Join a channel /part – Leave current channel /msg username message – Send private message /me action – Send action message /help – Show available commands Troubleshooting Connection Issues Problem: “Reconnecting…” message appears Solutions: Verify UnrealIRCd is running: ps aux | grep unrealircd Check port is listening: sudo netstat -tlnp | grep 7443 Verify SSL certificate is valid and not expired Check UnrealIRCd logs: tail -f /path/to/unrealircd/logs/ircd.log Test WebSocket connection: https://www.piesocket.com/websocket-tester SSL Certificate Errors Problem: Certificate expired or invalid Solution: `bash Check certificate expiry sudo certbot certificates Renew if needed sudo certbot renew –force-renewal Copy to UnrealIRCd and restart sudo cp /etc/letsencrypt/live/irc.yourdomain.com/*.pem /path/to/unrealircd/conf/tls/ ./unrealircd restart ` Plugin Not Loading Problem: IRC client doesn’t appear on page Solutions: Verify shortcode is correct: [web_irc_client] Clear WordPress cache Clear browser cache (Ctrl+Shift+R) Check browser console for JavaScript errors (F12) Verify WebSocket URL is configured in plugin settings WordPress 6.9 Issues Problem: Plugin stopped working after WordPress 6.9 update Solution: Update to version 5.2.0 which includes WordPress 6.9 compatibility fixes. Support GitHub: https://github.com/badwolf1972/web-irc-client Issues: https://github.com/badwolf1972/web-irc-client/issues WordPress Support: https://wordpress.org/support/plugin/badwolf-web-irc-client/ Credits Author: Martin Cooper (badwolf72) Website: https://www.oo3dmodels.com License: GPL v2 or later
Top keywords
- unrealircd31×3.92%
- irc23×2.91%
- path16×2.02%
- websocket15×1.90%
- path to unrealircd14×1.77%
- pem13×1.64%
- sudo13×1.64%
- tls13×1.64%
- conf12×1.52%
- com11×1.39%
- conf tls11×1.39%
- unrealircd conf11×1.39%
JTZL's Chat for WebIRC
This plugin provides a shortcode that renders a lightweight IRC client written in vanilla JavaScript. It supports direct WebSocket connections to IRC servers (IRCv3-friendly) and includes an optional WebIRC gateway. Security-conscious defaults: Server allow-list (host:port format), WSS (WebSockets over SSL/TLS) only Optional WebSocket subprotocols (e.g., text.ircv3.net) Optional WS path (e.g., /webirc) Optional CSP connect-src helper (off by default) Input sanitization and validation Proper escaping of output Features: Modern Responsive Design: Mobile-first approach with adaptive layouts for all screen sizes Enhanced Mobile Experience: Touch-optimized interface with proper virtual keyboard support Smart Responsive Behavior: Overlay sidebar on mobile, collapsible on tablet, side-by-side on desktop Editable Username: Click-to-edit nickname with real-time validation and user persistence User Persistence: Automatic nickname saving for logged-in WordPress users Lightweight vanilla TypeScript/JavaScript implementation (no frameworks) Fully responsive design with semantic HTML Internationalization ready (i18n strings) Configurable server allow-list with strict validation WebSocket subprotocol support (IRCv3) Optional WebIRC gateway fallback Comprehensive IRC slash commands: 30+ commands including /join, /part, /nick, /msg, /whois, /topic, /away, /help, and more Automatic nickname generation and collision handling Debug logging and connection status indicators Optional Content Security Policy (CSP) header generation WordPress hooks and filters for extensibility Follows WordPress Coding Standards Usage Basic Usage: Simply add the shortcode [chat_webirc] to any page or post where you want the IRC chat to appear. The plugin will use secure default settings to connect to a test IRC server. Shortcode Examples: * Basic: [chat_webirc] – Uses default server and channel * Custom channel: [chat_webirc channel="#mychannel"] * Custom server: [chat_webirc server="irc.example.com:7443" channel="#general"] Available IRC Commands: Once the chat is loaded, users can use these commands: Basic Commands: * /join #channel – Join a channel * /part [#channel] – Leave current or specified channel * /nick newname – Change nickname * /quit [message] – Disconnect * /help – Show all available commands Communication: * /msg – Send private message * /notice – Send notice message * /me – Send action message * /query – Open private chat context User & Channel Info: * /whois – Get detailed user information * /who [channel] – List users in channel * /list [pattern] – List available channels * /names [channel] – List nicknames in channel * /topic [text] – View/set channel topic Status & Utility: * /away [message] – Set away status * /back – Remove away status * /ping – Ping user * /version [nick] – Get version info Advanced Commands: * /ctcp – Send CTCP command * /motd [server] – View message of the day * /stats [server] – View server statistics * /raw – Send raw IRC command (if enabled) Type /help in the chat for the complete command reference. Configuration: Go to Settings → Chat for WebIRC in your WordPress admin to customize servers, channels, and security options. Notes Some public IRC networks may restrict WebSocket connections to certain origins. The included test server permits connections for testing purposes. Do not send sensitive information. This client is intentionally minimal and does not yet support SASL authentication.