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.
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.
The service is created automatically when you run the installer as root. If you run it without root it still installs
everything, it just cannot register a system service, so you would start it yourself with voxeldash-one. Pass
--no-service if you want to skip the service even as root.
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 --:
The same choices are available through environment variables if you prefer:
Script options
| Option | What it does |
|---|---|
--stable | Install the newest stable release (this is the default) |
--beta | Install 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-service | Skip creating and starting the systemd service |
--help | Print 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:
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
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
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:
The unit it writes lives at /etc/systemd/system/voxeldash-one.service and looks like this:
If you need to change something, for example the port, edit that file (or set PORT before running the installer) and
reload:
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.
| Variable | Default | Description |
|---|---|---|
PORT | 7867 | The port the dashboard and control API listen on |
VOXELDASH_HOME | data next to the binary | Where servers, Java runtimes, and the database are stored |
VOXELDASH_UI | ui/dist next to the binary | Location of the bundled web UI, only change this if you moved it |
MASTER_HOST | 127.0.0.1 | The 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 listservers/, one directory per Minecraft server it managesversions/jdks/, the cached Java runtimes shared between serversversions/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.
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.
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:
--purge deletes your servers, worlds, and database for good. There is no undo, so back up the data folder first if you might want it later.
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.