Skip to content

Releases: CIYAhq/playkeeper

Playkeeper v0.4.14 (early release)

Choose a tag to compare

@github-actions github-actions released this 01 Oct 13:04
27ee649

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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 01 Oct 04:45
4484852

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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 01 Oct 00:08
52b9bf2

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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 30 Sep 20:54
f51d5df

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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 30 Sep 12:51
626522e

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_exchange permission 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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 30 Sep 11:49
877b54f

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 /aibuild and 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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 30 Sep 07:36
a9225e4

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.com rather than example.com itself.
  • 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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 29 Sep 16:29
d209927

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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 29 Sep 09:56
0ff6de6

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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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)

Choose a tag to compare

@github-actions github-actions released this 29 Sep 02:54
c2fdef2

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 like survival.mc.example.com by 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 status says 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 sh

The same installer, straight from GitHub:

curl -fsSL https://github.com/CIYAhq/playkeeper/releases/latest/download/get.sh | sudo sh

Both 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.