Run a Scient server in the background
This is an advanced deployment for a machine that should host a Scient environment without keeping a terminal open. The ordinary local workflow uses the server bundled with Scient desktop and does not need this setup.
Background services are supported for a user account on Linux and macOS. Windows background-service installation is not currently supported.
Requirements and package authority
Use the server archive from the exact
ScientFactory/scient-desktop release
you want to run. Each release publishes
scient-server-<version>.tgz from the same source as its desktop artifacts.
The target machine also needs a Node.js version accepted by that archive.
Scient does not publish T3’s npm package. Never substitute t3@latest for the
release URL below. In these commands, the final t3 is the server archive’s
retained compatibility executable name, not a request for a T3 package.
Set the exact Scient release once in the current shell, replacing the quoted placeholder, then install:
SCIENT_SERVER_VERSION="<version>"
SCIENT_SERVER_PACKAGE="https://github.com/ScientFactory/scient-desktop/releases/download/v${SCIENT_SERVER_VERSION}/scient-server-${SCIENT_SERVER_VERSION}.tgz"
npx --yes \
[email protected],[email protected] \
--package="$SCIENT_SERVER_PACKAGE" \
t3 service install
With those variables still set in the shell, use the same package and replace only the final service action to inspect, repair, or remove the service:
# Show the installed service, selected runtime, and log path.
npx --yes [email protected],[email protected] --package="$SCIENT_SERVER_PACKAGE" t3 service status
# Install the exact runtime and current launcher, then restart the service.
npx --yes [email protected],[email protected] --package="$SCIENT_SERVER_PACKAGE" t3 service update
# Stop the service and remove it from automatic startup.
npx --yes [email protected],[email protected] --package="$SCIENT_SERVER_PACKAGE" t3 service uninstall
Let active agent work and terminal commands finish before an install, update, or uninstall. If a remote update is already running, wait for its terminal outcome before starting a local service operation.
Safe updates
During an update, the service prepares and checks the exact target version before it replaces the active server. It then:
- installs and preflights the exact target archive;
- stops the old child only after accepting the trial;
- saves a recovery snapshot of the server state;
- starts the target and waits until it is ready; and
- keeps the target or restores the previous working version and state.
If the installed service is too old to perform this safely, the update is
blocked before it changes project state. Run the exact local service update
command once to repair the service, then retry from Scient.
Platform behavior
Linux
Scient uses a systemd user unit at
~/.config/systemd/user/scient.service. Installation enables user lingering
so the service can remain active without an interactive login.
macOS
Scient uses the launch agent
~/Library/LaunchAgents/com.scientfactory.scient.service.plist. It starts when
the user logs in and stops when that login session ends. Installing over SSH
cannot immediately start the agent when no graphical user is logged in; the
command may report that final start failure even though the agent will start at
the next login.
macOS can attribute protected-folder permission prompts to the Node executable recorded in the launch agent. If the server cannot access Desktop, Documents, or Downloads, review that executable in System Settings → Privacy & Security. Do not grant broader filesystem access unless the hosted projects require it.
Connection and removal boundaries
Installing a service does not publish it to the internet, create a Scient cloud account, or authorize another client. Configure the intended SSH, direct, or private-network access separately; see Remote environments.
Revoking a client credential or disconnecting a remote environment does not uninstall the service. Conversely, uninstalling the service does not delete its project files or silently erase the server state directory.