Drop the plugin in, set your password, forward a port, sign in. Everything else is automatic. Detailed walkthrough below — every step, every option, every common gotcha.
You'll need:
plugins/ folder and the ability to restart the serverIf you've used Adminium, ServerTap, or any similar plugin-and-app combo, the setup pattern here will look familiar. Drop a JAR, edit a config, sign in.
PulseConnect is the free server-side companion to the PulsePanel app. It's what listens on your server, exposes the data the app needs, and accepts your authenticated commands.
Grab the latest PulseConnect.jar from the Resources page.
Move the JAR into your server's plugins/ folder, then restart the server (a full stop/start, not /reload).
# From your server directory: mv ~/Downloads/PulseConnect.jar ./plugins/ systemctl restart minecraft # Or if you run the server manually: ./start.sh
On first run, PulseConnect creates a default config at plugins/PulseConnect/config.yml and then refuses to start — on purpose. It's waiting for you to set your admin password (next step).
[INFO] [PulseConnect] Default config generated at plugins/PulseConnect/config.yml [SEVERE] PulseConnect: refusing to start. [SEVERE] The admin password in plugins/PulseConnect/config.yml is still [SEVERE] set to the placeholder value. Choose your own password before [SEVERE] starting the server.
If the plugin booted with the default password, anyone who's downloaded the JAR would know how to log into a freshly-installed server before its real owner finishes setup. Forcing you to set a password up front closes that window entirely.
Open plugins/PulseConnect/config.yml in your editor of choice. The file is fully commented and almost everything in it is configured automatically. The one thing you need to set yourself is the admin password.
Near the top of the file:
admin: username: "admin" password: "CHANGE_ME_BEFORE_FIRST_LAUNCH"
Change password to a strong password of your choice — this is what you'll use to sign in from the app. You can also change username if you'd like, though admin is fine for most people.
admin: username: "admin" password: "your-strong-password-here"
Save the file and restart the server. PulseConnect will come online and confirm everything is ready:
[INFO] [PulseConnect] Generated a unique JWT signing secret on first launch. [INFO] [PulseConnect] Created Owner 'admin'. [INFO] [PulseConnect] Registered with the relay. Push notifications enabled. [INFO] [PulseConnect] API listening on :7070 [INFO] [PulseConnect] Ready for connections.
The other blocks in config.yml (api, relay, security, logging) are all auto-managed. The plugin generates secrets, registers itself with the push-notification service, and applies sensible defaults on first launch — you don't need to touch any of it. The comments explain what each value does if you're curious.
After your server starts up successfully and the admin account has been created, you can blank out the admin.password field in config.yml. The account already exists in the database with a hashed password — leaving the plain-text password in the config file is unnecessary.
The default API port is 7070. If you need to change it — usually because your host has restrictions on which ports you can open — find the api.port line near the top of the file and set it to whatever you want. Just remember which value you used; you'll enter it in the app in step 4.
The app needs to reach your server on whatever port you set in api.port (default 7070). How you make that happen depends on where your server runs.
If your server runs at home or on your own VPS, you'll need to forward port 7070 on your router so traffic from outside your network can reach it.
192.168.1.1 or 192.168.0.1 in your browser7070 → internal IP of your server, internal port 7070, protocol TCPYour server's internal IP is typically something like 192.168.1.x. On the server itself, run ip a (Linux) or check System Settings → Network (macOS).
If your server runs on a managed host (BisectHosting, Apex, Shockbyte, PebbleHost, etc.), you usually can't open additional ports yourself — their network is locked down by default and only the Minecraft port is exposed.
Two paths forward:
api.port to whatever your host allows. Some hosts give you a small range of "extra" ports outside the Minecraft port (often listed in your control panel). Set api.port in config.yml to one of those, and use that port in the app.If you're shopping for a host with PulsePanel in mind, it's worth asking up front whether they support custom TCP ports for plugins. Hosts that don't will work for the Minecraft server itself but won't work with PulsePanel — there's nothing the plugin or app can do to get around that limit.
Open PulsePanel on your iPhone or iPad. You'll be taken to the sign-in screen.
1.2.3.4 or play.example.com)api.port (default 7070)admin.username in config.ymladmin.password in config.ymlAccount credentials live on your server, not on our infrastructure. PulsePanel doesn't have its own user accounts — the username and password you signed in with are stored hashed in your server's PulseConnect database. There's no central registry, nothing to recover with us, and nothing to leak from us.
Tap Sign in. The status indicator should turn green within a second or two:
● Connected · 28 ms
From here, the dashboard, console, chat, players, worlds, files, and tickets are all live. You're done.
Take a minute to walk through each tab. Tap a player to see their inventory. Open the console to send a command. Edit a plugin's config.yml from the file manager. The app's faster than it looks.
This is by design. On a fresh install, PulseConnect ships with a placeholder admin password and refuses to start until you change it — otherwise anyone with a copy of the JAR would know your default password.
Open plugins/PulseConnect/config.yml, find the admin: block, change password from "CHANGE_ME_BEFORE_FIRST_LAUNCH" to a real password, save, and restart the server.
The plugin isn't running, or it's not reachable on the address/port you gave the app.
Check the server console — look for [PulseConnect] Listening on... after server start. If you don't see it, the plugin didn't load. Verify the JAR is in plugins/ and the server fully restarted.
If the plugin is running, your port forward isn't working. Use a tool like canyouseeme.org to test whether port 7070 (or whatever you set) is reachable from outside your network.
Your username or password is wrong. Try again carefully — watch for caps lock and trailing spaces if you copy-pasted.
If you forgot the credentials, the cleanest reset path is to stop the server, delete the PulseConnect database (plugins/PulseConnect/data.db or similar — check your plugins/PulseConnect folder), set fresh values for admin.username and admin.password in config.yml, and restart. The plugin will create a new account on next startup.
This wipes any other state in the database (audit log, ticket history, etc.), so it's a last resort.
This usually means the plugin is on but the server is still starting. Wait 10–20 seconds and pull-to-refresh.
If it's still empty after a minute, check the server console for any [PulseConnect] error lines — there might be a config issue or a conflict with another plugin.
PulsePanel is designed for the server owner only — there's no support for handing app access to other staff at the moment. If your friend can't connect with your address and credentials, that's expected.
Multi-staff support may come in a future release.
First, make sure notifications are enabled for PulsePanel in iOS Settings → Notifications.
Inside the app, check Settings → Notifications and confirm the categories you care about are toggled on.
Push delivery can take a few seconds — Apple's normal range is sub-second to about 30 seconds. If nothing's arriving after several minutes, try toggling notifications off and on, then send a test event from the server (e.g. join the server yourself).
Email support@pulsepanelapp.com with what you tried and any error messages — server logs are especially helpful. We read every email.
Console, chat, players, worlds, files. All from your phone.
Download on the App Store →