aboutsummaryrefslogtreecommitdiffstats

README

About

This is a fork of FICS(Free Internet Chess Server) version 1.6.2 made by Richard Nash. The fork is maintained by the RPBLC computing network and in particular Markus Uhlin. The main goal of the fork is to modernize the codebase, improve the security and fix bugs. New features, for example, other chess variants will be added in a later stage.

IPv6

IPv6 connections are at the moment not supported.

SAST Tools

PVS-Studio - static analyzer for C, C++, C#, and Java code.

Installation

Begin the installation with creating a new user, dedicated for running the FICS.

# useradd -c "FICS user" -m -p "AccountPassword" chess

When the user has been created login to its account and clone the Git repository:

$ su -l chess
$ mkdir git
$ cd git
$ git clone https://github.com/uhlin/fics.git
$ cd fics

Edit FICS/config.h with a text editor and save the file.

$ emacs FICS/config.h

From the top-level directory of the cloned Git repository begin the building by running make.

$ make

If the build was successful it's time to install the chess server by running make install.

$ make install

Done!

Make variables

If you want you can customize the FICS_HOME and PREFIX make variables found in options.mk. But it isn't needed if you've followed the installation steps above.

Manual pages

To install the manual pages, type:

$ sudo make install-manpages

Replace sudo with doas if you are running OpenBSD. The destination will always be prefixed to /usr/local, i.e. system wide, therefore extra privileges are required.

Perhaps you don't want to add the dedicated chess user to the sudoers list. In fact YOU SHOULDN'T if you care about security. Instead login as root, change directory and install the manual pages.

Running the server

As root, do the following (unless you aren't already logged in as chess):

# su -l chess
$ screen fics

This assumes that GNU Screen is installed on your computer.

To detach the screen, type:

$ (CTRL+a+d)

And to resume, use:

$ screen -r

The same is achievable with the terminal multiplexer tmux in case you prefer that over GNU Screen.

Install GNU Screen

To install GNU Screen on OpenBSD, run:

# pkg_add -i screen

Run in the background

Starting from version rpblc-1.4.3 you can run the server in the background by typing:

$ fics -d

Run as a cron job

FICS comes with an autorun script (fics_autorun.sh) that is suitable to be run as a cron job for the dedicated chess user.

Edit the crontab by typing:

$ crontab -e

And add the following line:

*/5 * * * * /home/chess/bin/fics_autorun.sh

Save the file and exit.

To display the current crontab, type:

$ crontab -l

Creating registered players

As root, do the following:

# su -l chess
$ fics_addplayer UserName FullName EmailAddress

Log out:

$ (CTRL+d)

The fics_addplayer program is located in /home/chess/bin, along with makerank. The dir /home/chess/bin should in general be automatically added to the PATH for the chess user.

$ man 1 fics_addplayer
$ man 1 makerank

Happy gaming!