=== Badwolf Web IRC Client - Installation Guide ===


Version: 5.2.0
Last Updated: January 18, 2026


=== Table of Contents ===

1. Requirements
2. WordPress Plugin Installation
3. UnrealIRCd Server Setup
4. SSL Certificate Installation
5. Initial Configuration
6. Testing Your Installation
7. Post-Installation Steps


================================================================================
1. REQUIREMENTS
================================================================================


--- WordPress Requirements ---


Minimum WordPress Version: 5.0
Recommended WordPress Version: 6.9 or higher
PHP Version: 7.4 or higher
MySQL Version: 5.6 or higher


--- Server Requirements ---


IRC Server: UnrealIRCd 6.0.0 or higher (recommended)
SSL Certificate: Valid SSL/TLS certificate (Let's Encrypt recommended)
Open Ports: WebSocket port (e.g., 7443) must be accessible
Operating System: Linux (Debian, Ubuntu, CentOS, RHEL)


--- Browser Requirements ---


Modern browsers with WebSocket support:
• Chrome 16+
• Firefox 11+
• Safari 7+
• Edge 12+
• Opera 12.1+


================================================================================
2. WORDPRESS PLUGIN INSTALLATION
================================================================================


--- Method 1: WordPress Admin (Recommended) ---


Step 1: Download the plugin
• Download from WordPress.org or GitHub
• Save the .zip file to your computer


Step 2: Upload via WordPress Admin
• Log in to WordPress Admin
• Navigate to Plugins → Add New
• Click "Upload Plugin" button
• Choose the downloaded .zip file
• Click "Install Now"


Step 3: Activate the plugin
• Click "Activate Plugin" after installation
• Or go to Plugins → Installed Plugins
• Find "Badwolf Web IRC Client"
• Click "Activate"


--- Method 2: Manual Installation via FTP ---


Step 1: Extract the plugin
• Unzip the downloaded file
• You should have a folder named "badwolf-web-irc-client"


Step 2: Upload via FTP
• Connect to your server via FTP
• Navigate to /wp-content/plugins/
• Upload the "badwolf-web-irc-client" folder


Step 3: Set correct permissions
• Files: 644
• Directories: 755


Step 4: Activate the plugin
• Log in to WordPress Admin
• Go to Plugins → Installed Plugins
• Find "Badwolf Web IRC Client"
• Click "Activate"


--- Method 3: SSH/Command Line ---


Step 1: Navigate to plugins directory
  cd /var/www/html/wp-content/plugins/


Step 2: Download and extract
  wget https://github.com/badwolf1972/web-irc-client/archive/main.zip
  unzip main.zip
  mv web-irc-client-main badwolf-web-irc-client


Step 3: Set permissions
  chown -R www-data:www-data badwolf-web-irc-client
  find badwolf-web-irc-client -type f -exec chmod 644 {} \;
  find badwolf-web-irc-client -type d -exec chmod 755 {} \;


Step 4: Activate via WordPress Admin or WP-CLI
  wp plugin activate badwolf-web-irc-client


--- Verify Installation ---


After activation, you should see:
• "Badwolf Web IRC Client" in Plugins list
• "Settings" link under the plugin name
• Settings → Badwolf Web IRC Client in admin menu


================================================================================
3. UNREALIRCD SERVER SETUP
================================================================================


--- Step 1: Install UnrealIRCd ---


Download and install UnrealIRCd 6.x:


Download latest version

  cd /home
  wget https://www.unrealircd.org/downloads/unrealircd-latest.tar.gz
  tar xzf unrealircd-latest.tar.gz
  cd unrealircd-6.x.x


Configure and compile

  ./Config
  make
  make install


Follow the interactive configuration prompts.


--- Step 2: Configure UnrealIRCd ---


Edit the configuration file:


  nano /home/unrealircd/unrealircd/conf/unrealircd.conf


Add WebSocket module:


  loadmodule "websocket";
  loadmodule "webserver";


Configure basic settings:


  me {
      name "irc.yourdomain.com";
      info "Your IRC Server";
      sid "001";
  }


  admin {
      "Your Name";
      "Your Nick";
      "your@email.com";
  }


Add WebSocket listener (we'll add SSL later):


  listen {
      ip *;
      port 7443;
      options {
          websocket;
      }
  }


--- Step 3: Start UnrealIRCd ---


  cd /home/unrealircd/unrealircd
  ./unrealircd start


--- Step 4: Verify UnrealIRCd is Running ---


Check process

  ps aux | grep unrealircd


Check port

  netstat -tlnp | grep 7443


Check logs

  tail -f /home/unrealircd/unrealircd/logs/ircd.log


================================================================================
4. SSL CERTIFICATE INSTALLATION
================================================================================


--- Step 1: Install Certbot ---


Debian/Ubuntu:
  sudo apt-get update
  sudo apt-get install certbot


CentOS/RHEL:
  sudo yum install certbot


--- Step 2: Stop Services Using Port 80 (if needed) ---


  sudo systemctl stop apache2

or

  sudo systemctl stop nginx


--- Step 3: Obtain Certificate ---


  sudo certbot certonly --standalone -d irc.yourdomain.com


Follow the prompts:
• Enter your email address
• Agree to Terms of Service
• Choose whether to share email with EFF


--- Step 4: Verify Certificate ---


  sudo certbot certificates


You should see:
  Certificate Name: irc.yourdomain.com
  Expiry Date: [date 90 days from now]
  Certificate Path: /etc/letsencrypt/live/irc.yourdomain.com/fullchain.pem
  Private Key Path: /etc/letsencrypt/live/irc.yourdomain.com/privkey.pem


--- Step 5: Copy Certificates to UnrealIRCd ---


Create TLS directory if it doesn't exist

  mkdir -p /home/unrealircd/unrealircd/conf/tls


Copy certificates

  sudo cp /etc/letsencrypt/live/irc.yourdomain.com/fullchain.pem /home/unrealircd/unrealircd/conf/tls/
  sudo cp /etc/letsencrypt/live/irc.yourdomain.com/privkey.pem /home/unrealircd/unrealircd/conf/tls/


Set ownership

  sudo chown unrealircd:unrealircd /home/unrealircd/unrealircd/conf/tls/*.pem


Set permissions

  sudo chmod 600 /home/unrealircd/unrealircd/conf/tls/privkey.pem
  sudo chmod 644 /home/unrealircd/unrealircd/conf/tls/fullchain.pem


--- Step 6: Update UnrealIRCd Configuration ---


Edit unrealircd.conf:


  nano /home/unrealircd/unrealircd/conf/unrealircd.conf


Update the listen block:


  listen {
      ip *;
      port 7443;
      options {
          tls;
          websocket;
      }
      tls-options {
          certificate "/home/unrealircd/unrealircd/conf/tls/fullchain.pem";
          key "/home/unrealircd/unrealircd/conf/tls/privkey.pem";
          options {
              no-client-certificate;
          }
      }
  }


--- Step 7: Restart UnrealIRCd ---


  cd /home/unrealircd/unrealircd
  ./unrealircd restart


--- Step 8: Verify SSL is Working ---


Check logs for certificate warnings:


  tail -50 /home/unrealircd/unrealircd/logs/ircd.log


You should NOT see any certificate warnings.


--- Step 9: Setup Auto-Renewal ---


Create renewal hook:


  sudo nano /etc/letsencrypt/renewal-hooks/deploy/copy-to-unrealircd.sh


Add content:


  #!/bin/bash
  cp /etc/letsencrypt/live/irc.yourdomain.com/fullchain.pem /home/unrealircd/unrealircd/conf/tls/
  cp /etc/letsencrypt/live/irc.yourdomain.com/privkey.pem /home/unrealircd/unrealircd/conf/tls/
  chown unrealircd:unrealircd /home/unrealircd/unrealircd/conf/tls/*.pem
  chmod 600 /home/unrealircd/unrealircd/conf/tls/privkey.pem
  chmod 644 /home/unrealircd/unrealircd/conf/tls/fullchain.pem
  /home/unrealircd/unrealircd/unrealircd rehash


Make executable:


  sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/copy-to-unrealircd.sh


Test renewal:


  sudo certbot renew --dry-run


--- Step 10: Restart Web Server ---


  sudo systemctl start apache2

or

  sudo systemctl start nginx


================================================================================
5. INITIAL CONFIGURATION
================================================================================


--- Step 1: Access Plugin Settings ---


  WordPress Admin → Settings → Badwolf Web IRC Client


--- Step 2: Configure WebSocket URL ---


  WebSocket URL: wss://irc.yourdomain.com:7443


  Important:
• Use wss:// (not ws://)
• Match the port to your UnrealIRCd listener
• Use your actual domain name


--- Step 3: Configure Default Channel ---


  Default Channel: #general


  Or any channel you want users to join automatically.


--- Step 4: Configure Nickname Settings ---


  Nickname Prefix: guest
  Real Name: Web IRC User


  Users will get nicknames like: guest1234, guest5678, etc.


--- Step 5: Choose Theme ---


  Theme: Light or Dark


  This can be overridden per shortcode.


--- Step 6: Set Auto Connect ---


  Auto Connect: Yes


  Recommended for better user experience.


--- Step 7: Save Settings ---


  Click "Save Changes" button


================================================================================
6. TESTING YOUR INSTALLATION
================================================================================


--- Step 1: Create Test Page ---


  WordPress Admin → Pages → Add New
  Title: IRC Chat
  Content: [web_irc_client]
  Publish the page


--- Step 2: Visit the Page ---


  Open the page in your browser
  You should see the IRC client interface


--- Step 3: Check Connection Status ---


  Look at the status indicator:
• "Connecting..." - Initial connection attempt
• "Connected - Logging in..." - WebSocket connected
• "Connected to #channel" - Successfully connected


--- Step 4: Test Basic Functionality ---

1. Check if you can see the channel name
2. Check if users list appears
3. Try sending a message
4. Try IRC commands: /nick testnick


--- Step 5: Test from Different Browser ---


  Open the page in a different browser or incognito mode
  Verify both users can see each other and chat


--- Step 6: Check Browser Console ---


  Press F12 to open Developer Tools
  Go to Console tab
  Look for any errors (should see connection logs)


--- Step 7: Test WebSocket Connection ---


  Use online WebSocket tester:
  https://www.piesocket.com/websocket-tester


  URL: wss://irc.yourdomain.com:7443
  Click Connect
  Should show "Connection Established"


================================================================================
7. POST-INSTALLATION STEPS
================================================================================


--- Configure Firewall ---


UFW

  sudo ufw allow 7443/tcp
  sudo ufw reload


iptables

  sudo iptables -A INPUT -p tcp --dport 7443 -j ACCEPT
  sudo iptables-save


--- Setup Monitoring ---


  Create a monitoring script to check if UnrealIRCd is running:


  nano /usr/local/bin/check-unrealircd.sh


  Add:


  #!/bin/bash
  if ! pgrep -x "unrealircd" > /dev/null; then
      echo "UnrealIRCd is not running. Starting..."
      cd /home/unrealircd/unrealircd
      ./unrealircd start
  fi


  Make executable:


  chmod +x /usr/local/bin/check-unrealircd.sh


  Add to crontab:


  crontab -e


  Add line:


  */5 * * * * /usr/local/bin/check-unrealircd.sh


--- Setup Log Rotation ---


  Create logrotate config:


  sudo nano /etc/logrotate.d/unrealircd


  Add:


  /home/unrealircd/unrealircd/logs/*.log {
      daily
      rotate 7
      compress
      delaycompress
      missingok
      notifempty
      postrotate
          /home/unrealircd/unrealircd/unrealircd rehash
      endscript
  }


--- Create Backup Script ---


  Backup UnrealIRCd configuration:


  nano /usr/local/bin/backup-unrealircd.sh


  Add:


  #!/bin/bash
  BACKUP_DIR="/backup/unrealircd"
  DATE=$(date +%Y%m%d)
  mkdir -p $BACKUP_DIR
  tar -czf $BACKUP_DIR/unrealircd-conf-$DATE.tar.gz /home/unrealircd/unrealircd/conf/


  Make executable:


  chmod +x /usr/local/bin/backup-unrealircd.sh


--- Document Your Setup ---


  Create a local documentation file with:
• Your specific configuration
• Custom settings
• Firewall rules
• Any modifications made


--- Join Support Channels ---

• UnrealIRCd Support: irc.unrealircd.org #unreal-support
• WordPress Support: https://wordpress.org/support/plugin/badwolf-web-irc-client/


================================================================================


Congratulations! Your Badwolf Web IRC Client is now installed and configured.


For troubleshooting, see TROUBLESHOOTING.txt
For advanced configuration, see CONFIGURATION.txt


Support:
• GitHub: https://github.com/badwolf1972/web-irc-client
• WordPress: https://wordpress.org/support/plugin/badwolf-web-irc-client/
