Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ export const SITE = CUSTOM_DOMAIN ?? "https://gameplanepanel.github.io";
export const BASE = CUSTOM_DOMAIN ? "/" : "/website";

export const GITHUB_URL = "https://github.com/GameplanePanel/Gameplane";
export const VERSION = "v0.2.0-beta.8";
export const VERSION = "v0.3.0";
28 changes: 14 additions & 14 deletions src/content/docs/air-gapped-installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,11 @@ Every image and the chart are signed with cosign. Before mirroring, verify the s
```sh
# Verify operator image
cosign verify --key cosign.pub \
ghcr.io/valgulnecron/gameplane/operator:0.2.0-beta.8
ghcr.io/valgulnecron/gameplane/operator:0.3.0

# Verify chart
cosign verify --key cosign.pub \
ghcr.io/valgulnecron/charts/gameplane:0.2.0-beta.8
ghcr.io/valgulnecron/charts/gameplane:0.3.0

# Game modules are signed the same way
cosign verify --key cosign.pub \
Expand All @@ -98,20 +98,20 @@ Use `crane` (Google's OCI tool) or your registry vendor's mirror command to copy
```sh
# Mirror operator image to private registry
crane copy \
ghcr.io/valgulnecron/gameplane/operator:0.2.0-beta.8 \
registry.internal.corp/gameplane/operator:0.2.0-beta.8
ghcr.io/valgulnecron/gameplane/operator:0.3.0 \
registry.internal.corp/gameplane/operator:0.3.0

# Mirror Helm chart
crane copy \
ghcr.io/valgulnecron/charts/gameplane:0.2.0-beta.8 \
registry.internal.corp/gameplane/charts-gameplane:0.2.0-beta.8
ghcr.io/valgulnecron/charts/gameplane:0.3.0 \
registry.internal.corp/gameplane/charts-gameplane:0.3.0
```

Mirrors must preserve the digest — verify the copied artifacts have the same digest as the source:

```sh
crane digest ghcr.io/valgulnecron/gameplane/operator:0.2.0-beta.8
crane digest registry.internal.corp/gameplane/operator:0.2.0-beta.8
crane digest ghcr.io/valgulnecron/gameplane/operator:0.3.0
crane digest registry.internal.corp/gameplane/operator:0.3.0
# Both must print the same sha256:...
```

Expand Down Expand Up @@ -190,7 +190,7 @@ Configure Helm to use it:

```sh
helm upgrade --install gameplane oci://registry.internal.corp/gameplane/charts-gameplane \
--version 0.2.0-beta.8 \
--version 0.3.0 \
--namespace gameplane-system --create-namespace \
--set image.pullSecrets[0].name=registry-creds
```
Expand All @@ -203,18 +203,18 @@ For every image in the chart values, rewrite the registry hostname but **never c
# Default
image:
registry: ghcr.io/valgulnecron
tag: "0.2.0-beta.8"
tag: "0.3.0"

# Rewritten for internal registry (same tag, different registry)
image:
registry: registry.internal.corp/gameplane
tag: "0.2.0-beta.8"
tag: "0.3.0"

# Override optional image pulls
operator:
configInitImage: registry.internal.corp/busybox # instead of busybox
resticImage: registry.internal.corp/restic:latest # instead of restic/restic
sentinelImage: registry.internal.corp/gameplane/sentinel:0.2.0-beta.8
sentinelImage: registry.internal.corp/gameplane/sentinel:0.3.0

# Mirror the CRD-apply hook's kubectl image (needed at upgrade time and on
# an install over leftover CRDs)
Expand Down Expand Up @@ -246,7 +246,7 @@ Before disconnecting from the public internet, render the final manifest to conf

```sh
helm template gameplane oci://registry.internal.corp/gameplane/charts-gameplane \
--version 0.2.0-beta.8 \
--version 0.3.0 \
--namespace gameplane-system \
-f values-offline.yaml \
> manifests.yaml
Expand All @@ -264,7 +264,7 @@ Apply the rendered manifest or use Helm with your internal registry:

```sh
helm upgrade --install gameplane oci://registry.internal.corp/gameplane/charts-gameplane \
--version 0.2.0-beta.8 \
--version 0.3.0 \
--namespace gameplane-system --create-namespace \
-f values-offline.yaml
```
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/api-crds.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import DocsQuickReference from "../../components/docs/DocsQuickReference.astro";

GameServer, GameTemplate, Module, ModuleSource, Backup, BackupSchedule, Cluster, and Restore encode the platform's declarative contracts. These eight resources form the core API surface.

