Releases: CIYAhq/playkeeper
Release list
Playkeeper v0.4.14 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- A simpler page for sellers (early beta): the Playkeeper Cloud page in a seller's Whop dashboard walks them through one step at a time, each with one button: Check your prices, filled in at $15 a month for each 4 GB where a plan is under the floor, then Open the store, then You're live, with a link to the store and, kept short, its earnings and customers. Before the store opens, Fix my plans puts right a plan that doesn't renew monthly, isn't priced in US dollars or has a free trial, taking off any setup fee with it, and says what it changed; what it can't change, such as two plans on one product, gets a plain line each. Opening the store also hides the free Playkeeper Hosting product Whop adds for the store's website, and a refusal gives each plan a short line, then says once what to do. Until then, the store's own site has a Set up your store page with the three steps to get there, each one sentence and one button.
- Public pages for servers on every machine: with Addresses without a port on, a server on a machine joined to this dashboard has its public page at its name, like
alex.beta.playkeeper.me, as a server on this dashboard's machine does. This dashboard's machine serves it, asking the server's machine what the page shows, and its Settings › Public page works as there. The page shows that server alone and nothing that says which machine runs it: it gives no Bedrock address, which would be the machine's, and its links are under this dashboard's address. The name now points at this dashboard's machine. Java players who type it as the dashboard shows it, without a port, still reach the server's machine through its SRV record, and Bedrock players join at the machine's address, which the dashboard shows; typed with a port, the name reaches this dashboard's machine instead. HTTPS needs An address for each server, which gives the dashboard a certificate for every server's name; without it, the page answers over plain HTTP only. The joined machine needs 0.4.14 too. - The dashboard going down, in Discord: with Discord connected, each joined machine you confirmed takes customers, by hand or through your Hetzner token, posts in the dashboard's Discord when it hasn't reached the dashboard for 5 minutes, and again when it reaches it once more. It gets the dashboard's webhook over its link and keeps it where only root can read it, and the dashboard clears it there when you disconnect Discord or stop the machine taking customers. The joined machine needs 0.4.14 too.
- Renewals, selling through the Playkeeper Cloud app (early beta): a customer's servers keep running while their latest payment that carried Playkeeper's share is younger than the 30 days it pays for plus a grace, which leaves Whop time to retry a card that failed: 7 days, or what you pick in Settings › Sell on Whop › A renewal may be late by. Past it their plan shrinks or they're paused, their line on the store's page saying since when, and paying again starts them. A membership brought back without a payment no longer starts its customer again on an old one, and a payment refunded in full no longer counts.
- Seller terms (early beta): Open the store asks the seller to tick "I accept the seller terms", and keeps who ticked it, when and which version. The seller's page links the terms and the privacy policy on every screen, and its Help goes to the Playkeeper Discord's #sellers channel.
- Fixed: for a moment after an update of Playkeeper ended, Settings could still say it was being installed, and the update's line in the activity was stored a moment after it ended.
- Fixed: when a copy somewhere else is made, fails, or is deleted, by the backup rules or by hand, its line in the activity is now stored together with it, so a crash at that moment can't keep one without the other.
- Fixed: pre-generation could retry a task once more than it should after the server ran out of memory, instead of pausing it for memory. When a task is paused, resumed, cancelled or ends, its line in the activity is now stored together with it.
- Fixed: deleting a copy somewhere else from a store that takes over a minute no longer says the agent isn't running, or on a joined machine that it didn't answer, while cutting the deletion off. The dashboard waits for the store, up to the two minutes the agent gives it.
- Fixed: when something a server or the machine was doing ended, it showed as free a moment before that was recorded as ended, so the activity could still say it was running.
- Fixed: a server that restarted just as the agent began reading its log, such as right after the agent itself started, was taken for the run before it until it stopped again. A crash then passed for a clean stop, with no crash alert, and How it's running could count the run before's garbage collection.
- Tests: seven of the eight quarantined tests are back, each with what made it fail fixed, and flaky tests of a crash as pre-generation starts, the public page's test agent and the address checks are fixed. CI runs the panel's tests under the race detector.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
fd428fc0dfbd0a3297378adbadc8c5b3f4225a3274f4af8117a3a90a123f6897 |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
dc519289ef40d51c4212d42897148c6deb6898a4cc8fa7ccbf0eef022dac143d |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.14, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.13 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Security fix, Sign in with Whop: another name under the dashboard's domain could set a cookie for the dashboard's name, and with it sign a visitor in to a customer account of its choosing: a joined machine that someone took over, and for a dashboard with a free name, anyone else's free name. That sign-in's cookie is now a
__Host-one, which only the dashboard's own name can set, like every other cookie the dashboard sets, and a sign-in finishes only in the browser that left for Whop. Coming back in an older tab no longer ends a newer tab's sign-in. Someone on Whop's page as the update runs signs in again. - Fixed, selling through the Playkeeper Cloud app (early beta): a price a seller set was charged twice at a renewing plan's checkout, $30 for a $15 plan, and is now charged once, and the least a plan charges counts one payment as Whop charges it. Playkeeper's share now covers every hosting plan anyone has, archived ones too, is raised before a lower price goes on Whop, and counts a payment only after a recent share check, each membership by its own payment. A share check that keeps failing closes the store, and a store that comes back is watched afresh. One 404 from Whop no longer pauses a customer, app stores are read every ten minutes, and one client can no longer block every seller's page.
- Open the store and Update the store (early beta): Open the store refuses a plan the machines can't run, outside 1 to 10 servers and 1 to 64 GB, and a hosting product that sells another plan. Update the store brings a hosting plan added after opening to the store site.
- Fixed, deleting a customer: the customers of a store that left can be deleted, a copy a move left on a machine since removed no longer holds a deletion forever, and someone deleted who buys again starts afresh, neither locked out nor given their old memberships back.
- An overbooked machine, in Discord: with a store or joined machines, the dashboard also posts in its Discord when a machine's customers' plans set aside more memory than it has, as when a plan grows past what it can hold, and again only once the machine has had room for them. Like the room and health alerts, it goes out whatever the alert switches say, and moving a customer stays yours.
- Fixed: the off-site copies card could briefly fail to call a server's first copy to a place the first, or show a finished copy as still waiting, because the agent stored a finished copy, its count and its leaving the queue as separate writes. It now stores them together.
- Tests: a flaky click-through fixed: it reads a phone's select as a combobox holding its choice.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
cef29b4d3327a84f2449440a274ae72531be4ba72eb22ba0467682fd836eee35 |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
4628b277097661a1b07e9b42055b1dbfd0abb96f3e1b75ac75f958494a403a66 |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.13, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.12 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Moving customers: when you sell on Whop, a machine's page in Settings › Machines lists the customers whose servers run on it, and Move… moves one to another machine that takes customers and has room for their plan. Their servers are checked first, so a move that can't go, for want of room on that machine's disk or a folder too big to carry, is refused before any of them stops, saying why. Each of their servers stops for a few minutes and goes over with its whole folder and its settings: schedules, sleep, backup rules, public page, links and copies somewhere else. It starts again there if it was running or asleep, and keeps its members, invites and address without a port. The machine it leaves keeps its whole folder for 7 days. Customers only see that a server is being moved. An AI key doesn't go along, as it never leaves its machine, so it's pasted again. Only the owner can move customers. A move that stops partway leaves a customer's servers on two machines until it's run again, and meanwhile they get their plan's disk once between the two, not on each.
- Removing a machine customers are on gives them room on another machine to start again, so they can create servers. Move them first to take their servers along. Only the owner can remove one. With no room anywhere, they're told there's no room for their servers right now, not that one is being set up, and told again once there is.
- Delete a customer: when you sell on Whop, Delete account… on a customer in Settings › Team deletes their account and personal records: their servers with every backup, their memberships and messages at that store, their invites and their sign-ins. A customer who still has a plan is told to cancel it on Whop first. A customer whose plan ended is deleted on their own some days after their servers were, 30 by default, which Settings › Sell on Whop changes. Their payments stay in the store's accounts, without their Whop user.
- Selling through the Playkeeper Cloud app (early beta): a business that copies the Playkeeper hosting blueprint from Whop's gallery gets a storefront that offers Connect Playkeeper Cloud, with one row of plans. Once it installs the app and opens it in its Whop dashboard, it's a store on this dashboard. On that page the seller prices its hosting plans, at or above the floor, presses Open the store, and then sees its standing, plans, customers and earnings.
- Playkeeper's share and room per store (early beta): a business selling through the app pays Playkeeper's share of each sale as a Whop revenue share. Without it, its store stops selling and nobody starts, and a business that uninstalls the app, or removes the share for good, leaves. Stores selling on the same machines share their room evenly, each up to a cap.
- Room and health alerts in Discord: with a store or joined machines, the dashboard posts in its Discord when a machine has been off it for 5 minutes and when it's back, when there's room for fewer than 2 of your smallest plan's servers across every store, when a machine's disk passes 75% full, when a machine's busiest hour passes 70% CPU three days running, and when a server lags with players on for 10 minutes. They go out whatever the alert switches say, like machines in stock, and buying a machine stays yours.
- Sold out on playkeeper.io/cloud: the dashboard answers which of your store's paid plans are available and which are sold out, never how many are left, so Playkeeper Cloud's page can say Sold out when the machines have no room for a plan, as Whop's checkout does.
- Customers' server names are their own: a server's name has to differ only from its customer's other servers', not from every server on their machine. So a customer is never refused a name, or given "Survival 4" when a move brings a server in, because of another customer's server, which told them that name was used there and how often. The servers you and your admins create still differ in name from each other's. When a new server's address is taken, it gets a few random letters after it, like
survival-k7m2, instead of a number that counted the servers with it. Addresses servers have now stay as they are. - Fixed: a server that should be running and stopped without a crash, while the agent was down or from outside Playkeeper, such as a host shutdown, could stay stopped until someone pressed Start, if an operation on it was just ending. The agent now starts it as soon as the server is free.
- Tests and CI: flaky tests fixed. The tests' fake NeoForge and fake S3 drop a request they hang on instead of answering 200 with no body, the fake Docker stops with its test, the refused-restart test starts its server itself, tests get a refused connection from a stub instead of from a port they closed, the squaremap status test leaves room for connecting under load, and the click-through test no longer expects a change to the onboarding page to reach the invite page. CI tries Go downloads again after a network error, and checks the dashboard's first-load budget on every change to its code.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
228d25b991ec3761210b6ceed60a6c1a0021df4863181a803275e66e33e49687 |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
cfb3f412ee26c2bffe1eb93bb36cdaf7b275915ac749d73d6094b897a880ccb3 |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.12, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.11 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- The dashboard without a port: Machine settings › Serve the dashboard on the standard HTTPS port (443) opens the dashboard at your machine's name, like
https://beta.playkeeper.me, instead of…:8443. New installs turn it on when nothing uses port 443; on an existing one, turn it on after allowing TCP 443 in your provider's firewall. Updating allows TCP 443 in ufw or firewalld where the installer opened Playkeeper's ports, as a new install does. It can't be turned on while another program, a Docker container or a web server set to start with the machine has port 443, and it says which. The address loses its port once a browser from outside the machine reaches it there, so a firewall that drops port 443 never leaves an address that doesn't open. Port 8443 keeps working and sends browsers on, so old links and bookmarks still open, and invite links, customers' messages, Whop's webhook and where the store sends buyers, Discord's links and AI agents' address use the address without a port, and follow it back when port 443 goes. Machine settings lists what outside Playkeeper keeps the old address, with the exact change: with Sign in with Whop, add the new redirect URL on the app's OAuth tab. Until you do, customers keep coming back through the old one, which still works. Signed in, the name opens the dashboard; anyone else sees your servers' public page with Sign in, or the sign-in page where customers sign in with Whop. The panel still can't open ports below 1024: the agent opens port 443 for it, as for the public page. - Selling on Whop without its webhook: when Whop won't add or keep the webhook, the dashboard now reads the store's memberships every minute instead of every 10, so a buyer is started and messaged within about a minute. With the webhook it still reads them every 10 minutes, as a backstop.
- A customer's account belongs to the store they bought from: the "your server is ready" message now links to that store's sign-in, so someone who buys from two stores on one dashboard gets two separate accounts and signs in to the right one. With one store, nothing else changes.
- Sign in with Whop: Turn on now also checks that the Whop app lists the dashboard's redirect URL, and says which one to add.
- Suspend a customer: in Settings › Team, the owner can suspend a customer's account, with a reason, and lift it again. Their servers stop, their API tokens stop working and they're signed out, and nothing their plan does lifts it. If their plan ends meanwhile, lifting it gives them 14 days to renew. A business selling through your app can be suspended too, in Settings › Sell on Whop: it stops selling, and every customer of it is suspended with it.
- Tests: in the agent's tests, the fake Docker's log stream now ends with the run it began in, as Docker's does, so a test of pre-generation after a restart no longer times out.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
73f043f17ebe24e7265a75d7a01c5fdecb0f51e7346e1dc00fd6d8171a282c6d |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
124691c50951d061b2be9daa90e54be477e996b23efb10a2f7a15bfbf13e49ac |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.11, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.10 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Customers get their "your server is ready" message on Whop: messages now go out as the store's owner, since Whop doesn't accept them from a store key. They go out in the store's support chat, and any still waiting go out as soon as the dashboard updates. A message that can't go out shows on its customer in Settings › Sell on Whop, with Whop's reason, and the store shows Needs a look.
- Sign in with Whop checks the app when you turn it on, and says exactly what's missing, such as the
oauth:token_exchangepermission on the app's Permissions tab. Before, it could be turned on with an app Whop refuses, and then every customer's sign-in ended with "Whop couldn't confirm who you are". Whop needs that permission on the app's own Permissions tab, not on an API key, and the setup text now says so. /aibattle: two AI models build side by side in the AI Build Battle template. Type/aibattle <model A> <model B> <prompt>.- Tests: two agent tests that raced their timers under load, one of a long delete and one of a restore that 0.3.0 undid, now wait for what they check, and when a test panics, its shard still runs the tests the panic kept from starting.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
7a6ba89038a0e9e33867e38b699e3f0141dc9c23d06ba4ed4120f557add8d121 |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
ea6fefa8e6b7a7e375dcfe13d523fc444757a28f45cf12a90a5b1896b88ced8e |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.10, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.9 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Selling on Whop works again: the store connection creates its webhook the way Whop now requires. In 0.4.8 Whop refused how Playkeeper asked for one ("api_version is no longer supported"), so a purchase was only found at the next 10-minute read. Starting the dashboard, a new key and Read the store again now read every membership at once, so a purchase made meanwhile is caught straight away, and nobody is started twice. A membership cancelled at the end of its period, which Whop now calls canceling, no longer pauses its customer before that end.
- New template: AI Build Battle. Type
/aibuildand an AI model builds it in front of you, with your own OpenRouter key. New server › A template › AI Build Battle makes a creative server where/aibuild <prompt>builds block by block, the way the AI build battle videos are made. Each build shows its spend cap, and today's, before it starts. The server's Overview and its Plugins tab ask for the key, Get a key opens openrouter.ai/keys, and once saved it's never shown again, not even in part. It's kept beside the server's world, out of backups, copies, template exports and the Files tab, and only admins can set it. The plugin comes with Playkeeper: it installs straight from it, with nothing to download, and is never looked up on Modrinth or Hangar. - Know when a release is out: Playkeeper looks for a new version when it starts and about every 30 minutes, and tells the owner and admins "Playkeeper X is out" at the bottom of the sidebar (at the top of Home on a phone), with Update to see what changed and install it. Close it and it stays away until the next release. Each look is one small request to playkeeper.io, answered "not modified" until a release is out; Settings › Playkeeper › Check for updates automatically turns the looking off.
- Customers see their servers, never the machines: with more than one machine, a customer's Home and sidebar list their servers without grouping them by machine or naming one, and their pages speak of their plan's memory and disk instead of a machine's. No page, API answer or AI agent of theirs names a machine or shows one they don't use. Invited creators see the same.
- Stock on Whop follows the room: when you sell on Whop, each plan's stock is how many more of it your machines can take at once, after the customers waiting for room: paid plans get room first, the smallest first, then free ones. It's worked out again after every sale, every change in room and every 5 minutes. Settings › Machines › Room for customers shows each plan's number and what each machine can still set aside. Only the owner, not an admin, sees it.
- Machines from your Hetzner project confirm themselves: while Settings › Machines › Hetzner stock watches with your read-only token, a machine that joins from a server in that Hetzner project takes customers within a minute, as if you'd pressed Take customers…: servers are kept away from it first, and its events and the audit log name the Hetzner server. A machine you stopped taking customers stays stopped, and machines elsewhere still wait for you.
- Fixed: a server meant to be off that crashed three times within 15 minutes, started by something other than Playkeeper, said Playkeeper had stopped restarting it, though Playkeeper doesn't restart a server that's meant to be off.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
195795dfce0466c9792931306f9fa735caa349db8fb475f291f82111c1e2b9cb |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
ea3c2a9a9297a84c66c709f8a5d3a703d07eacabe25009c5072d9f66afc9d0a3 |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.9, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.8 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Crash help for three more crashes: the Overview now names and offers to fix three more crashes that would happen again at every start: something in the world that hits an error each time the game runs it, like a minecart, a mob or a hopper ("Ticking entity" in the crash report); a mod made for players' games, like Sodium, on a NeoForge server; and a world whose level.dat files are both damaged. For these, Playkeeper no longer restarts the server three times first: the Overview shows what happened and the fix after the first crash, and the Discord alert says the server stays off. Crashes it doesn't recognise are still restarted, up to 3 times in 15 minutes.
- A server from your own world or backup, for creators and customers: creators and customers can now start a new server from A world or Restore it as a new server on New server, as the owner can, within their disk allowance. Each upload counts against the allowance from its first byte, and one that doesn't fit stops.
- Addresses without a port (early beta): each server gets an address players join without typing a port. Under your own domain, turn on Addresses without a port in Machine settings › Address, below An address for each server, and add the two records Playkeeper lists at the domain's parent, which hand the domain to the machine. The machine then answers DNS for it on port 53, which has to reach it, and one wildcard certificate covers every server's address instead of one each. It needs a domain whose parent you run, like
play.example.comrather thanexample.comitself. - Addresses without a port on every machine: with Addresses without a port on, servers on machines joined to this dashboard get their name under its domain too, pointing at the machine each runs on, so players join them without a port as well. A machine that reaches the dashboard only from its own network gets none.
- Selling on Whop (early beta): 14 days after a customer's plan ends, their paused servers are deleted, each with a final backup kept for 30 days. Renewing within those 14 days brings the servers back.
- Customers on joined machines: when you sell on Whop, a machine joined to this dashboard takes customers once you confirm it's yours on its page in Settings › Machines, which keeps servers away from the machine first. New customers go on it while it has room and create their servers there, and Stop taking customers sends new ones elsewhere. Only the owner, not an admin, can confirm a machine.
- A crash from one broken entity: when a minecart, a mob, or a block like a hopper or a mod's machine hits an error each time the game runs it ("Ticking entity" in the crash report), the Overview names it and where it is, instead of saying the server stopped unexpectedly. Remove the minecart backs the world up and takes just that one out; a block stays, without what it held. Starting again is no longer offered: the world was saved with it, so the server only crashed again until Playkeeper gave up after 3 tries.
- A new level.dat: when both of a world's level.dat files are damaged, the Overview offers to make a new one next to restoring a backup, so the world keeps every build made since that backup. It says what starts over first: the spawn point, and before Minecraft 26.1 the game rules and the time of day. Playkeeper backs the world up before it changes anything, and keeps the world's seed when it finds it, so new land matches the old; when it can't, it says new land won't match.
- Fixed: a mod made for players' games, like Sodium, stopped a NeoForge server at its start with
NoClassDefFoundError: org/lwjgl/Version, and the Overview only offered to start it again. It now names the mod, says it only runs in players' games, and offers to remove it. - Fixed: a world on Minecraft 26.1 or newer with both level.dat files damaged got "stopped unexpectedly" and a restart, because its last line no longer names the files. The Overview now says the world's level.dat is damaged.
- Fixed: when the agent stopped, as it does for an update, a database write still under way could land after it had closed its database. It now waits up to 5 seconds for writes in progress first.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
9fee1e0052b054cf80c2f547182f410fa760c7838ac779803f650efacf7addbe |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
3b33b2bbc0d872a39b0ce069f3ee38d63ac394640790c8ac864991e91ac5fdc2 |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.8, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.7 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Sell servers on Whop (early beta): Settings › Sell on Whop connects a Whop store, and each plan a buyer pays for lets them create servers on this machine within an allowance of servers, memory and disk. Buyers sign in with Whop instead of a password, hear when their server is ready, are paused when their plan ends, and come back when they renew. A plan sells only while the machines have room for it, and one dashboard sells for each Whop business.
- Limits for creators and customers: their servers share a disk allowance, by default 7.5 GB for each GB of memory, and each gets half a core per GB of memory, so one busy server can't take the whole machine.
- Hetzner stock: Settings › Machines can watch Hetzner for the server type you add machines of, such as CX53, which is often sold out. Paste a read-only Hetzner API token, and the dashboard asks Hetzner once a minute and posts to Discord when it comes into stock somewhere, with a link that buys one there. The owner's alone.
- Connect a machine › New cloud server: Settings › Machines gives the command as cloud config too. Paste it in the Cloud config or User data box while you create a server at a cloud like Hetzner, and the server installs Playkeeper and connects to this dashboard as it first starts, with nothing to type on it.
- New server › A template shows each of Playkeeper's templates with a picture of its own world, the same one playkeeper.io shows, instead of a pixel scene.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
df25ed58687808a53bcc77a74058ba339cb19a3da597da78a51664856fc068c2 |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
3e2e70cb2989be5e4df2d03ffda8d0f3300a8086062fd727d7834215b143eee1 |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.7, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.6 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Fixed: turning on An address for each server in Machine settings › Address failed with "unknown field panelHost", so servers couldn't get addresses of their own. It now turns on, and the wildcard record it lists points at the address you opened the dashboard at, which is the right one behind NAT too.
- Fixed: An address for each server showed only once the machine had a server. It now shows as soon as the machine has your own domain, so you can turn it on, and see whether its wildcard record works, before the first server exists.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
dd111b1358a58f0dd5d0afcef4a6b2573e0e01ace5d4e6475eb46424669fe376 |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
31bd844ce5ea746d51459cbb975cb10d837634dcfb1a00983ab162b19d884b6f |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.6, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Playkeeper v0.4.5 (early release)
Early release. The owner has installed Playkeeper on a real VPS and joined with the official Minecraft client from another network. Not verified yet: a second person joining, surviving a reboot, and restoring on a separate machine. Keep your own copies of any backup you care about.
What changed
- Creators: the owner can invite someone to create their own servers on this machine. Settings › Team › Invite a creator gives them an allowance of servers and memory. They make their own account, turn on two-factor sign-in, and create, resize and delete their own servers inside it, seeing only those. Their new servers start with a backup each day someone played. It's how Playkeeper's managed beta runs, and it works for sharing a VPS with friends too.
- An address for each server: under your own domain, turn on An address for each server in Machine settings › Address and add one record,
*.and your domain. Every server then gets an address likesurvival.mc.example.comby itself, with its own page and certificate, and players type the server's port with it. - Servers can't reach the cloud's metadata service: plugins and mods can no longer open connections to the address where clouds hand out a VPS's setup data. Nothing else changes by itself: servers still reach the VPS they run on, so a plugin whose database runs there keeps working.
- Keep servers away from this machine: a new switch in Machine settings also keeps plugins and mods away from the VPS itself, the dashboard's port included. It's off unless you turn it on, and it turns on by itself when you invite a creator, staying on while you have creators. A plugin that uses a database on the same VPS then gets "connection refused" (Troubleshooting).
sudo playkeeper statussays which applies. - Fixed: records for a server's own address that you added after saving it were found only at Playkeeper's next look, up to 6 hours later. Until they work, Playkeeper now looks every minute, as it does for your domain's records, so the page gets its certificate a minute or two after you add them.
- Fixed: asking the API for more of a server's console than Playkeeper keeps, its newest 2,000 lines, returned only the newest 500. It now returns all 2,000, so a tool reading a big modpack's start, which can log hundreds of lines in a second, still finds the line saying the server is ready.
Install or update
On an x86_64 or 64-bit ARM server with Ubuntu 20.04 or later, Debian 12 or later, the RHEL family 9 or later (AlmaLinux, Rocky Linux, Oracle Linux, RHEL and CentOS Stream), or Amazon Linux 2023 or later:
curl -fsSL https://playkeeper.io/install | sudo shThe same installer, straight from GitHub:
curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo shBoth download the tarball for the server's CPU from the latest release, playkeeper-linux-amd64.tar.gz or playkeeper-linux-arm64.tar.gz, stop unless it matches its .sha256, and start the installer, which shows every change and asks before making it. On a server that already runs Playkeeper, the same command upgrades it in place and keeps worlds, backups and settings. From 0.2.0 on, Settings in the dashboard shows new versions and installs them; it only installs releases whose playkeeper-release.json is signed with the release key built into your installed version. Requirements, the manual steps and uninstalling: README.
| File | SHA-256 |
|---|---|
playkeeper-linux-amd64.tar.gz (x86_64) |
10a4de870c7a02070dd822739bf0271d77aeed0def7102ddba4eccd95b4731d7 |
playkeeper-linux-arm64.tar.gz (64-bit ARM) |
a3f9c3fcf860d6cc7547ef93ca878fcb56b60f013630a83fe376070049e901f3 |
get.sh |
9a956df153f6a784acd18f3f514dcbe1d3df8306f38f1198f2fa3eb6c7e45961 |
Source code: v0.4.5, under the GNU AGPL-3.0. Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.