Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
192 lines (124 sloc) 5.67 KB

SWI (Services Web Interface)


author siniStar (Austin Ellis)

author email siniStar [at] IRC4Fun [dot] net

author url

version 3.4.0


This file is part of SWI.

SWI is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

SWI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with SWI. If not, see

SWI Web Panel for Xtheme IRC Services (and Atheme & Atheme forks)

SWI is a simple web panel for Xtheme IRC services. It aims to be clean, sleek and fast. With minimul installation and configuration required. SWI is a fork of EGs ( with some bug fixes, cosmetic improvements and additional features and consoles in an effort to give users of networks running Atheme Services the ultimate control over their IRC accounts, nicknames, channels, memos, vhosts and BotServ use via the World Wide Web.

Notable New Features:

1) NickServ Settings page
2) ChanServ Settings page
3) ChanServ WAITING list added to OperServ dashboard for networks running chanserv/moderate with Atheme (optional)
4) HostServ WAITING list added to OperServ dashboard (optional)
5) BotServ consoles added: BOTLIST, ASSIGN, UNASSIGN and BOT MANAGEMENT (add/change/delete) for Services Operators
6) Current Sessions page added to main dashboard
7) Facebook & Twitter links for networks (optional)
8) GroupServ console & functionality added (optional)
9) ReCaptcha v2
10) Configure whether to show +qah in flags assistance to users based on how the network is configured.
11) Update to core framework for newer versions of PHP to get rid of warnings and notices.
12) Update config.php to config.example.php so that existing configs are not overwritten by updates.


If you need support please come talk to me on in #SWI however before doing that make sure you read this file, at least twice. You can also find me on Freenode ( in #SWI

For News, Updates and Security Advisories, please subscribe to the XthemeOrg News mailing list at:


During this installation I'm going to assume a few things.

1) that you know your way around a shell
2) that you have some understanding of the mysql cli client tool
3) That you have Xtheme IRC Services (or an Atheme fork) experience running with both the httpd and xmlrpc modules running.

First your going to need to obtain a copy of SWI one can be found here

Next up you're going to have to edit the swi/config/config.example.php file to reflect the settings of your web server and Xtheme installation.

Cleaner URI's (Optional)

You may want to remove the index.php in the URI.

to something like

This is current supported on Apache, Lighttpd, Nginx and any other web server that supports some form of URI re-writing. Below I've included a few example of re-writes.


<IfModule mod_rewrite.c>
	RewriteEngine On
	# You need to change the path to match that of your installation.
	# For example if you installed the SWI system to you would 
	# change that line to read:
	# RewriteBase /swi/
	# Alternately if your install was located on a subdomain example: 
	# we would change the RewriteBase line to read:
	# RewriteBase /
	RewriteBase /swi/
	RewriteCond %{REQUEST_URI} ^system.*
	RewriteRule ^(.*)$ /index.php?/$1 [L]
	RewriteCond %{REQUEST_URI} ^application.*
	RewriteRule ^(.*)$ /index.php?/$1 [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(.*)$ index.php?/$1 [L]

<IfModule !mod_rewrite.c>
	ErrorDocument 404 /index.php


url.rewrite-once = (
	"/(.*)\.(.*)" => "$0",
	"/(css|files|img|js|stats)/" => "$0",
	"^/([^.]+)$" => "/index.php/$1"


server {

	listen   80;
	root /var/www/nginx-default/;
	access_log  /var/log/nginx/localhost.access.log;
	index index.php index.html index.htm;

	error_page 500 502 503 504  /50x.html;

	location /swi/ {
    	if (-f $request_filename) {
        	expires max;
    	if (!-e $request_filename) {
        	rewrite ^/swi/(.*)$ /swi/index.php/$1 last;

	location = /50x.html {
    	root /var/www/nginx-default;

	location /swi/index.php {
    	fastcgi_index index.php;
    	fastcgi_param SCRIPT_FILENAME /var/www/nginx-default/swi/index.php;
    	include fastcgi_params;


That's it! You should be able to direct your browser to and login using your Xtheme/Atheme Nickserv account nickname and password.


Please report all issues/bugs to Issues ( (in addition to IRC).

Stay Current with XthemeOrg

For News, Updates and Security Advisories, please subscribe to the XthemeOrg News mailing list at: