# File Manager

> Browse, upload, edit, compress, extract and set permissions on a hosting account's files in the browser, with search and a 30-day trash for deleted files.

Source: https://zopanel.net/docs/file-manager  
Updated: 2026-10-09

The **File Manager** works on a hosting account's home directory from the browser: upload a website, edit a configuration file, unpack an archive or fix permissions without an SFTP client. Every operation runs as the hosting account itself, so files keep the right owner and nothing outside the account's home can be reached.

## Who can use it

| You are | What you can open |
| --- | --- |
| Customer | Your own account. |
| Reseller | Your own account and your customers' accounts. |
| Administrator | Any hosting account. |
| Website member | Not available: members work on shared websites without access to the owner's files. See [Website members](/docs/site-members). |

Administrators and resellers choose the account with the account picker at the top right. A package can leave out the **File manager** feature; its customers then get "this feature is not included in your hosting package" (see [Packages and limits](/docs/packages-limits)). While an account is suspended, its files can be browsed and downloaded, but changes are refused with "account is suspended".

## Open the File Manager

- Click **File Manager** in the menu. It opens the account's `domains` folder.
- Or open a website and click **File Manager** at the top: it opens that website's document root, for example `domains/example.com/public_html`.

The breadcrumb at the top shows the current folder. The house icon goes to the top of the home directory; **..** goes up one level.

### What is in the home directory

| Folder | Contents |
| --- | --- |
| `domains/<domain>/public_html` | Website files (the document root may be a subfolder, such as `public` for Laravel). |
| `backups/` | Account backups and database exports (`backups/db`). |
| `logs/` | Log files written for the account, such as PHP error logs. |
| `tmp/` | Temporary files of the account. |
| `.home/` | Private folder for settings and the trash. |

The top level of the home directory belongs to the system: you cannot create or delete entries directly in it, only inside its folders.

## Upload files

1. Open the destination folder.
2. Click **Upload** to choose files, **Upload folder** to send a whole folder with its subfolders, or drag files and folders onto the page.

| Limit | Value |
| --- | --- |
| Size of one upload request | 2 GB. The browser sends files in batches of up to 100 files or about 256 MB, so a single file can be up to 2 GB. |
| Disk space | An upload that would exceed the package's disk space is refused. |
| Server free space | Uploads are refused when the server would have less than 1 GB free. |
| Parallel uploads | 2 at a time per account. |
| Folder uploads | Up to 32 folder levels. |

A file with the same name is overwritten. Uploaded files get permissions 640.

**Note:** for larger files or whole sites, upload one `.zip` or `.tar.gz` and extract it on the server, or use [SFTP](/docs/ftp-sftp) or rsync over [SSH](/docs/ssh-terminal).

## Create, edit and view files

- **New folder** and **New file** create an entry in the current folder (a new file is suggested as `index.php`).
- Click a text file (PHP, HTML, CSS, JavaScript, JSON, `.env`, `.htaccess`, YAML, SQL, logs and similar) to open it in the code editor. Click **Save** or press Ctrl+S (⌘S on macOS). If you close the editor with unsaved changes, the panel asks **Discard unsaved changes?** first.
- Files larger than 10 MB cannot be opened in the editor: download them instead.
- Click an image to preview it (up to 25 MB). Other files are downloaded when you click them.
- Saving keeps the file's existing permissions.

## Manage files

Each row's menu (⋯) has:

| Action | What it does |
| --- | --- |
| **Edit** / **View** | Opens a text file in the editor or previews an image. |
| **Download** | Downloads the file. Folders cannot be downloaded: compress them first. |
| **Extract** | Unpacks an archive (shown for archives). |
| **Rename** | Renames the entry in the same folder. |
| **Duplicate** | Copies the file or folder under a new name, keeping permissions. |
| **Permissions (chmod)** | Opens the permissions dialog. |
| **Delete** | Moves the entry to the trash. |

