This page applies to the Linux version of Ceres.
Download the most current version of Ceres for Linux.
NOTE: As of Nov 19, 2023, Ceres for Linux uses the same program for GUI and non-GUI (systemd) modes; CeresService has been removed.
Extract the downloaded zip file somewhere in your home directory; for example:
mkdir ~/Ceres && cd ~/Ceres unzip ../Ceres_release-0-0-4_linux_x64.zip
Make sure you have installed .NET Runtime version 8.0.
You will need to create the configuration file, config.toml, before running Ceres. You can do this automatically by running the GUI, or manually using the information below.
version = 1 [login] username = "" password = "" botname = "" world = "" [avatar] x = 0.0 y = 0.0 z = 0.0 yaw = 0.0 pitch = 0.0 type = 0 [options] single_user_mode = true notify_users = true default_texture = 0 default_height = 0.0 default_rotation = 0 texture_min = 0 texture_max = 65535
Fill in the appropriate values in the [login] section.
The single_user_mode option must be set to true if running in a world where you do not have "eminent domain" permissions.
Run the command dotnet Ceres.dll -- --no-gui to be sure Ceres starts and operates as expected. Then, you can Ctrl+C to shutdown the instance and install it as a systemd service.
sudo mkdir /srv/ceres sudo chown yourUsername /srv/ceres cp ~/CeresService/* /srv/ceres
Make sure the config.toml file is in this directory.
[Unit] Description=Ceres VP Terrain Manager [Service] # systemd will run this executable to start the service # if /usr/bin/dotnet doesn't work, use `which dotnet` to find correct dotnet executable path ExecStart=/usr/bin/dotnet /srv/ceres/Ceres.dll -- --no-gui # IMPORTANT: set the working directory so that Ceres finds the correct files WorkingDirectory=/srv/ceres # to query logs using journalctl, set a logical name here SyslogIdentifier=Ceres # Use your username to keep things simple. # If you pick a different user, make sure dotnet and all permissions are set correctly to run the app # To update permissions, use 'chown yourusername -R /srv/ceres' to take ownership of the folder and files, User=yourUsername # This environment variable is necessary when dotnet isn't loaded for the specified user. # To figure out this value, run 'env | grep DOTNET_ROOT' when dotnet has been loaded into your shell. Environment=DOTNET_ROOT=/usr/share/dotnet [Install] WantedBy=multi-user.target
Make sure to update the User to your username. Refer to the comments in the file for a basic explanation.
sudo systemctl daemon-reload sudo systemctl start ceres sudo systemctl status ceres
sudo systemctl enable ceres
# ensure the service restarts after crashing Restart=always # amount of time to wait before restarting the service RestartSec=5