Install on Linux
If you’ve got a Debian or Ubuntu machine on your network, you’re a minute away from a running server. The Linux installer is a .deb package with the InstantIoT Server binary and its own Java runtime bundled in — nothing else to install. It sets the server up as a background service that starts automatically on every boot.
What you’ll need
- Debian 11+ or Ubuntu 22.04+ (x86_64)
sudoaccess- ~200 MB of free disk space
On a Raspberry Pi or another ARM64 board? Head to Install on Raspberry Pi instead — same idea, ARM build.
The easy way: one line
The fastest path is the install script. It detects your architecture, fetches the latest version, installs it, and starts it — all on its own:
curl -fsSL https://raw.githubusercontent.com/jeanloickdt/instantiot-server/main/install.sh | sh
That’s the whole thing. Skip to First login once it finishes.
Like to read a script before running it? Fair. Download it with
curl -fsSL https://raw.githubusercontent.com/jeanloickdt/instantiot-server/main/install.sh -o install.sh, read it withless install.sh, then runsh install.sh.
Prefer to do it step by step?
If you’d rather grab the file and install it yourself, here’s the manual route.
1. Download
Get the Linux installer from the Downloads page — pick the amd64 file.
[image] Downloads page with the Linux section highlighted
2. Install
Install the package you just downloaded:
sudo dpkg -i instantiot-server_amd64.deb
It creates a system user instantiot, installs the server under /opt/instantiot-server/, registers the service, and starts it. Check it’s running:
systemctl status instantiot-server
[image] Terminal showing systemctl status — active (running)
3. First launch
The server is already running. The installer prints its address right in your terminal — copy it and open it in any browser on your network. From the machine itself, http://localhost:8080 works too.
[image] Browser opening on the admin login screen
4. First login
You’re at the admin login screen. Sign in with:
- Username:
admin - Password:
admin
You’ll be asked to set a real password straight away — the default only gets you to the password-change screen. Pick a strong one and you’re at your dashboard.
[image] Admin login screen
Locked out later? On the server, run
sudo touch /var/lib/instantiot/.instantiot/reset-adminand restart withsudo systemctl restart instantiot-server. The password goes back toadmin. (Being able to create that file is proof you own the machine.)
5. Connect from the app
Open the InstantIoT app on your phone, on the same Wi-Fi.
Your server should appear automatically in the app’s list — tap it and sign in. If it doesn’t show up, add it by hand: the server IP (shown on the admin panel’s Overview tab, e.g. 192.168.1.42), port 8080, and the password you just set.
And that’s it — your machine, your server, your IoT. 🎉
[image] App connection sheet with server details filled in
Good to know
- Your data lives in
/var/lib/instantiot/.instantiot/— database, backups, config. - Check the logs anytime with
journalctl -u instantiot-server -f. - Phone won’t connect? If your firewall (
ufw) is on, allow the two ports:sudo ufw allow 8080sudo ufw allow 9001
Need more — stopping the service, disabling autostart, port conflicts, running from source? It’s all in Server reference.
Next
→ Admin Panel — tour of the admin panel. → Apps / Server Mode — connect from your phone. → Library / Manage Connections — connect your ESP32 from a sketch.
InstantIoT Server is free and open source under AGPLv3 — see the code.