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-serverpackage 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-serverprogram, 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 withsudo -u parideserver paride-server config set KEY VALUE. paride-server --versionsays .NET is missing: the runtime is installed where the program does not find it. AddEnvironment=DOTNET_ROOT=...withsudo 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.