feat: Beacon deploy automation with server name resolution#72
Merged
feat: Beacon deploy automation with server name resolution#72
Conversation
Adds a deploy script that replaces the manual panel upload workflow. Developers can target their own Fast Dev server by name via .env.local. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Bump .nvmrc from 20.9.0 to 20.19.0 to fix CI (@noble/ciphers requires >= 20.19.0) - Add config.yml sync: writes CONVEX_SITE_URL and CONVEX_HTTP_SECRET to the server's beacon config after upload - Add detailed setup instructions for getting API keys and Convex settings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Next.js build fails at static generation when ConvexReactClient has no URL. Set the env var at the job level so build:web succeeds. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the manual "build JAR → open panel → upload → restart" workflow with a single command:
npm run deploy:beacon.scripts/deploy-beacon.mjs— builds the Beacon JAR, uploads it to a Pterodactyl-managed server via the client API, backs up the existing plugin, syncs config, and restarts the server--server-name/PTERODACTYL_SERVER_NAMEso each developer can target their own Fast Dev server by name instead of memorizing UUIDs--list-serversto discover which servers are available to your API keyconfig.ymlon the server with yourCONVEX_SITE_URLandCONVEX_HTTP_SECRETso the plugin connects to the right Convex deployment.nvmrcfrom 20.9.0 to 20.19.0 (fixes CI —@noble/ciphers@2.0.1requires >= 20.19.0)How to use
1. Get a Pterodactyl Client API Key
https://mcpanel.blockwarriors.aiptlc_ptla_keys (application/admin) will not work — you need aptlc_(client) key2. Get the Convex settings
CONVEX_SITE_URL— the Convex site URL (e.g.,https://abundant-ferret-667.convex.site). Checkpackages/backend/.env.localif you already have the backend set up.CONVEX_HTTP_SECRET— the shared auth secret. Must match theCONVEX_HTTP_SECRETin your Convex deployment. Ask your team lead if you don't have it.3. Create
.env.localat the repo rootFill in:
4. Find your server
Set
PTERODACTYL_SERVER_NAMEto match your Fast Dev instance exactly.5. Deploy
The script will:
beacon.jaron the server (timestamped rename)beacon.jarconfig.ymlwith your Convex settings (ifCONVEX_SITE_URL/CONVEX_HTTP_SECRETare set)Additional flags
--skip-build--skip-restart--no-backup--jar-path PATH--artifact-url URL--server UUID--server-name NAME--list-serversRequired panel permissions
file.read,file.create,file.update,control.restartTest plan
--list-serversshows all servers for the API key--server-name "Fast Dev - Ibraheem"resolves to the correct server UUID--list-servers🤖 Generated with Claude Code