UnrealIRCd webpanel

The UnrealIRCd Administration WebPanel gives you an overview of your IRC network, with detailed information about servers, users and channels. You can easily add and remove server bans, spamfilters and do other administrative tasks, all from the convenience of your web browser. The admin panel uses UnrealIRCd's JSON-RPC feature.

Screenshots
       

Requirements
Requirements: The webpanel can run on the same machine as UnrealIRCd or can be hosted elsewhere.
 * UnrealIRCd 6.0.6 or later
 * A webserver (e.g. apache or nginx)
 * PHP 8 or later

PHP 8 is relatively new, see PHP 8 Installation instructions for help on installing it.

Configuring UnrealIRCd
In UnrealIRCd you need to load the required JSON-RPC modules. Simply put this in your unrealircd.conf: include "rpc.modules.default.conf";

Then, open up a port (Listen block) and add at least one api user (Rpc-user block): /* HTTPS on port 8600 for the JSON-RPC API */ listen { ip *; port 8600; options { rpc; } }

/* API user */ rpc-user adminpanel { match { ip 127.*; } password "password"; }

If you are not running the webpanel on the same machine as UnrealIRCd, then change the  from above to your web servers public IP.

Configuring the webpanel
Note: This guide assumes the webroot directory is  and that the panel will be in a sub-directory called. In some distros or setups you have to install at another location.


 * 1) Go to your webserver root and clone the webpanel repository:
 * cd /var/www/html
 * git clone https://github.com/unrealircd/unrealircd-webpanel
 * 1) Go into the directory and run composer to install the dependencies (If you don't have composer, then install it first).
 * cd unrealircd-webpanel
 * composer install
 * 1) Change the ownership so the webpanel can write to its own files (needed for the setup which writes to the configuration file, and also for using and installing plugins). Typically this user is called www-data on Debian/Ubuntu (for other OS's or more complex setups, see Permissions:
 * sudo chown www-data:www-data /var/www/html/unrealircd-webpanel -R
 * 1) Now surf to   (adjust the URL to your case) and follow the instructions.
 * 2) After the setup succeeds:
 * 3) * log in to the webpanel
 * 4) * go to Plugins, click on your username and tick all permissions, Save
 * 1) * log in to the webpanel
 * 2) * go to Plugins, click on your username and tick all permissions, Save

Permissions
If the installer redirects you back to here, then you have not set the ownership and/or permissions correctly.

The webpanel needs to be able to write its own files (needed for the setup which writes to the configuration file, and also for using and installing plugins). Typically this user is called www-data on Debian/Ubuntu, so you run: sudo chown www-data:www-data /var/www/html/unrealircd-webpanel -R

If you use a different OS then sometimes the user is called.

If you are on a multi-user server with virtual hosting, and your user is already the "web user" (eg: sitexyz), then maybe you don't need to change anything.

Authentication
We have two authentication plugins:
 * SQL-based
 * File-based

File based authentication
This reads and writes to files in the  directory. It should work for everyone.

SQL Authentication
To use the SQL Authentication plugin you first need to create a database and create a user in MySQL or MariaDB.

Typical commands to do so are: CREATE DATABASE unrealircdwebpanel; CREATE USER 'unrealircdwebpanel'@'localhost' IDENTIFIED BY 'enter-some-random-password-here'; GRANT ALL ON unrealircdwebpanel.* TO 'unrealircdwebpanel'@'localhost';

During the setup you will need to enter the SQL username as, the username as   and password as.

Upgrading
If you want to update to the latest webpanel git version:


 * 1) Change to your webpanel directory, eg

Developers
Developers of the webpanel will naturally use the same procedure as above. However, sometimes you will want to update to a newer version of the unrealircd-rpc-php library. You then need to run:

composer update git commit composer.lock Commiting the composer.lock file updates the dependency for all other users, that way a  by end-users will update to exactly the version that   just installed.
 * 1) For devs only!