Installation

Install VoxelDash One with a single command, or set it up manually.

Quick install

The fastest way to get VoxelDash One is the install script. Run it as root and it pulls the latest release from GitHub, unpacks the binary together with its bundled web UI, sets up a systemd service, and starts it. Nothing to launch by hand.

curl -fsSL https://voxeldash.dev/one.sh | sudo bash

When it finishes, VoxelDash One is already running and set to start on boot. Open http://localhost:7867, create your admin account, and you are ready to create your first server.

Choosing a release channel

By default the script installs the newest stable release. If you want the latest beta, including pre-releases, pass --beta. Because the script is piped into bash, options go after -s --:

# Latest stable (default)
curl -fsSL https://voxeldash.dev/one.sh | sudo bash

# Latest beta, including pre-releases
curl -fsSL https://voxeldash.dev/one.sh | sudo bash -s -- --beta

# A specific tagged release
curl -fsSL https://voxeldash.dev/one.sh | sudo bash -s -- --version v1.2.0

The same choices are available through environment variables if you prefer:

curl -fsSL https://voxeldash.dev/one.sh | sudo CHANNEL=beta bash

Script options

OptionWhat it does
--stableInstall the newest stable release (this is the default)
--betaInstall the newest release, pre-releases included
--version <tag>Install a specific tagged release, for example v1.2.0
--dir <path>Where to install the binary and UI
--bin <path>Where to put the voxeldash-one launcher symlink
--no-serviceSkip creating and starting the systemd service
--helpPrint the full list of options

By default the script installs to /opt/voxeldash-one with a launcher in /usr/local/bin when run as root, and to ~/.local/share/voxeldash-one with a launcher in ~/.local/bin otherwise. If it warns that the bin directory is not on your PATH, add it:

export PATH="$HOME/.local/bin:$PATH"

What the script does

It is a plain shell script, so you can read it before running it (curl -fsSL https://voxeldash.dev/one.sh). Step by step it:

Checks your system

It confirms curl and tar are present and that you are on a supported Linux x86_64 machine.

Resolves the release

It asks the GitHub API for the right tag based on your channel (stable, beta, or a pinned version) and works out the matching download URL.

Downloads and unpacks

It pulls the release archive into a temporary folder and extracts it.

Installs the files

It copies the voxeldash-one binary and the ui folder into the install directory, keeping the UI next to the binary because the executable looks for it there. Then it links the binary onto your PATH.

Sets up the service

When run as root it writes a systemd unit and starts it, so One runs in the background and survives reboots. Run it again later and it restarts the service onto the new binary for you. Pass --no-service, or run without root, to skip this step.

Manual install

If you would rather not pipe a script into your shell, you can do the same thing by hand.

Download the release

Grab the archive that matches your platform from the releases page:

  • Linux: voxeldash-one-<version>-linux-x64.tar.gz
  • Windows: voxeldash-one-<version>-windows-x64.zip

Unpack it

tar -xzf voxeldash-one-<version>-linux-x64.tar.gz
cd voxeldash-one-<version>-linux-x64

Inside you will find the voxeldash-one binary and a ui/ folder. Keep these two together, the binary loads the web UI from the ui/dist folder next to it.

Run it

./voxeldash-one

Open http://localhost:7867 and create your admin account.

The systemd service

When you run the installer as root it creates and starts a voxeldash-one service for you, so there is normally nothing to do here. These are the commands you will want once it is running:

# Status and logs
systemctl status voxeldash-one
journalctl -u voxeldash-one -f

# Stop, start, restart
sudo systemctl stop voxeldash-one
sudo systemctl restart voxeldash-one

The unit it writes lives at /etc/systemd/system/voxeldash-one.service and looks like this:

[Unit]
Description=VoxelDash One
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/voxeldash-one
ExecStart=/opt/voxeldash-one/voxeldash-one
Restart=always
Environment=PORT=7867

[Install]
WantedBy=multi-user.target

If you need to change something, for example the port, edit that file (or set PORT before running the installer) and reload:

sudo systemctl daemon-reload
sudo systemctl restart voxeldash-one

If you installed without root and want the service after all, just re-run the installer with sudo.

Configuration

VoxelDash One reads a handful of environment variables. None of them are required, the defaults are sensible.

VariableDefaultDescription
PORT7867The port the dashboard and control API listen on
VOXELDASH_HOMEdata next to the binaryWhere servers, Java runtimes, and the database are stored
VOXELDASH_UIui/dist next to the binaryLocation of the bundled web UI, only change this if you moved it
MASTER_HOST127.0.0.1The host servers use to dial back the reverse tunnel

The data folder

Everything One creates lives under its data folder (VOXELDASH_HOME, which defaults to a data directory next to the binary). It holds:

  • voxeldash.db, the SQLite database with your account and the server list
  • servers/, one directory per Minecraft server it manages
  • versions/jdks/, the cached Java runtimes shared between servers
  • versions/cache/, downloaded server jars

Back up this folder and you have backed up your whole setup. To run several independent instances on one machine, give each one a different PORT and VOXELDASH_HOME.

Updating

To update, run the install script again. It downloads the newest release for your chosen channel, replaces the binary and UI in place, and restarts the service onto the new version. Your data folder is left untouched, so your account and servers carry over.

curl -fsSL https://voxeldash.dev/one.sh | sudo bash

Uninstalling

There is a matching uninstaller. It stops and removes the service, the binary, the bundled web UI, and the launcher on your PATH. It finds where One was installed by reading the service unit, so you do not have to remember the paths.

curl -fsSL https://voxeldash.dev/uninstall-one.sh | sudo bash

By default your data is left alone, so your account, servers, and database survive and a later reinstall picks up right where you left off. The uninstaller prints where the data was kept and how to remove it if you want to.

To remove everything, data included, add --purge:

curl -fsSL https://voxeldash.dev/uninstall-one.sh | sudo bash -s -- --purge

If you installed without root (so there is no service), run the uninstaller the same way you installed it, without sudo.

Putting it behind a reverse proxy

VoxelDash One listens on a single port and uses WebSockets for the live console and the reverse tunnel, so the same reverse proxy setup as the plugin applies. See the Reverse Proxy guide, just point it at One's port (7867 by default) instead of a plugin's. Because individual servers never expose a web port of their own, that one proxy is all you need to reach everything.