Select several entries with the checkboxes to **Compress**, change **Permissions**, **Move** or **Delete** them together. **Move** asks for the destination as a path from the home directory, for example `domains/example.com/public_html`. The destination folder must exist, and an entry of the same name there stops the move.

## Archives

**Compress** creates an archive of the selected entries in the current folder. The name defaults to `archive.zip`; a name ending in `.tar.gz` or `.tgz` creates a gzip tarball instead.

**Extract** unpacks the archive into the folder that contains it:

| Format | Behavior |
| --- | --- |
| `.zip` | Extracted, existing files with the same name are overwritten. |
| `.tar`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.tar.xz` | Extracted; files belong to the account. |
| `.gz` (single file) | Decompressed next to the original, which is kept. |

Other formats (for example `.rar` or `.7z`) give "unsupported archive format".

## Permissions

Websites' PHP runs as the hosting account, so the owner's permissions are what your site uses. The web server reads files through the group. The recommended permissions are **750 for folders and 640 for files**.

- **Permissions (chmod)** shows a grid for **Owner**, **Group (web server)** and **Others** with **Read**, **Write** and **Execute / open**, and the numeric mode.
- On a folder, tick **Also apply to everything inside** to set separate modes for **Folders** and **Files** below it. **Keep scripts that were executable executable** is on by default.
- **Fix permissions** in the toolbar sets 750/640 on the current folder and everything below it, keeping executable scripts executable.

Write permission for others (like 777) is never needed here. The dialog warns you if you choose it: installers that ask for 777 work with 750/640. Symbolic links are never followed when changing permissions.

## Search

Click **Search** to find entries below the current folder whose name contains the text (at least 2 characters, case-insensitive). Tick **Also search inside files** to search text files up to 2 MB as well. Up to 500 results are shown; click one to open its folder or the file. The trash is not searched.

Folders with more than 5,000 entries show only the first 5,000. Use **Search** to reach the others.

## Trash and restore

**Delete** outside the trash moves files and folders to the trash, kept in `.home/trash`:

1. Click **Trash** in the toolbar. Each item shows its original path, size and deletion date.
2. Select items and click **Restore** to put them back where they were. If something with the same name exists there, the restore stops with "… already exists: rename or delete it first".
3. To free space, select items and click **Delete … for good**, or click **Empty trash** with nothing selected.

Items stay in the trash for 30 days and still count toward the account's disk space. Items older than 30 days are deleted automatically once a day (and whenever the trash is opened). Deleting entries from inside the trash folder removes them permanently.

## Troubleshooting

| Message | What to do |
| --- | --- |
| "not enough disk quota for this upload" | The account's disk space is full. Empty the trash, delete old backups or ask for a larger package. |
| "the server is low on disk space" | The server has less than 1 GB free. The administrator must free space. |
| "other uploads are still running; wait for them to finish" | Two uploads are already running for the account. Wait for them to finish, then try again. |
| "file too large to open in the editor (max 10 MB)" | Download the file, or edit it over SFTP or in the [terminal](/docs/ssh-terminal). |
| "cannot download a directory, compress it first" | Select the folder, click **Compress**, then download the archive. |
| "cannot delete …" | Entries at the top of the home directory (such as `domains`) cannot be deleted. |
| "… cannot go to the trash (…): delete it permanently" | The entry could not be moved into the trash. Remove it permanently over SFTP or in the [terminal](/docs/ssh-terminal). |
| "path escapes home directory" | A symbolic link points outside the account. The File Manager does not follow it. |
| "target already exists" / "… already exists in the destination" | Choose another name or move the existing entry first. |
| Website shows "403 Forbidden" or "permission denied" after an upload | Click **Fix permissions** in the website's folder. |

## Related

- [FTP and SFTP](/docs/ftp-sftp)
- [SSH access and terminal](/docs/ssh-terminal)
- [Your first website](/docs/first-website)
- [Install WordPress](/docs/wordpress-install)
- [Backups](/docs/backups)
- [Packages and limits](/docs/packages-limits)
