-# unrealircd-webpanel
- UnrealIRCd Administration WebPanel
+ ## UnrealIRCd Administration WebPanel
- <img src="https://i.ibb.co/yP7tk6B/Screenshot-from-2023-01-10-17-54-01.png">
+[![Version](https://img.shields.io/badge/UnrealIRCd-6.0.6_or_later-darkgreen.svg)]()
+[![Version](https://img.shields.io/badge/Version-Beta-blue.svg)]()
+[![Maintained](https://img.shields.io/badge/Maintained-yes-darkgreen.svg)]()
+[![Unreal](https://img.shields.io/badge/PHP-8.0_or_later-darkgreen.svg)](https://unrealircd.org)
+
+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.
+
+## Example Overview from Desktop
+ <img src="https://i.ibb.co/7SdFZnk/Screenshot-from-2023-01-14-07-26-21.png">
+ <img src="https://i.ibb.co/6vQ6wg7/spamfilter.png">
+
+## Example Overview from Mobile
+<div class="row">
+<img src="https://i.ibb.co/KGLdB43/Screenshot-20230123-233804-Chrome.jpg" height="30%" width="30%">
+<img src="https://i.ibb.co/tB980kd/Screenshot-20230124-000204-Chrome.jpg" height="30%" width="30%">
+</div>
## Prerequisites ##
+- UnrealIRCd 6.0.6 or later
+- A webserver (e.g. apache or nginx)
- PHP 8 or later
-- A webserver
-- UnrealIRCd 6.0.6-git recommended. Minimal functionality available with UnrealIRCd 6.0.5.
Note: PHP 8 may require special installation instructions.
Here are some instructions for:
-- [Ubuntu 20/22](https://linuxhint.com/install-php-8-ubuntu-22-04/)
+- Ubuntu 22.04: `apt-get install apache2 libapache2-mod-php`
+- [Ubuntu 20.04](https://linuxhint.com/install-php-ubuntu/)
- [Debian](https://www.vultr.com/docs/how-to-install-php-8-on-debian-11/)
- [CentOS](https://www.tecmint.com/install-php-8-on-centos/)
## Installation ##
Note: This instructional assumes this is going to be hosted in the webroot directory `/var/www/` (html/) directory.
-You may want to hide this somehow. Well, you definitely should. I don't know how to do that though. Sorry.
Please make sure you have [correctly setup UnrealIRCd for use with JSON-RPC](https://www.unrealircd.org/docs/JSON-RPC) before you continue.
cp config.php.sample config.php
nano config.php
```
-The file will look like this:<br>
-<img src="https://i.ibb.co/zZ7LsXD/Screenshot-from-2023-01-04-17-03-20.png">
-
Edit the configuration file to match your UnrealIRCd's RPC credentials and save
-NOTE: You most likely want to put the webpanel behind a login, using a
-`.htaccess` file or similar.
+IMPORTANT: You will want to put the webpanel behind a login, using a
+`.htaccess` file or similar. Don't open it up to the world!
## Updating for end-users ##
For end-users, when you want to update to the latest version:
```bash
git pull
-composer update
+composer install
```
+## Authentication
+Right now, by default everyone being able to access the URL can use the
+webpanel. In future versions this will no longer be the case.
+
+### SQL Authentication
+First, create a database and a user in MySQL or MariaDB. Typical commands to
+do so are:
+
+```sql
+CREATE DATABASE unrealircdwebpanel;
+CREATE USER 'unrealircdwebpanel'@'localhost' IDENTIFIED BY 'enter-some-random-password-here';
+GRANT ALL ON unrealircdwebpanel.* TO 'unrealircdwebpanel'@'localhost';
+```
+
+Now, open your `config.php` and in the define PLUGINS section load the `sql_auth`
+module by uncommenting the // from the `"sql_auth"` line.
+And fill in the information for your SQL setup, so set `SQL_IP`,
+`SQL_DATABASE`, `SQL_USERNAME` and `SQL_PASSWORD` properly.
+
+Finally, configure a first admin user by setting the information in
+`SQL_DEFAULT_USER`. This will be added to the SQL database first time you
+start the panel.
+
+Then, surf to the webpanel page and you should see a login page. If you
+don't see a login page then you have not loaded the sql_auth plugin
+properly.
+
+Once succesfully logged in you should remove the `SQL_DEFAULT_USER` item
+again from your `config.php` because it is no longer needed.
+
+You can now add and delete users through the `Panel Access` tab.
+
## 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:
```bash
# For devs only!
-composer install
+composer update
git commit composer.lock
```
Commiting the composer.lock file updates the dependency for all