<DocsCallout icon="milestone" title="Coming in v0.3.0">
NetworkCapture, the ninth core CRD (packet capture), ships in v0.3.0 and is not available in beta.8.
<DocsCallout icon="milestone" title="Available since v0.3.0">
NetworkCapture, the ninth core CRD (packet capture), is available since v0.3.0.
</DocsCallout>

<DocsSectionList
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/audit-observability-admin.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Use fleet metrics for symptom detection, Kubernetes events for control-plane cau

- **Keep API and operator streams separate when following live logs.** Both services emit structured logs; keep them in separate streams to avoid losing context when debugging a single component's behavior.
- **Use structured-level filters and download raw evidence for correlation.** The Dashboard Logs page (Admin Settings → Observability) supports filtering by level; download the full log window as JSON for offline analysis across multiple components.
- **Document telemetry settings and privacy expectations for operators.** Telemetry is opt-in and off by default (no `api.telemetry.endpoint` or bundled receiver configured out of the box, and an admin-only dashboard toggle must also be turned on before anything is sent). When enabled, the telemetry-receiver collects anonymous cluster usage (server counts, resource requests, uptime) but does not capture game data, player information, or audit events. Audit telemetry settings in Platform Settings so all cluster operators are aware of what is being transmitted.
- **Document telemetry settings and privacy expectations for operators.** Usage telemetry is on by default for new installs; admins can turn it off in Admin Settings > Telemetry. When enabled, the telemetry-receiver collects anonymous cluster usage (server counts, resource requests, uptime) but does not capture game data, player information, or audit events. Audit telemetry settings in Platform Settings so all cluster operators are aware of what is being transmitted.

## Notifications and platform settings

Expand Down Expand Up @@ -71,4 +71,4 @@ Each sink is tested independently via the Dashboard form before saving. The API
- [Production Observability](../production-observability/) — Prometheus, dashboards, and fleet-wide metrics
- [Metrics, Alerts & Dashboards](../metrics-alerts-dashboards/) — Scraping, alerting rules, and Grafana sinks
- [Notification Sinks](../notification-sinks/) — Configuring webhooks, ntfy, Slack, and SMTP
- [Platform Settings & Telemetry](../platform-settings-telemetry/) — Instance identity, update channels, and opt-in telemetry
- [Platform Settings & Telemetry](../platform-settings-telemetry/) — Instance identity, update channels, and telemetry settings
2 changes: 1 addition & 1 deletion src/content/docs/cluster-nodes-kubeconfig.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ Then redeploy:

```bash
helm upgrade gameplane oci://ghcr.io/valgulnecron/charts/gameplane \
--version 0.2.0-beta.8 \
--version 0.3.0 \
--set clusterOps.enabled=true
```

Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/cluster-storage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ Match access modes, reclaim policy, expansion, topology, and backup strategy to

- **Use a default StorageClass or select one explicitly during creation.** Select a StorageClass explicitly per server or template via `spec.storage.storageClassName`; if none is set, the cluster's default StorageClass is used. Verify one exists and matches your needs (e.g., SSD for high-IOPS games, networked storage for multi-pod backups).

<DocsCallout icon="milestone" title="Coming in v0.3.0">
An install-time Helm default (`operator.gameDataStorage.storageClassName`) is coming in v0.3.0 and is not yet available in beta.8.
<DocsCallout icon="milestone" title="Available since v0.3.0">
An install-time Helm default (`operator.gameDataStorage.storageClassName`) is available since v0.3.0.
</DocsCallout>
- **Confirm `allowVolumeExpansion` before increasing a server PVC.** Game worlds grow; if you plan to increase PVC size later, ensure the StorageClass allows expansion. Check with `kubectl get storageclass -o wide` — the `ALLOWVOLUMEEXPANSION` column should be `true`. You can edit a GameServer's `spec.storage.size` to trigger a resize (the Kubernetes CSI driver and underlying storage backend must support it).
- **Understand whether deletion retains or removes the underlying volume.** StorageClass `reclaimPolicy` is `Delete` (volume deleted on PVC deletion) or `Retain` (volume kept for manual recovery). For production game servers, consider `Retain` to preserve world data even if a GameServer CRD is deleted. Consult your storage provider's documentation on reclaim semantics.
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/comparison.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ Pterodactyl and CubeCoders AMP are control panels; Agones is a Kubernetes operat

