{"id":29560782,"url":"https://github.com/alexprogrammerde/pistonpanel","last_synced_at":"2025-07-18T15:38:51.336Z","repository":{"id":289271881,"uuid":"970686896","full_name":"AlexProgrammerDE/PistonPanel","owner":"AlexProgrammerDE","description":"🌠 Next-gen game-server hosting panel","archived":false,"fork":false,"pushed_at":"2025-07-11T00:52:04.000Z","size":9861,"stargazers_count":7,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-11T00:58:57.428Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlexProgrammerDE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"alexprogrammerde"}},"created_at":"2025-04-22T11:41:04.000Z","updated_at":"2025-07-10T18:34:06.000Z","dependencies_parsed_at":"2025-04-22T13:22:58.766Z","dependency_job_id":"252dd5d7-fe7b-469b-a35c-8fad5ed41cce","html_url":"https://github.com/AlexProgrammerDE/PistonPanel","commit_stats":null,"previous_names":["alexprogrammerde/pistonpanel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlexProgrammerDE/PistonPanel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexProgrammerDE%2FPistonPanel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexProgrammerDE%2FPistonPanel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexProgrammerDE%2FPistonPanel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexProgrammerDE%2FPistonPanel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexProgrammerDE","download_url":"https://codeload.github.com/AlexProgrammerDE/PistonPanel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexProgrammerDE%2FPistonPanel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265787446,"owners_count":23828431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-18T15:38:50.797Z","updated_at":"2025-07-18T15:38:51.318Z","avatar_url":"https://github.com/AlexProgrammerDE.png","language":"TypeScript","funding_links":["https://ko-fi.com/alexprogrammerde"],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"right\" src=\"https://github.com/AlexProgrammerDE/PistonPanel/blob/main/public/logo.png?raw=true\" height=\"150\" width=\"150\"\u003e\n\n\u003ca href=\"https://github.com/AlexProgrammerDE/PistonPanel/actions/workflows/build.yml\"\u003e\u003cimg src=\"https://github.com/AlexProgrammerDE/PistonPanel/actions/workflows/build.yml/badge.svg?branch=main\" alt=\"Test\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/AlexProgrammerDE/PistonPanel/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/AlexProgrammerDE/PistonPanel.svg\" alt=\"Contributors\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/AlexProgrammerDE/PistonPanel/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/AlexProgrammerDE/PistonPanel.svg\" alt=\"License\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://discord.gg/vHgRd6YZmH\"\u003e\u003cimg src=\"https://discordapp.com/api/guilds/739784741124833301/embed.png\" alt=\"Discord embed\"\u003e\u003c/a\u003e\n\n# PistonPanel\n\n**🌠 Next-gen game-server hosting panel**\n\n## About\n\n\u003e [!NOTE]\n\u003e PistonPanel is currently in early development; you cannot use this project yet. Many features are missing, so you'll\n\u003e have to wait a bit until everything is ready. Check back to see if anything has changed.\n\nPistonPanel is a web-based game server management panel that allows you to manage your game servers from anywhere.\nIt is designed to be easy to use and provides a modern interface for managing your game servers.\n\nUnique features of PistonPanel:\n\n- Organisations: Manage multiple servers in one place. Invite members to your organisation to collaborate.\n- Kubernetes: While other panels rely on Docker, PistonPanel is built with only Kubernetes support, providing multi-node\n  features like no other panel can.\n- Auth: With a highly advanced authentication system, support login methods like Passkeys, 2FA, email codes, magic\n  links, Google, Microsoft, Apple... and more!\n- Fully customizable: If you know React and TypeScript, you can modify the panel code to your liking.\n\n## Building\n\nPistonPanel has a lot of dependencies. You'll need pnpm and the latest node installed.\nTake a look at the scripts in `package.json` to see how to run a dev env locally.\nYou can also refer to the GitHub actions workflows to see how tests are done.\n\n## Generate better-auth schema\n\n```bash\nnpx @better-auth/cli@latest generate --config ./server/auth/auth-server.tsx  --output ./server/db/auth-schema.ts\n```\n\n## Local Postgres\n\n### Setup container\n\n```bash\ndocker run --name dev-postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres\n```\n\n### Start after boot\n\n```bash\ndocker start dev-postgres\n```\n\n## Local k8s\n\n### Install cillium\n\n```bash\nCILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/master/stable.txt)\nCLI_ARCH=amd64\nif [ \"$(uname -m)\" = \"aarch64\" ]; then CLI_ARCH=arm64; fi\ncurl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}\nsha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum\nsudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin\nrm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}\n```\n\n### Start minikube\n\n```bash\nminikube addons enable metrics-server\nminikube addons enable dashboard\nminikube addons enable portainer\nminikube start --network-plugin=cni --cni=cilium --driver=docker\n```\n\n## Drizzle\n\nhttps://orm.drizzle.team/docs/kit-overview\n\n### Create migration\n\n```bash\npnpm drizzle-kit generate\n```\n\n### Run migrations\n\n```bash\npnpm drizzle-kit migrate\n```\n\n### Push schema to db\n\n```bash\npnpm drizzle-kit push\n```\n\n### Open Studio\n\nURL: https://local.drizzle.studio\n\n```bash\npnpm drizzle-kit studio\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexprogrammerde%2Fpistonpanel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexprogrammerde%2Fpistonpanel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexprogrammerde%2Fpistonpanel/lists"}