Skip to content
Draft
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
23 changes: 23 additions & 0 deletions content/docs/api/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Pyrodactyl API
description: Pyrodactyl API Documentation
---

<Callout type="info">
This section covers the Pyrodactyl API.
</Callout>

<Callout type="warn" title="warning">
This section is a work in progress and is not complete. For more information, join our [discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support).
</Callout>

The Pyrodactyl API allows you to interact with the Pyrodactyl panel programmatically. You can use it to manage servers, users, and other resources. From billing to server management, the API provides a wide range of functionalities.



## Additional Resources

- [Docker Documentation](https://docs.docker.com/)
- [Pyrodactyl GitHub](https://github.com/pyrohost/pyrodactyl)
- [Pterodactyl Documentation](https://pterodactyl.io/)
- [Pyrodactyl Discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support)
6 changes: 6 additions & 0 deletions content/docs/elytra/configuration.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Configuring Elytra
description: How to configure Elytra to work with your Pyrodactyl Panel
---

title
7 changes: 7 additions & 0 deletions content/docs/elytra/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,10 @@ Key Features and Changes:
Have something you want to see added to Elytra?
Make an issue on our [Github!](https://github.com/pyrohost/elytra/issues/new)
</Callout>

## Additional Resources

- [Docker Documentation](https://docs.docker.com/)
- [Pyrodactyl GitHub](https://github.com/pyrohost/pyrodactyl)
- [Pterodactyl Documentation](https://pterodactyl.io/)
- [Pyrodactyl Discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support)
6 changes: 6 additions & 0 deletions content/docs/elytra/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -282,3 +282,9 @@ Once you've got your stuff working. your free to go
sudo systemctl enable --now elytra
```

## Additional Resources

- [Docker Documentation](https://docs.docker.com/)
- [Pyrodactyl GitHub](https://github.com/pyrohost/pyrodactyl)
- [Pterodactyl Documentation](https://pterodactyl.io/)
- [Pyrodactyl Discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support)
13 changes: 13 additions & 0 deletions content/docs/extra-info/admins/allocations.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: allocations
description: Allocations & ports
---

text

## Additional Resources

- [Docker Documentation](https://docs.docker.com/)
- [Pyrodactyl GitHub](https://github.com/pyrohost/pyrodactyl)
- [Pterodactyl Documentation](https://pterodactyl.io/)
- [Pyrodactyl Discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support)
29 changes: 29 additions & 0 deletions content/docs/extra-info/admins/index.mdx.disabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: Overview - Admin
description: Admin Users Tasks & Abilities
---

<Cards>
<Card title="Adding Users" href="/docs/post-install/users">
Add user accounts with & without admin permissions
</Card>
<Card title="Creating Locations" href="/docs/post-install/locations">
Add locations to keep nodes orginzed
</Card>
<Card title="Creating Nodes" href="/docs/post-install/nodes">
Add nodes to where servers are located
</Card>
<Card title="Creating Servers" href="/docs/post-install/servers">
Creating serers & assigning them to a node
</Card>
<Card title="Server Allocations" herf="docs/post-install/allocations">
Creating ports & allocating them to servers
</Card>
</Cards>

## Additional Resources

- [Docker Documentation](https://docs.docker.com/)
- [Pyrodactyl GitHub](https://github.com/pyrohost/pyrodactyl)
- [Pterodactyl Documentation](https://pterodactyl.io/)
- [Pyrodactyl Discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support)
90 changes: 90 additions & 0 deletions content/docs/extra-info/admins/locations.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
title: Creating Locations
description: Creating & Configuring locations
---

## What Is a Location?

In Pyrodactyl a Location is a high–level grouping used to classify Nodes by geography, datacenter, or provider. It is purely organizational and does not itself run any workloads.

## Location vs Node

- Location: Logical label (no hardware, no allocations).
- Node: Actual machine configuration (daemon, allocations, resource limits) that is assigned to exactly one Location.

## Creating a Location

1. Go to Admin Area > Locations.
2. Click Create Location.
3. Provide:
- Short Code: Concise identifier (e.g. us-nyc-1).
- Description (optional but recommended).
4. Save.

Short Codes should be:
- Lowercase
- Hyphen separated
- Stable (avoid later renames if referenced externally)

Examples: us-east, us-east-2, eu-fra, ap-sgp, edge-la, aws-usw-1, us.chicago.pyro

## Assigning Nodes

When adding or editing a Node select the desired Location. Reassigning a Node later does not affect servers functionally; it only updates grouping.

## Editing & Renaming

- You may edit description anytime.
- Renaming the short code is safe internally but may break external automation that relies on the old code--audit before changing.

## Deleting a Location

- You must first move or remove all Nodes under it.
- Deletion leaves servers intact (they live under their Nodes) but you cannot delete if any Node still references the Location.

## Best Practices

- Keep list small and meaningful (regions/providers, not every rack).
- Use consistent pattern (region-city-number or provider-region).
- Avoid embedding transient info (like temporary offers or hardware specs).
- Document naming scheme for staff.

## Common Mistakes

| Mistake | Impact | Fix |
|---------|--------|-----|
| Too many granular Locations | Cluttered UI | Merge into broader regions |
| Using Location to reflect hardware tier | Confusion | Use Node naming / descriptions instead |
| Renaming without notice | Automation breakage | Maintain a mapping or avoid rename |

## API Notes

Locations are retrievable and manageable via the administrative API. Create Locations first, then post Nodes referencing the Location ID or short code (depending on endpoint requirements).

## When to Add Another Location

Add a new Location only if:
- New geographic region introduced
- New provider with distinct compliance / cost profile
- You need a clear segregation boundary for reporting

If it is just a new machine in an existing region/provider, add another Node--not a Location.

## Quick Checklist

- Does it represent a distinct region or provider? (Yes -> Location)
- Will staff readily understand the code? (Yes -> Good)
- Will it stay relevant for 6+ months? (Yes -> Proceed).

![Location Homepage](/img/locations/locations-home.png)
![Location Creation Fourm](/img/locations/locations-creation.png)
![Location About Page](/img/locations/locations-about.png)

After all of that you are done! Your location is made and now you can see it in the main locations page.

## Additional Resources

- [Docker Documentation](https://docs.docker.com/)
- [Pyrodactyl GitHub](https://github.com/pyrohost/pyrodactyl)
- [Pterodactyl Documentation](https://pterodactyl.io/)
- [Pyrodactyl Discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support)
186 changes: 186 additions & 0 deletions content/docs/extra-info/admins/nodes.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
---
title: Creating Nodes
description: Creating and configuring nodes
---

Don’t create a Node just to group servers--use naming/filters. If you must,
use Locations for grouping (e.g., bedwars.provider).

## When to Create a Node

- When you have new hardware (VPS or Dedicated) to host more servers.
- When you split one dedicated server into multiple virtual machines
(e.g., Proxmox or another hypervisor).

## What is a Node?

- A Node represents physical hardware running the Pyrodactyl Elytra
(or Pterodactyl Wings) daemon that hosts servers in containers.
- Nodes define resource pools for CPU, Memory, Disk Space, IPs, and ports.

## Node vs Location vs Server

- Location: A grouping label (region/provider).
- Node: Machine + daemon + resource/allocation pool; belongs to one Location.
- Server: A user container consuming a slice of a Node’s resources and allocations.

Tip: Don’t create a Node just to group servers--use naming/filters. If needed,
use Locations for that.

## Prerequisites

- Domain name (optional, but required for SSL/TLS).
- Daemon reachable (firewall open).
- FQDN or IP ready (decide on SSL/reverse proxy).
- SFTP/Docker dependencies installed as needed.

## Terminology

- Servers: The game servers you want to run (e.g., Minecraft, TF2).
- VPS/Dedicated: The hardware hosting the game servers.
- Nodes: Internal name to specify which hardware is used.
- Location: The panel label to separate where nodes are physically hosted.

## Creating a Node

1. Admin Area > Nodes > Create Node.
2. Fill out the fields and save.
3. Add at least one IP/Port allocation.
4. Assign or create servers for this Node.

## Core Fields

- General: Name, Description, Location.
- Connectivity: FQDN/IP, Public Port (daemon, e.g., 8080), SFTP Port (e.g., 2022);
open firewall rules.
- Resource Limits (totals for the Node): Total Memory, Disk, CPU; Over-Allocate %
for memory/disk/CPU.
- Allocation/Ports: Default IP, additional IPs, add port ranges, remove unused ports.
- Daemon Config: Base Path (e.g., /var/lib/pyrodactyl/servers), Behind Proxy,
Maintenance Mode, Backup directory/limits.
- Security/Limits: Upload size, allowed archive extensions, default Docker images list,
reject stale daemon versions.
- Advanced: Task timeout/graceful stop, container network mode, disk check strategy.

## Editing a Node

- Safe changes: Description, over-allocation values, add IPs/ports, Docker image list,
upload limits, Maintenance toggle.
- Use caution: FQDN/IP, Public/SFTP ports (requires DNS/firewall updates and service restart),
Base Path (requires data migration).

## Renaming

- No runtime impact; may break external automation. Audit scripts first.

## Resource Strategy

- Memory/Disk: Reflect usable capacity minus OS; use modest over-allocation.
- CPU: Sum of server CPU limits should respect Total CPU plus over-allocate margin.
Over-allocate lightly for bursty workloads (25–50%); avoid for consistently high usage.

## Allocation Management

- Workflow: Add IPs → add port ranges → servers consume ports → remove unused.
- Best practices:
- Keep a 10–15% port buffer.
- Group port ranges by game type.
- Add aliases for multi-provider/NAT setups.

## Deleting a Node

- Move or delete all servers first, then clear allocations, then delete the Node.
There is no automatic migration.

## Migration (High-Level)

1. Create the new Node and ensure parity (images, versions, ports).
2. Stop the server.
3. Transfer files (rsync/backup/restore).
4. Recreate on the new Node.
5. Validate.
6. Clean old allocations.

## Monitoring & Health

- Watch daemon heartbeat.
- Track free allocations and over-allocation pressure (avoid >90% of physical).
- Monitor disk usage and inodes.
- Keep Docker images updated.

## Common Mistakes (and fixes)

- Setting Total Memory to full RAM → OOM risk → reserve 5–15% for the OS.
- Excessive over-allocation (e.g., 200%) → performance issues → lower the ratio.
- Missing firewall rules for daemon/SFTP → offline/errors → open and persist rules.
- Mixing prod/test on the same Node → contention → separate or limit.
- Deleting an IP before clearing allocations → stale errors → remove allocations first.
- Skipping Maintenance before major changes → disruptions → enable Maintenance.
- Changing Base Path carelessly → broken paths → plan migration/symlinks.

## Best Practices

- Use consistent naming (e.g., node-us-nyc-1); put hardware class in description.
- Maintain a capacity sheet (total vs. allocated).
- Prune unused ports; curate a minimal set of Docker images.
- Use Maintenance Mode for daemon/kernel upgrades.

## API Notes

- Admin API: create/list Nodes, manage allocations, update limits, toggle maintenance.
- Typical flow: POST Location → POST Node → POST allocations → POST servers (Node ID).
Validate daemon connection.

## When to Add Another Node

- Add when you have a new machine, sustained capacity >80% memory, isolation needs,
or different performance tiers.
- Don’t add a Node just for a single new server or a different Docker image.

## Quick Checklist

- Daemon reachable; DNS/SSL/proxy correct; firewall open (daemon/SFTP).
- Resource totals set minus OS; intentional over-allocation.
- IPs added with an adequate port pool.
- Docker images curated; monitoring/logs configured; backup strategy in place.

## Capacity Review Tips

- Memory: alert at 75%, plan at 85%.
- Disk: alert at 70%, plan at 80%, emergency at 90%.
- Ports: alert when &lt;10% free.
- CPU: check sustained 15m load vs. core count.

## Troubleshooting

- Node offline: check daemon service, TLS/proxy, and connectivity (nc/curl).
- Can’t allocate ports: pool exhausted, IP missing, or port in use/firewalled.
- Start fails (insufficient resources): over-allocation exceeded → adjust or migrate.

## Glossary

- Allocation: Reserved IP:Port.
- Over-Allocate: Oversubscribe beyond physical resources.
- Daemon: Background container manager.
- Maintenance Mode: Blocks new actions; running servers continue.

## Example Naming

- node-us-east-1, node-eu-fra-2, node-ap-sgp-1, node-edge-la-1, node-aws-usw-1, us.chicago.pyro

## Scaling

- Vertical: increase Node resources (after hardware upgrade).
- Horizontal: add another Node in the same Location.
- Geographic: create a new Location and add a Node there.

## Visual References

- Nodes homepage, Create Node form, Node detail overview.

## Additional Resources

- [Docker Documentation](https://docs.docker.com/)
- [Pyrodactyl GitHub](https://github.com/pyrohost/pyrodactyl)
- [Pterodactyl Documentation](https://pterodactyl.io/)
- [Pyrodactyl Discord](https://discord.com/invite/FGWKZT5dxv?utm_campaign=pyrodactyl_support)
Loading