| Dimension | Gameplane | Pterodactyl | CubeCoders AMP | Agones |
| --- | --- | --- | --- | --- |
| Deployment/runtime model | Kubernetes-native CRDs and controller-runtime operator; scales from k3s homelab to multi-node clusters. [BETA] | Self-hosted Panel with PHP/MySQL/Redis dependencies; Wings backend manages Docker containers. | Web-based control panel supporting Windows (native) and Linux (Debian 10+). | Kubernetes-native library extending K8s with GameServer/Fleet CRDs. |
| Deployment/runtime model | Kubernetes-native CRDs and controller-runtime operator; scales from k3s homelab to multi-node clusters. | Self-hosted Panel with PHP/MySQL/Redis dependencies; Wings backend manages Docker containers. | Web-based control panel supporting Windows (native) and Linux (Debian 10+). | Kubernetes-native library extending K8s with GameServer/Fleet CRDs. |
| Scaling & auto-sleep | Opt-in idle auto-sleep with configurable wake windows, manual wake button, or wake-on-connect. Minecraft/Terraria full protocol support; others use packet heuristics. [optional] | Multi-node support with cron-based power scheduling; no dedicated idle/auto-sleep feature. | Instance Automatic Sleep feature; multi-server architecture with controller managing instances. | Fleet autoscaling via buffer/webhook strategies; no idle/sleep state. |
| Inbound connectivity (NAT traversal, relay) | Integrated frp, Tailscale, playit relays (a separate tunnel pod per server); playit mappings user-managed via playit.gg account. [optional; disabled by default] | No integrated relay sidecars; manual proxy/port forwarding configuration required. | not publicly documented (checked 2026-09-02) | No relay or NAT traversal features documented. |
| Backup and restore | Restic snapshots to S3-compatible storage; on-demand or cron-scheduled via BackupSchedule; one-click restore. | Wings (local, default) or S3-compatible backup drivers; cron scheduling and on-demand backups. | not publicly documented (checked 2026-09-02) | not applicable (Agones is a Kubernetes operator library) |
| Access control & authentication | Local argon2id + OIDC (Keycloak/Google/GitHub); three built-in roles (admin/operator/viewer); custom roles supported. | 2FA configurable per account or admin-only; subuser management via Artisan CLI. | Role-based access control; OIDC single-sign-on in Advanced Edition. | not applicable (Agones is a Kubernetes operator library) |
| Game template distribution | OCI bundles via ModuleSource (git/http/oci/local/upload); optional cosign signature verification per source. 30 ready-to-use templates on master (16 in v0.2.0-beta.8; the other 14 arrive in v0.3.0). | Community eggs repository (eggs.pterodactyl.io) with nests and custom egg creation support. | Customizable templates framework; community-contributed templates available via external repositories. | not applicable (Agones is a Kubernetes operator library) |
| Game template distribution | OCI bundles via ModuleSource (git/http/oci/local/upload); optional cosign signature verification per source. 29 ready-to-use templates on master (16 in v0.2.0-beta.8; 13 arrive in v0.3.0; Hell Let Loose withdrawn). | Community eggs repository (eggs.pterodactyl.io) with nests and custom egg creation support. | Customizable templates framework; community-contributed templates available via external repositories. | not applicable (Agones is a Kubernetes operator library) |
| Multi-tenancy & multi-cluster | Cluster CRD for remote registration and health checks; in v0.2.0-beta.8 console/log streaming is local-cluster only. From v0.3.0: remote Pod logs/PTY, an optional private gateway for console, files, players, mods and UID-bound capture downloads/cleanup, modpack and ID-list configuration on the selected cluster, and a unified dashboard with location filters. Requires matching gateway, operator, agent and capture-sidecar versions. | Single Panel managing multiple nodes; no documented remote cluster or cross-cluster streaming. | Multi-server management via controller architecture; multi-tenancy not supported in AMP 2 (planned for AMP 3). | Multi-cluster allocation via GameServerAllocationPolicy; allocator service with mTLS authentication. |
| Licensing | GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). | MIT License (Panel and Wings). | Proprietary; per-instance tiers (Standard/Professional/Advanced/Enterprise). | Apache License 2.0. |
| Target operator scope (self-hosted vs. managed SaaS) | Self-hosted only; runs on Kubernetes (k3s, kubeadm, managed services); no managed SaaS offering. | Self-hosted only; requires Linux system capable of running Docker containers. | Self-installed on user hardware (Windows or Linux); no managed SaaS version. | Self-hosted operator software; runs anywhere Kubernetes can run. |
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import Icon from "../../components/Icon.astro";
<Icon name="chevron-up" class="h-4 w-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180" />
</summary>
<div class="border-t border-separator px-4 pb-4 pt-3 text-[14px] leading-normal text-muted-foreground">
It's in beta ({VERSION}). Core workflows are feature-complete and tested, but not yet
It's a pre-v1 release ({VERSION}). Core workflows are feature-complete and tested, but not yet
recommended for unattended production — see the <a href="../roadmap/">Roadmap</a>.
</div>
</details>
Expand Down
Loading
Loading