An open API service indexing awesome lists of open source software.

https://github.com/alexprogrammerde/pistonpanel

🌠 Next-gen game-server hosting panel
https://github.com/alexprogrammerde/pistonpanel

Last synced: 7 months ago
JSON representation

🌠 Next-gen game-server hosting panel

Awesome Lists containing this project

README

          

Test
Contributors
License

Discord embed

# PistonPanel

**🌠 Next-gen game-server hosting panel**

## About

> [!NOTE]
> PistonPanel is currently in early development; you cannot use this project yet. Many features are missing, so you'll
> have to wait a bit until everything is ready. Check back to see if anything has changed.

PistonPanel is a web-based game server management panel that allows you to manage your game servers from anywhere.
It is designed to be easy to use and provides a modern interface for managing your game servers.

Unique features of PistonPanel:

- Organisations: Manage multiple servers in one place. Invite members to your organisation to collaborate.
- Kubernetes: While other panels rely on Docker, PistonPanel is built with only Kubernetes support, providing multi-node
features like no other panel can.
- Auth: With a highly advanced authentication system, support login methods like Passkeys, 2FA, email codes, magic
links, Google, Microsoft, Apple... and more!
- Fully customizable: If you know React and TypeScript, you can modify the panel code to your liking.

## Building

PistonPanel has a lot of dependencies. You'll need pnpm and the latest node installed.
Take a look at the scripts in `package.json` to see how to run a dev env locally.
You can also refer to the GitHub actions workflows to see how tests are done.

## Generate better-auth schema

```bash
npx @better-auth/cli@latest generate --config ./server/auth/auth-server.tsx --output ./server/db/auth-schema.ts
```

## Local Postgres

### Setup container

```bash
docker run --name dev-postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres
```

### Start after boot

```bash
docker start dev-postgres
```

## Local k8s

### Install cillium

```bash
CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/master/stable.txt)
CLI_ARCH=amd64
if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi
curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
```

### Start minikube

```bash
minikube addons enable metrics-server
minikube addons enable dashboard
minikube addons enable portainer
minikube start --network-plugin=cni --cni=cilium --driver=docker
```

## Drizzle

https://orm.drizzle.team/docs/kit-overview

### Create migration

```bash
pnpm drizzle-kit generate
```

### Run migrations

```bash
pnpm drizzle-kit migrate
```

### Push schema to db

```bash
pnpm drizzle-kit push
```

### Open Studio

URL: https://local.drizzle.studio

```bash
pnpm drizzle-kit studio
```