Skip to main content

Overview

XyraPanel includes a powerful file management system that lets you browse directories, edit configuration files, upload/download files, and manage permissions—all through your browser without needing FTP or SFTP access.

File Browser

Access your server’s files at:
/server/{server-identifier}/files
The file browser displays:
  • Directories and files in the current location
  • File sizes, permissions, and modification dates
  • Breadcrumb navigation showing your current path
  • Quick actions toolbar
1

Browse Directories

Click on any directory name to navigate into it. The path updates in the breadcrumb bar above.
2

Navigate Up

Click the ↑ Parent Directory button or click a folder in the breadcrumb to jump up.
3

Edit Files

Click on a file name to open it in the Monaco code editor.

File Actions

The toolbar provides quick actions:

New File

Create a new text file in the current directory. Opens a modal to enter the file name.

New Folder

Create a new directory. Opens a modal to enter the folder name.

Upload

Upload files from your computer. Opens your system’s file picker dialog.

Pull File

Download a file from a remote URL directly to your server. Useful for downloading plugins, mods, or worlds.

File Operations

Creating Files and Folders

  1. Click New File in the toolbar
  2. Enter the file name (e.g., config.yml)
  3. Click Create File
  4. The file is created and opened in the editor
API endpoint:
POST /api/client/servers/{server}/files/write

Uploading Files

1

Select Upload

Click the Upload button in the toolbar to open your system’s file picker.
2

Choose Files

Select one or more files to upload. Large files may take time depending on your connection.
3

Upload Progress

A blue progress indicator shows at the top of the screen during upload.
API endpoint:
POST /api/client/servers/{server}/files/upload
Upload size limits depend on your XyraPanel configuration. Very large files (>100 MB) should be uploaded via SFTP instead.

Pull from URL

Download files directly from remote URLs:
1

Click Pull File

Open the Pull File modal from the toolbar.
2

Enter URL

Paste the direct download URL (e.g., https://example.com/plugin.jar).The file will be downloaded to your current directory.
3

Wait for Download

The server downloads the file in the background. A success notification appears when complete.
API endpoint:
POST /api/client/servers/{server}/files/pull
{
  "url": "https://cdn.example.com/mod.jar"
}

Bulk Operations

Select multiple files or folders to perform bulk actions:

Selection

  • Click the checkbox next to any file/folder to select it
  • Click the checkbox in the header to select all items
  • Selected items are highlighted

Bulk Actions Bar

When items are selected, an actions bar appears:

Copy

Copy selected items to the same directory with _copy suffix.

Move

Move selected items to a different directory. Opens a modal to specify destination.

Archive

Compress selected files into a .tar.gz archive.

Delete

Delete all selected files and folders. Requires confirmation.

Copy Files

API endpoint:
POST /api/client/servers/{server}/files/copy
{
  "location": "/plugins/MyPlugin.jar"
}
Creates /plugins/MyPlugin_copy.jar

Move Files

  1. Select files/folders
  2. Click Move in the bulk actions bar
  3. Enter the destination path (e.g., /backups/)
  4. Click Move Items
API endpoint:
PUT /api/client/servers/{server}/files/rename

Archive Files

1

Select Items

Check the boxes for files/folders you want to compress.
2

Click Archive

The bulk actions bar shows Archive when eligible items are selected.
3

Wait for Compression

A .tar.gz archive is created in the current directory containing all selected items.
API endpoint:
POST /api/client/servers/{server}/files/compress

Extract Archives

To extract a compressed file:
  1. Select a .tar.gz, .zip, or similar archive
  2. Click Unarchive in the bulk actions bar
  3. Files are extracted to the current directory
API endpoint:
POST /api/client/servers/{server}/files/decompress

Monaco Code Editor

Click on any text file to open it in the Monaco editor (the same editor that powers VS Code).

Editor Features

Automatic language detection based on file extension:
  • .yml, .yaml → YAML
  • .json → JSON
  • .js → JavaScript
  • .ts → TypeScript
  • .conf, .properties, .ini → INI/Config
  • .md → Markdown
  • .log, .txt → Plain text
  • Auto-completion for JSON, JavaScript, TypeScript
  • Bracket matching and auto-closing
  • Real-time syntax validation
  • Ctrl+S (Cmd+S on Mac): Save file
  • Ctrl+F: Find in file
  • Ctrl+H: Find and replace
  • Ctrl+Z: Undo
  • Ctrl+Shift+Z: Redo

Editing Files

1

Click File

Click on a file name in the file browser to open it.
2

Make Changes

Edit the file content in the Monaco editor. The editor shows your changes in real-time.
3

Save Changes

Click the Save Changes button or press Ctrl+S.The button is disabled until you make changes.
4

Back to Files

Click ← Back to Files to return to the file browser.
API endpoint:
POST /api/client/servers/{server}/files/write
{
  "file": "/server.properties",
  "content": "max-players=20\ndifficulty=hard\n"
}

Reset Changes

If you make changes you don’t want to save:
  1. Click Reset Changes
  2. The file reverts to its saved state
  3. This discards all unsaved edits

Individual File Actions

Right-click on any file or use the three-dot menu to access:
Change the file or folder name:
  1. Click Rename
  2. Enter the new name
  3. Click Rename to confirm
API: PUT /api/client/servers/{server}/files/rename

File List API

List files in a directory:
GET /api/client/servers/{server}/files/list?directory=/plugins
{
  "data": {
    "directory": "/plugins",
    "entries": [
      {
        "name": "MyPlugin.jar",
        "path": "/plugins/MyPlugin.jar",
        "size": 1048576,
        "mode": "0644",
        "modeBits": 420,
        "created": "2024-01-15T10:30:00Z",
        "modified": "2024-01-15T14:22:00Z",
        "isDirectory": false,
        "isFile": true,
        "isSymlink": false
      },
      {
        "name": "PluginConfig",
        "path": "/plugins/PluginConfig",
        "size": 4096,
        "mode": "0755",
        "isDirectory": true,
        "isFile": false
      }
    ]
  }
}

Permissions

File management requires specific permissions:
  • Read files: server.files.read
  • Write/edit files: server.files.write
  • Delete files: server.files.delete
  • Download files: server.files.read
  • Upload files: server.files.write
Server owners and admins have all permissions by default.

Best Practices

Backup Before Editing

Create a backup before modifying important config files. Use the copy function or the Backups tab.

Test Changes

After editing configs, restart your server to test changes work correctly.

Use Proper Syntax

The Monaco editor validates syntax, but double-check YAML indentation and JSON structure.

Organize Files

Keep files organized in folders. Use the archive feature to backup old configs.

Troubleshooting

  • Check you have server.files.write permission
  • Ensure the server is not running out of disk space
  • Verify the file is not locked by another process
  • Check file size limits (may need SFTP for large files)
  • Ensure you have server.files.write permission
  • Verify you have enough disk space allocated
  • Only .tar.gz and .zip files can be extracted
  • The file must be a valid archive (not corrupted)
  • Check you have enough disk space for the extracted files

Next Steps

Schedules

Automate file backups and cleanup tasks

Backups

Create full server backups including all files

Build docs developers (and LLMs) love