GNUWorld installation Ubuntu 24.04 (ccontrol, cservice)
Here are the steps to install GNUWorld (cservice & ccontrol) modules:
1) First we update the system and install the necessary packages for the installation:
• apt update
• apt upgrade
• apt install build-essential wget git libssl3t64 libssl-dev openssl bison libreadline-dev zlib1g-dev automake make flex byacc libxmlsec1t64 libxmlsec1-dev liboath-dev liboath0t64 libboost-all-dev libpq-dev
2) Install Postgresql 16:
• apt install postgresql-server-dev-16 postgresql-client-16 postgresql postgresql-contrib
3) We need to start PgSQL server and enable PgSQL start on reboot:
• systemctl start postgresql
• systemctl enable postgresql
4) Now we edit postgresql.conf And here things will depend on personal preference, specifically whether you’re going to run the database and GNUWorld on the same local server or not. If you’re going to run both on the same server, there’s nothing to edit, but if, for example, you want to run the website on a different server y lets pretend your WAN ip is “5.230.226.76” but you replace that ip for yours, then you make the following changes:
• nano /etc/postgresql/16/main/postgresql.conf
listen_addresses = ‘127.0.0.1, 5.230.226.76’
port = 5432
Save the file and close it.
• Now we edit pg_hba.conf, here we must give access to the IP address where the cservice page would be running. Let’s say the page would be running on a remote server with IP address “167.114.8.254” (remember to change this IP address to that of your server). nano /etc/postgresql/15/main/pg_hba.conf
You add the following line:
host all all 167.114.8.254/32 scram-sha-256
Restart PgSQL server with this command: systemctl restart postgresql
Create a PostgreSQL user/role:
• su – postgres
• psql
• Create user/role: CREATE USER gnuworld WITH PASSWORD ‘your_password_here’;
Create cservice (X), ccontrol (UWorld) and local_db (WebPage):
CREATE DATABASE cservice with OWNER='gnuworld' ENCODING='SQL_ASCII' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;CREATE DATABASE ccontrol with OWNER='gnuworld' ENCODING='SQL_ASCII' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;CREATE DATABASE local_db with OWNER='gnuworld' ENCODING='SQL_ASCII' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;
Exit pgsql console type: \q
As root create gnuworld user:
[root@raspberry:~]$ adduser gnuworld
info: Adding user gnuworld' ... info: Selecting UID/GID from range 1000 to 59999 ... info: Adding new groupgnuworld’ (1007) …
info: Adding new user gnuworld' (1007) with groupgnuworld (1007)’ …
info: Creating home directory /home/gnuworld' ... info: Copying files from/etc/skel’ …
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for gnuworld
Enter the new value, or press ENTER for the default
Full Name []: GNUWorld Account
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
info: Adding new user gnuworld' to supplemental / extra groupsusers’ …
info: Adding user gnuworld' to groupusers’ …
5) Installation of GNUWorld cservice and ccontrol modules
• su – gnuworld
• git clone https://github.com/UndernetIRC/gnuworld
• cd gnuworld
• autoreconf -ivf
• ./configure --enable-modules=cservice,ccontrol
• gmake
• gmake install
