PARIDEItaliano

PARIDE › User guides › Installing the server

Installing the server

The PARIDE server, paride-server, is a .NET 10 program: it runs on Linux and on Windows.

  • On Linux it runs as a system service, with its own user and never as root. Below are the steps for Debian 13, the same ones tested in the laboratory; with version 1.0 the paride-server package will do them by itself.
  • On Windows (10 from version 1803, and 11) it starts from its folder, also on the same PC as the client: see On Windows, further down.

On Linux: what you need

  • a Debian 13 machine, real or virtual, reachable from the workstations (in the office network or through a VPN: the server must not be exposed on the Internet);
  • the .NET 10 runtime;
  • the folder of the paride-server program, from Download.

1. The .NET 10 runtime

From Microsoft's repositories for Debian:

wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install dotnet-runtime-10.0
dotnet --list-runtimes          # Microsoft.NETCore.App 10.0.x must be there

2. User, program and folders

# the system user, without a shell
sudo useradd --system --user-group --home-dir /var/lib/paride-server --no-create-home \
             --shell /usr/sbin/nologin parideserver

# the program, owned by root: the service must not be able to change its own files
sudo install -d -m 0755 /usr/lib/paride-server
sudo cp -r paride-server/. /usr/lib/paride-server/
sudo chown -R root:root /usr/lib/paride-server
sudo chmod 0755 /usr/lib/paride-server/paride-server
sudo ln -sf /usr/lib/paride-server/paride-server /usr/local/bin/paride-server

# data and configuration, owned by the service user
sudo install -d -o parideserver -g parideserver -m 0750 /var/lib/paride-server
sudo install -d -o parideserver -g parideserver -m 0755 /etc/paride-server

# the service: the paride-server.service file ships with the program
sudo cp /usr/lib/paride-server/paride-server.service /etc/systemd/system/
sudo systemctl daemon-reload

The configuration lives in /etc/paride-server/paride-server.json: if it is missing, the server writes it by itself with the default values on the first start, and afterwards you change it from the Server page of the client or with paride-server config set.

3. Start

sudo systemctl enable --now paride-server
systemctl status paride-server                    # active (running)
sudo -u parideserver paride-server status         # version, workspaces, who is connected

status gives the version, the workspaces, the people and agents connected and where from. If the machine has a firewall, open the server's TCP port: you read it with sudo -u parideserver paride-server config list, under the port key.

4. The first workspace and the first user

# the project folder, owned by the service user
sudo install -d -o parideserver -g parideserver /srv/paride/project
sudo -u parideserver paride-server workspace add project /srv/paride/project

# who introduced themselves, and their approval with the 6-digit code
sudo -u parideserver paride-server user list
sudo -u parideserver paride-server user approve roberto-pc 123456 admin

Approve the first workstation as admin: from then on workspaces, users and settings can also be managed from the client, on the Server page. See Users and roles.

Run the commands as parideserver (sudo -u parideserver ...), not as root: a file written by root could no longer be changed by the service.

On Windows

You need the .NET 10 runtime for Windows x64 (".NET Runtime 10.0", from dotnet.microsoft.com) and the folder of paride-server for Windows, from Download. From a command prompt, in the folder of the program:

rem the server data (key, users, settings) and the first workspace
paride-server --data %LOCALAPPDATA%\PARIDE\host workspace add project C:\Projects\project

rem the server, which stays on while the window is open (Ctrl+C to stop it)
paride-server --data %LOCALAPPDATA%\PARIDE\host --console

From another window, with the same data folder:

paride-server --data %LOCALAPPDATA%\PARIDE\host status
paride-server --data %LOCALAPPDATA%\PARIDE\host user list
paride-server --data %LOCALAPPDATA%\PARIDE\host user approve roberto-pc 123456 admin

The client on the same PC connects to 127.0.0.1. If other workstations must reach it, the first time Windows asks whether to let the program through the firewall: allow it on private networks only.

Today on Windows the server is started by hand. The Windows installer, with the choice "client only" or "client and server", will start it by itself: at the user's logon, or as a Windows service for an always-on server used by several people.

Updating on Linux

sudo systemctl stop paride-server
sudo cp -r paride-server/. /usr/lib/paride-server/
sudo chmod 0755 /usr/lib/paride-server/paride-server
sudo systemctl start paride-server
paride-server --version

Update the server first, then the agents and the clients: an older client gets into a new server, the opposite not always.

Removing from Linux

sudo systemctl disable --now paride-server
sudo rm /etc/systemd/system/paride-server.service /usr/local/bin/paride-server
sudo systemctl daemon-reload
sudo rm -r /usr/lib/paride-server

Data, configuration and user (/var/lib/paride-server, /etc/paride-server, parideserver) stay until you remove them on purpose.

If something goes wrong

  • The service does not start and is not restarted: there is a mistake in the configuration. The reason is in journalctl -u paride-server; fix it with sudo -u parideserver paride-server config set KEY VALUE.
  • paride-server --version says .NET is missing: the runtime is installed where the program does not find it. Add Environment=DOTNET_ROOT=... with sudo systemctl edit paride-server.
  • A client stops saying the server key has changed: it happens after a reinstallation. The server's short code is shown by paride-server status; see Getting started.