GNUWorld Website Setup on Mint 21.1 Linux server

Post Reply
User avatar
ZioN
Site Admin
Posts: 27
Joined: Sat Feb 29, 2020 9:31 pm

GNUWorld Website Setup on Mint 21.1 Linux server

Post by ZioN »

Hello,
Bellow you can find all the steps needed to be done in order to build thr CService (X) WebPage using Mint 21.1 linux server and PHP 8.1 version.

Please keep in mind that the IP Address of the machine used for this HOWTO is 192.168.1.122 and it should be changed with the IP address of the machine where you want to have the webpage installed.
OK, now let`s proceed....

1. First we ensure that we have everything installed :
php7.4, apache2 Server, Postgresql, composer

  • apt install build-essential
  • apt install net-tools
  • apt install software-properties-common
  • apt install apache2 apache2-bin apache2-data apache2-dev apache2-doc apache2-ssl-dev apache2-utils libapache2-mod-php php php-cgi php-cli php-common php-gd php-pgsql php-curl php-dev php-json php-readline php-mysql php-xml php-xmlrpc php-sqlite3 git flex bison libreadline-dev libssl-dev mlocate openssl zlib1g zlib1g-dev
Open php.ini file
  • pico /etc/php/8.1/apache2/php.ini file and change value "short_open_tag = Off" in "short_open_tag = On"
## We save and restart the apache2 service.
  • service apache2 restart

2. Now we proceed with installing composer as root:
  • curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
Skip Step 3 if local_db was already built when X was build and Webpage is on the same machine as X
3. Install Postgresql 14 :
  • apt install postgresql-client postgresql-client-common postgresql-common postgresql postgresql-server-dev-all libboost-all-dev
  • cd /etc/postgresql/14/main/
  • nano pga_hba.conf
Add the following line:
  • Host all all 192.168.1.133/32 trust
Save and close file
Open postgresql conf file and set the host/ip that pgsql runs under:
  • nano postgresql.conf
listen_addresses='192.168.1.133'
Save and close the file
Now we restart postgresql service:
  • service postgresql restart
We check the running status of postgresql server:
  • service postgresql status
Now we create user gnuworld and local_db databases in PostgreSQL:
  • su - postgres
  • psql
  • create user gnuworld;
  • CREATE DATABASE local_db with OWNER='gnuworld' ENCODING='SQL_ASCII' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;
We exit pgsql console:
  • \q
Type exit to return to root account

4 .We get the webpage source code from UniversalNet Official GitHub under user gnuworld:
  • su - gnuworld
  • git clone https://github.com/UndernetIRC/cservice-web
  • cd cservice-web/
  • composer install
  • cd php_includes/
  • cp config.inc.dist config.inc
#edit the file with your own values
  • cp cmaster.inc.dist cmaster.inc
#replace all containing "localhost" with IP of the currrent running PGSQL server.
  • cp blackhole.inc.dist blackhole.inc
Skip this step if local_db was already built when X was build and Webpage is on the same machine as X
  • git clone https://github.com/UndernetIRC/gnuworld
  • cd gnuworld/doc
  • psql -h 192.168.1.133 -U gnuworld local_db < local_db.sql
5. Now to create the live shortcut for the webpage as root:
  • cd /var/www/html/
  • chmod 711 ~gnuworld
  • chmod 711 ~gnuworld/cservice-web
  • chmod 755 ~gnuworld/cservice-web/php_includes
  • chmod 644 ~gnuworld/cservice-web/php_includes/config.inc
  • chmod 755 ~gnuworld/cservice-web/docs/gnuworld/
  • ln -s /home/gnuworld/cservice-web/docs/gnuworld live

6. TThere are two options to solve (IPR) restriction, bellow you can find how to on both.
  • su - gnuworld
6.1 - Fix (IPR) by inserting your ip into Admin account direct on database cservice.
  • pico ipr.sql
  • insert into ip_restrict (id, user_id, added_by, added, type, expiry, value) values (1, 1, 1, now()::abstime::int4, 1, 0, ‘192.168.1.122’);
##replace " 192.168.1.122 " with the ip address shown on whois on you on irc. !!!
  • /usr/local/pgsql/bin/psql -h 192.168.1.122 cservice < ipr.sql
##replace " 192.168.1.122 " with a real ip address of the machine hosting the cservice db.

6.2 - Fix (IPR) by disableing IPR option in config.inc file
  • su - gnuworld
  • cd gnuworld
  • pico cservice_web/php_includes/config.inc
  • change define("IPR_REQUIRED",1); to define("IPR_REQUIRED",0);
Save the file and close


7 In order to permit login on CService Web from local IP address like 192.168.xx.xx or 10.0.0.xx the following changes must be made:

nano /home/gnuworld/cservice-web/php_includes/config.inc
# Replace define("DISALLOW_RESERVED_BLOCKS",1); to define("DISALLOW_RESERVED_BLOCKS",0);

Now login using * accounts from local IP address is possible.


This HOWTO was last updated by ZioN
15 Jan 2023
Post Reply