Deploying on premise: Starting Linkurious
Linux systems
To start Linkurious Enterprise, run the start.sh
script in the linkurious-linux
directory.
Alternatively, run the menu.sh
script and click Start Linkurious.
By default, Linkurious Enterprise server will listen for connection on port 3000
.
However, some firewalls block network traffic ports other than 80
(HTTP).
See the Web server configuration documentation to learn how to make Linkurious Enterprise listen on
port 80
.
Windows systems
To start Linkurious Enterprise, run the start.bat
script in the linkurious-windows
directory.
Alternatively, run the menu.bat
script and click Start Linkurious.
The firewall of Windows might ask you to authorize connections to Linkurious Enterprise. If so, click on Authorize access.
Content of the linkurious-windows
directory:
Linkurious Enterprise starting up on Windows:
Mac OS systems
macOS prevents you from running applications downloaded from the internet.
To solve this problem, please follow these steps before starting Linkurious Enterprise.
It will allow macOS to run "untrusted" applications:
Up to macOS 14 (Sonoma)
- Open up the Terminal app;
- Run the following command:
xattr -rc <Linkurious_home_directory>
Since macOS 15 (Sequoia)
- Open up System Settings;
- In System Settings, navigate to "Privacy & Security" (⚠️ Leave the System Settings window open in the background);
- Open up the Terminal app (do not close System Settings);
- In Terminal, run
sudo spctl --master-disable
, type your admin password, confirm; - In System Settings, navigate out of the "Privacy & Security" page (e.g., Click on "Lockscreen"), then navigate back to "Privacy & Security";
- In System Settings, under "Privacy & Security", scroll down to the bottom of the page, click "Allow Application From" and select "Anywhere", type your admin password, confirm;
- You are done!
ℹ️ If the "Run Application from Anywhere" option does not appear, it means you missed some steps.
Start on macOS
Once you have followed the steps above (depending on your macOS version), you can start Linkurious Enterprise:
- Run the
start.sh.command
script in thelinkurious-osx
directory. - Alternatively, run the
menu.sh.command
script and click Start Linkurious.
Docker Linux
To start a Linkurious Enterprise docker image, please use the docker run
command.
Here is an example:
docker run -d --rm \
-p 3000:3000 \
--mount type=volume,src=lke-data,dst=/data \
--mount type=volume,src=lke-elasticsearch,dst=/elasticsearch \
linkurious:4.2.4
Bind mounts
If you choose to mount a host machine folder as a volume, please make sure that the user within the container has read and write access to the volume folders. By default, Linkurious Enterprise runs as the
linkurious
user (uid:2013
). You can do that by adding a--user
option to the docker run command. The folders that you want to mount must exist before starting Docker, otherwise Linkurious Enterprise will fail to start due to permissions errors. Please read the docker documentation to learn more.
Here is an example:
docker run -d --rm \
-p 3000:3000 \
--mount type=bind,src=/path/to/my/data/folder,dst=/data \
--mount type=bind,src=/path/to/my/elasticsearch/folder,dst=/elasticsearch \
--user "$(id -u):$(id -g)" \
linkurious:4.2.4
If no user is set, the Linkurious Enterprise container will check for appropriate file permissions and change file permissions if necessary.
By default, Linkurious Enterprise runs as the user linkurious
who only exists in the container, not on the
host. As a consequence, it is not trivial to set up mount folders on the host which this new
user has write permissions for.
To make this process easier, file permissions will be set automatically if you run the
container as root
, and a helpful error message will be printed if file permissions cannot be
fixed automatically.
Memory limits
If you are setting memory limits on the running container, using the argument --memory 1024m
you will possibly need to adapt the quantity of memory used by the Linkurious Enterprise instance.
When setting --max-old-space-size
, please take into account the full Node.js process memory,
subtracting roughly 50MB to the allocated memory of the container.
Considering you are not using the embedded Elasticsearch instance:
docker run -d --rm \
-p 3000:3000 \
--mount type=bind,src=/path/to/my/data/folder,dst=/data \
--memory 1024m \
-e NODE_OPTIONS='--max-old-space-size=984' \
linkurious:4.2.4
We do not recommend using the embedded Elasticsearch in a memory-limited container.
You may also pass in environment variables that can be expanded in the configuration
Kubernetes
Please read the previous section on starting a Linkurious Enterprise instance using docker, and the section on fault tolerance.
A simple way to test out Linkurious Enterprise using Kubernetes is to create a simple deployment, using only
one replica, and allocate a PersistentVolume for both of the volumes (lke-data
,
lke-elasticsearch
) described above.
In production, however, you would want to follow the fault tolerance guide and use a StatefulSet, with a main/failover strategy, and the appropriate strategy configured for your load-balancer or ingress.