GNUWorld / CMaster / CControl Manual
************************************************************************************************************************
************************************************************************************************************************
Version : 1.1
Author : Cti- Cti@zurna.org
Language : English
Document : General info (manual)
Last Update: 22/12/2001
Web Address: http://gnuworld.undernet.org/cmaster/manual.htm
UPDATES:
1.1 - Fixed missing sections (2.2, 2.3, 3.1) - Added links for easy use - Rewrite
HTML.
************************************************************************************************************************
This file contains general information about
the manuals. There are four main manuals you can find.
manual.gnuworld : GNUWorld installation guide
manual.ccontrol : ccontrol installation guide (EUworld)
manual.cservice : cservice installation guide (X)
manual.website : Customized Web Interface guide
************************************************************************************************************************
These manuals does NOT include problems occured during the compiling of GNUWorld,
I accept that
you compiled and configured GNUWorld correctly. But you can still find a quick
installation guide
inside the manual.gnuworld. For details refer to the README file by GNUWorld
development team.
If you still have some errors visit us at #coder-com on Undernet, if you are
lucky you can find
someone to help you there.
************************************************************************************************************************
ccontrol.manual includes
************************************************************************************************************************
Short description of ccontrol module
Setting up ccontrol for the first time
Example *.conf file
F.A.Q (not yet)
************************************************************************************************************************
cservice.manual includes
************************************************************************************************************************
Short description of cservice module
Setting up cservice for the first time
Example *.conf file
How to add extra level 1000's to DB
F.A.Q
************************************************************************************************************************
manual.website includes
************************************************************************************************************************
Short description of website
How to install Apache for your box
How to install an PHP interpreter
Config files for apache and php
Explanation on config.inc
F.A.Q (again)
If you have any questions regarding these fallowing topics please feel free
to mail to
"gnuworld-devel@lists.sourceforge.net"
and we will insert it as soon as possible.
************************************************************************************************************************
INDEX
************************************************************************************************************************
PART I - MANUAL.GNUWORLD
Section 1.1 - Obtaining GNUWorld with CVS
Section 1.2 - Building GNUWorld
Section 1.3 - Editing the config file (localhost.conf)
Section 1.4 - Running GNUWorld
PART II - MANUAL.CSERVICE
Section 2.1 - Setting up cservice module for the first time
Section 2.2 - Editing cservice.conf file
Section 2.3 - Adding Extra Level 1000 accounts to DB
PART III - MANUAL.CCONTROL
Section 3.1 - Setting up ccontrol module for the first time
Section 3.2 - Editing ccontrol.conf file
PART IV - MANUAL.WEBSITE
Section 4.1 - Obtaining Apache & PHP interpreter
Section 4.2 - Compiling Apache & PHP interpreter
Section 4.3 - Configuring Apache & PHP interpreter
Section 4.4 - Editing config.inc file
PART V - PostGreS Short Manual
************************************************************************************************************************
************************************************************************************************************************
************************************************************************************************************************
PART I - MANUAL.GNUWORLD
We assume that you have the fallowing stuff installed
and working properly on your box to run GNUWorld
- A working PostGreSQL server with right permissions
- An uplink IRC server with the proper U Lines
- Copy of GNUWorld (check section 1.1 to how to get)
- A machine to run GNUWorld
For the customized web site you also need the
following services working properly
- Running web server (Recommended Apache)
(get latest apache server relase from http://www.apache.org)
- PHP interpreter
(get latest relase from http://www.php.net)
************************************************************************************************************************
Section 1.1 * Obtaining GNUWorld and Web site with CVS
************************************************************************************************************************
1- cvs -d :pserver:anonymous@cvs.gnuworld.sourceforge.net:/cvsroot/gnuworld
login
2- When prompted for a password, hit the return key
3- cvs -z3 -d :pserver:anonymous@cvs.gnuworld.sourceforge.net:/cvsroot/gnuworld
co gnuworld
4- cvs -z3 -d :pserver:anonymous@cvs.gnuworld.sourceforge.net:/cvsroot/gnuworld
co website
(Execute the above commands on a single line in your shell) Line 3 will create
a directory under your current directory named "gnuworld" in which all of
GNUWorld's files will be placed. Line 4 will create a directory under your
current directory named "website" in which all of website files will be
placed.
If you downloaded the tar gzipped version of GNUWorld use
the fallowing command to unpack the archive as fallows:
gzip -cd gnuworld.xxx.tar.gz | tar xf -
where xxx is the version of GNUWorld you have obtained.
************************************************************************************************************************
Section 1.2 * Building GNUWorld
************************************************************************************************************************
To build GNUWorld you need a complier that supports ANSI C++ Standart.
(gmake also recommended).
1- cd gnuworld
2- ./configure
(if you do not want to load all the modules but a specific one
use the following commands as needed)
CONFIGURE FOR ONLY THE CSERVICE CLIENT:
./configure --enable-modules=cservice
CONFIGURE FOR ONLY THE CCONTROL CLIENT:
./configure --enable-modules=ccontrol
CONFIGURE BOTH THE CSERVICE & CCONTROL MODULES:
./configure --enable-modules=cservice,ccontrol
Configure will build the Makefiles that GNUWorld will use to
compile its source.
3- make
This will build all the libraries and binaries.
4- make install
To install the binaries and library.
************************************************************************************************************************
Section 1.3 * Editing the config file
************************************************************************************************************************
Switch to the /bin directory and edit the localhost.conf
uplink = 25.202.242.30 # The server we will connect to
port = 5500 # The port we will connect to
password = santa # Our server password in Uplink's C: Line
name = channels.undernet.org # Our server name
description = Channel Service # The description will be seen in /links
numeric = 63 # Our server numeric (must be unique on the network)
maxclients = 50 # maxclients we can run
module = libcservice.la (related conf file)
module = libccontrol.la (related conf file)
Example:
module = libcservice.la cservice.conf
(This will load the cservice module and looks for cservice.conf file for its
configration. If you have a
differnt name than cservice.conf, like X.conf etc. specify it here like : module
= libcservice.la X.conf )
Don't touch the rest of the file for fine tuning.
************************************************************************************************************************
Section 1.4 * Running GNUWorld
************************************************************************************************************************
Simply type
./gnuworld -f localhost.conf
EOP ( End of Part :P )
************************************************************************************************************************
************************************************************************************************************************
************************************************************************************************************************
PART II - MANUAL.CSERVICE
CService module is used to maintain channels over the network and keep them
open
********************************************************************************
Section 2.1 * Setting up cservice for the first time
********************************************************************************
We assume that pgSQL is running and configured and you have the right permissions
to create and
modify a database.
1- Create the database for cservice module
>createdb cservice
(assume cservice database does not exist)
2- Install the PL Language
> createlang plpgsql cservice -L /usr/local/pgsql/lib
3- Switch to gnuworld/doc directory
4- Load the schema
> psql cservice
-- This should be the same as DocumentRoot.
*****************************
in the php.ini file edit these
[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On
[extension_dir]
; Directory in which the loadable extensions (modules) reside.
extension_dir = ./
This is the basic stuff for apache and php. If you have more questions come
and ask in #coder-com
But do not forget we are not apache experts but couple of ppl coding for Undernet
on our free
times.
********************************************************************************
Section 4.4 * Editing config.inc file
********************************************************************************
Config.inc file is the only file you have to EDIT for your *very own* customized
Web Interface. If you don't have PHP experience don't play with the other files
that you might have screw them up.
define(LIVE_LOCATION,"/live"); define this to "" if you dont put it in a subdirectory
like '/live' (default) but in '/' for example.
define(IFACE_URL,"http://cservice.undernet.org/live/"); // The GUI main URL
(the one to access it)
define(SERVICE_CHANNEL,"#cservice"); // The CService Official Channel
/* NOTE: to FORGE reply adresses, user 'nobody' needs a 'Tnobody' line added
in /etc/sendmail.cf (or equiv.) */
define(NETWORK_NAME,"Undernet"); // Define this to your network name... better
to be a "normal" single word ;)
define(BOT_NAME,"X"); // You bot's name, defines some strings in the website
to fit more your configuration.
define(IRC_SERVER,"irc.undernet.org"); // Default server for irc:// option.
define(NETWORK_EMAIL,"cservice@undernet.org"); // the email of your network
(default).
define(PURGE_EMAIL,"purge@undernet.org"); // the email where channel purge request
form is sent.
define(XAT_EMAIL,"x@undernet.org"); // the email where manager change form is
sent.
define(FROM_NEWUSER,"cmaster@undernet.org"); // the From: email for a NEWUSER
registration email.
define(FROM_NEWUSER_SUBJECT,"Your Undernet Channel Service Account"); // the
subject of that mail.
define(FROM_FPASS,"cmaster-recovery@undernet.org"); // the From: email for a
FORGOTTEN PASSWORD email.
define(FROM_FPASS_SUBJECT,"Your Undernet Channel Service Password for "); //
the sujbect of that mail. 'username' is added at this string's end.
/******************************/
/* LOCAL DATABASE DEFINITIONS */
/******************************/
define(LOCALDB_NAME,"local_db"); // the local database that contains the gnuworld/doc/local_db.sql
information.
define(LOCALDB_USER,"gnuworld"); // the local user that has full access to LOCALDB_NAME.
define(LOCALDB_PASS,""); // the password, use blank if you dont use passwords.
/*******************************/
/* REMOTE DATABASE DEFINITIONS */
/*******************************/
define(REMOTEDB_NAME,"cservice"); // the remote databasr that contains cservice.sql,
cservice.web.sql information.
define(REMOTEDB_USER,"gnuworld"); // the user that has access remotely to that
db
define(REMOTEDB_PASS,""); // the password, use blank if you dont use passwords.
define(REMOTEDB_HOST,"127.0.0.1"); // define to whatever host/IP of the "remote"
db is.
/*******************************/
/* LOCAL WEBSITE CONFIGURATION */
/*******************************/
define(HEAD_LOGO,"cservice-head.jpg"); // this points to an existing image in
website/docs/gnuworld/images. 59 pixels max height.
define(HOSTING_LOGO,""); // this image should go in website/docs/gnuworld/images
and be maximum 250*33 pixels.
define(HOSTING_URL,"");
define(CSERVICE_SITE_URL,"../");
those options are only used when using multiple mirrors of your CService website
if you dont do mirrors at all, just leave those options as they are, this wont
affect anything.
if you do mirrors, the following options means that if the website is accessed
with "ROUNDROBIN",
it will automatically redirect accesses to "LOCALMIRROR".
define(LOCALMIRROR,"cservice-live.xx.undernet.org");
define(ROUNDROBIN,"cservice-live.undernet.org");
/* IP CHECK OPTIONS */
define(IPCHK_MAXHITS,3); // Number of failed forgotten_pass/login attempts before
IP_LOCK
define(IPCHK_BANTIME,86400); // Time your IP/username is locked (seconds) when
caught into IPCHK_MAXHITS+ failed attempts.
define(LREQ_TIME,600); // min time between forgotten password requests to avoid
flooding, set this to 0 to disable.
define(UNETUB_TIME,14400); // 4 hours before being able to create another user
from the same IP. set to 0 to disable.
!!!! DONT FORGET TO REMOVE THE LAST LINE ON THE CONFIG.INC OR IT WILL NOT
WORK... !!!!
For More questions you know what to do !!! Send them to me and I will add them
on the next relase of this help file.
EOP
************************************************************************************************************************
************************************************************************************************************************
************************************************************************************************************************
PART V - PostGre Short Installation
This is the file that you can find also in the INSTALL file.
If you have questions please send them to cti@zurna.org
and I will add them to FAQ's when I do it. Cti-
(You have to switch to Super User -Root- to do these steps)
./configure
gmake
gmake install
adduser postgres
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
adduser cmaster
When it asked you "this user can add other users? y/n" Hit no (or yes)
and when it asked "this user can create databases" hit YES
After that switch to cmaster ( or whatever your username is)
and type /usr/local/pgsql/bin createdb cmaster (or what you want your database
name to be)
And its ready now !!!!