A frontend for Octyne.
Ecthelion comes built into Octyne as a web interface, so you can use it without any additional setup. To access Ecthelion, simply navigate to the Octyne web interface in your browser. This requires Octyne 1.4+ and the webui
feature enabled in the Octyne configuration.
You only need Ecthelion standalone if you have a multi-node Octyne setup, or if you want to host Ecthelion separately from Octyne and customise its settings. In this case, follow the steps below.
- Prerequisites: Install Node.js and Git. Run
corepack enable
in the terminal as admin/sudo
to install the Yarn package manager. - Download Ecthelion to a folder by running
git clone https://github.com/retrixe/ecthelion.git
in terminal where you wish to place Ecthelion. - Select the current version of Ecthelion after downloading it by running
git checkout <version>
in the Ecthelion folder. Alternatively, for the development version, rungit checkout main
. - Follow the steps in the configuration section to configure Ecthelion correctly. After configuration changes, rebuild Ecthelion with
yarn && yarn build
. - Run
yarn start
to start Ecthelion's built-in web server, you can specify a port by passing-p <port>
. Alternatively, you can runyarn export
to export Ecthelion to static HTML/CSS/JS files in theout
folder you can serve via nginx or Apache, however, supporting dynamic routes will require additional work. - To update Ecthelion in the future, run
git pull
, then re-run step 3 through 5. Additionally, make sure to setup HTTPS!
You might want to run Ecthelion using systemd
(if using Linux) to start/stop Ecthelion automatically for you. Alternatively, you can run Ecthelion with Octyne, but if you have issues with Ecthelion, this may be a problem.
Create a file named ecthelion.service
in /etc/systemd/system/
with the following content:
ecthelion.service
[Unit]
Description=Ecthelion
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=on-failure
RestartSec=1
# Replace `abcxyz` with your Linux account username.
User=abcxyz
WorkingDirectory=/home/abcxyz/ecthelion/
ExecStart=/usr/bin/env yarn start -p 4200
[Install]
WantedBy=multi-user.target
Then simply run sudo systemctl enable --now ecthelion.service
to enable and start Ecthelion.
Create a config.json
in the top level of the project and then add the following content:
{
"ip": "<absolute URL to Octyne (in multi-node setups, the primary node)>",
"nodes": {
"<name of secondary node>": "<absolute URL to Octyne node>"
},
"basePath": "<pass this if you want ecthelion on a sub-path like e.g. /ecthelion>",
"enableCookieAuth": false,
"defaultColor": "<optional, default is pink>"
}
-
The
ip
field is required, whilenodes
,basePath
andenableCookieAuth
are optional. -
If Octyne is hosted under the same domain/IP address as Ecthelion, you can use a relative URL like
/octyne
or/octyne/api
. -
Absolute URLs to Octyne should be accessible to users (make sure Octyne is port forwarded), and are in the format of
http[s]://<ip address or domain name>[:<port>][/<sub-URL if using nginx/apache to reverse proxy>]
, e.g.http://43.12.45.32:42069
orhttps://console.myserver.com/octyne
. The URL should also not end with/
! -
Cookie authentication is more secure, but it requires Octyne v1.1+, and Ecthelion + Octyne nodes must be under a single domain / IP address!
To achieve this, you can use a reverse proxy like nginx or Apache. The Octyne documentation has sample configs for both.
-
It is possible to point Ecthelion to an Octyne v1.4+ Web UI port instead of an API port, by adding
/api
to the end of the URL. -
Supported colors include:
amber, blue, blueGrey, brown, cyan, deepOrange, deepPurple, green, grey, indigo, lightBlue, lightGreen, lime, orange, pink, purple, red, teal, yellow