Mounts allow you to share directories from the host system with game server containers. This is useful for sharing assets, maps, plugins, or other files across multiple servers.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/pterodactyl/panel/llms.txt
Use this file to discover all available pages before exploring further.
What are Mounts?
A mount creates a bind mount from the host filesystem into server containers. Fromapp/Models/Mount.php:56-63:
Mount Properties
- Name: Unique identifier for the mount
- Description: What the mount contains
- Source: Path on the host system
- Target: Path inside the container
- Read Only: Whether users can write to the mount
- User Mountable: Whether users can mount/unmount themselves
Creating a Mount
Configure Mount Details
Basic Information
- Name: Unique name (e.g.,
shared-maps,plugin-library) - Description: What this mount provides
Set Paths
Mount Paths
- Source: Host path (e.g.,
/mnt/shared/maps) - Target: Container path (e.g.,
/home/container/maps)
Configure Permissions
Access Settings
- Read Only: Check if users should not be able to write
- User Mountable: Allow users to mount this themselves
Path Restrictions
Certain paths are blacklisted for security (fromapp/Models/Mount.php:87-98):
Invalid Source Paths
Invalid Target Paths
Assigning Mounts to Nodes
Mounts must be assigned to nodes before they can be used:
From
app/Http/Controllers/Admin/MountController.php:132-144:
Only nodes with this mount assigned will have the directory available in containers.
Assigning Mounts to Eggs
Mounts can be restricted to specific eggs:
From
app/Http/Controllers/Admin/MountController.php:113-127:
Why Assign to Eggs?
Assigning mounts to specific eggs ensures:- Only relevant servers get the mount
- Better security and isolation
- Cleaner server configurations
- Map mounts only for Source Engine eggs
- Plugin directories only for Minecraft eggs
- Asset libraries only for specific game types
Mount Relationships
Mounts use many-to-many relationships:Eggs Relationship
Fromapp/Models/Mount.php:105-108:
Nodes Relationship
Fromapp/Models/Mount.php:115-118:
Servers Relationship
Fromapp/Models/Mount.php:125-128:
User Mountable Option
Whenuser_mountable is enabled:
- Users can see the mount in their server settings
- Users can toggle the mount on/off for their servers
- Useful for optional content (maps, plugins)
- Only admins can assign the mount
- Automatically mounted on applicable servers
- Users cannot remove it
Node Configuration
When a mount is assigned to a node, it’s added to the Wings configuration. Fromapp/Models/Node.php:165:
Common Use Cases
Shared Map Repository
Use Case: Share a collection of maps across all Source Engine servers- CS:GO, TF2, Garry’s Mod eggs
- All nodes hosting Source servers
Plugin Library
Use Case: Provide a library of plugins users can access- Paper, Spigot, Bukkit eggs
- All Minecraft nodes
Shared Configuration
Use Case: Enforce consistent configuration filesMod Repository
Use Case: Provide mods for users to installSecurity Considerations
Read-Only Mounts
Always use read-only mounts unless write access is required:- Prevents users from modifying shared content
- Protects against malicious file modifications
- Ensures consistency across servers
Path Validation
Be careful with mount paths:- Never mount sensitive system directories
- Avoid mounting directories with write access to critical files
- Use specific paths, not broad directories
User Mountable Security
Only make mounts user-mountable if:- The content is safe for all users
- Read-only access is enforced
- The mount doesn’t contain sensitive data
Managing Existing Mounts
Viewing Mounts
The mounts index page shows:- Mount name and description
- Source and target paths
- Number of assigned nodes
- Number of assigned eggs
- Number of servers using the mount
Editing a Mount
Removing Nodes or Eggs
To remove a node or egg assignment:- Navigate to the mount
- Click the X next to the node or egg
- Confirm removal
app/Http/Controllers/Admin/MountController.php:149-163:
Deleting a Mount
From
app/Http/Controllers/Admin/MountController.php:103-108:
Troubleshooting
Mount Not Available
Problem: Mount doesn’t appear in server settings Solutions:- Verify mount is assigned to the server’s egg
- Check mount is assigned to the server’s node
- Ensure
user_mountableis enabled (if user-facing) - Restart Wings on the node
Permission Denied
Problem: Servers can’t access mounted files Solutions:- Check source directory exists on the node
- Verify directory permissions (should be readable by Wings)
- Check SELinux/AppArmor policies
- Ensure Docker can access the path
Files Not Syncing
Problem: Changes to source aren’t visible in containers Solutions:- Verify the mount is active (check server settings)
- Restart the server container
- Check Wings logs for mount errors
- Ensure source path is correct
Best Practices
- Use Read-Only: Default to read-only mounts for security
- Specific Paths: Mount specific directories, not entire drives
- Document Mounts: Clearly describe what each mount provides
- Test First: Test mounts on a development server before production
- Consistent Paths: Use the same source paths across all nodes
- Regular Audits: Review mounts periodically for security
- Backup Sources: Keep backups of important mounted directories
Next Steps
Nests & Eggs
Learn about assigning mounts to eggs
Node Management
Understand node configuration for mounts
