Files, FTP, Web Disk and terminal
Account files are reachable four ways: the File Manager in the panel, FTP/FTPS (Pure-FTPd), the WebDAV-based Web Disk, and SSH or the in-browser Terminal. All of them are confined to the account home directory; shell access is granted per package and defaults to a jailed shell.
On this page
#Access methods by installation type
| Feature | Server installation | Docker / Railway |
|---|---|---|
| File Manager | Yes | Yes |
| FTP Accounts (Pure-FTPd) | Yes (unless installed with --without-ftp) | No |
| Web Disk (WebDAV) | Port 2078 and /webdisk/ on the panel address | Only /webdisk/ on the panel address |
| SSH and SFTP | Yes | No; use the Terminal |
| Jailed shell | Yes (jailshell component) | No; accounts get a normal shell |
| Terminal | Yes | Yes |
Everything on this page is included in the Community edition, except switching the FTP server to ProFTPD (Pro). The Community edition allows up to 3 hosting accounts; see pricing for the editions.
#File Manager
In the user panel, Files → File Manager. All paths are relative to the account home directory, and nothing outside it can be reached.
- Browse, search, create files and folders, rename, copy, move and change permissions (chmod); up to 1000 items can be selected at once.
- Upload, download and image preview.
- Code editor for files up to 5 MB.
- Compress to
ziportar.gz. Extract.zip,.tar,.tar.gz,.tgz,.tar.bz2and.tar.xz. - Deleted items first go to the
.trashfolder in the home directory, where they can be restored or permanently emptied.
Disk Usage, in the same menu group, shows which folders and files take up space in the home directory.
#FTP accounts
The FTP server is Pure-FTPd on port 21. It is installed by default on a server installation; if the installer ran with --without-ftp, it can be added later under Server Admin → Components. Docker and Railway installations have no FTP server; use the File Manager, Web Disk or Git deployment there.
In the user panel, Files → FTP Accounts:
- Main account login: the account username and password; by default the session is locked into the home directory.
- Additional FTP accounts: named
name@primary-domain, always locked into the chosen directory, with an optional quota in MB. The number of accounts is capped by the package FTP account limit. - The same page lists connected sessions, the account transfer log and, when allowed, the anonymous FTP setting.
Anonymous FTP is only available to accounts with a dedicated IP address: ~/public_ftp is served read-only, and an optional ~/public_ftp/incoming directory accepts uploads only. It is disabled server-wide by default.
#FTP server settings
Settings on Server Admin → FTP Server are validated before they are written; the server is restarted, and if the health check fails the previous configuration is restored.
| Setting | Default |
|---|---|
| TLS mode (off / optional / required) | Optional (FTPES) |
| Certificate | The hostname's Let's Encrypt certificate, otherwise self-signed |
| Passive port range | 30000–30100 (firewall rules managed by the panel) |
| Public IPv4 address for NAT | Empty |
| Max clients / connections per IP | 50 / 8 |
| Idle timeout | 15 minutes |
| Lock main account logins into home | On |
| Dotfiles (such as .htaccess) | Allowed; can be made read-only or fully denied |
| Bandwidth limits | 0 (unlimited) |
Connected sessions can be viewed and terminated from this page. With the Pro edition the FTP server can be switched to ProFTPD: the same virtual users and settings are used, and the switch runs as a health-checked job that can be rolled back.
#Web Disk (WebDAV)
Web Disk lets users mount account files as a network drive on Windows, macOS, Linux or mobile devices. In the user panel, Files → Web Disk shows the connection addresses and client setup helpers.
- On a server installation the dedicated TLS port is 2078; plain port 2077 redirects to it or can be turned off. The
/webdisk/path on the panel address works as well. On Docker and Railway only the panel address is available. - Authentication is Basic or Digest and is only accepted over TLS. Failed attempts count towards the panel's login limiter, and a blocked IP cannot reach the panel either.
- The main account login opens the whole home directory; if the account has two-factor authentication enabled, Web Disk login with the main account is refused.
- Additional Web Disk users are named
name@domain, locked into one directory, and either read-only or read-write.
On Server Admin → Web Disk you turn the service on or off and set the ports, the panel path, whether Digest is offered, the single-file upload limit (default 0: disk quota only) and the per-account user limit (default 50); active locks are listed there too.
#SSH access and keys
SSH is only offered on a server installation. In the user panel, Security → SSH Access:
- Add public keys:
ssh-ed25519,ssh-rsa(at least 2048 bits),ecdsa-sha2-*and hardware-backedsk-types. Keys are listed with their SHA256 fingerprint. - Generate a new ed25519 key pair on the server: the private key is shown once and never stored by the panel; it can be protected with an optional passphrase.
- The page also shows the account's shell type and what the jail provides.
#Shell isolation
The shell type is set per account or per package: none, jailed or full. When a package grants shell access without choosing a type, the jailed shell is used. The settings live on Server Admin → Shell Isolation (administrators and resellers).
- The jailed shell runs under bubblewrap: other accounts, panel data and system configuration are not visible, and the account gets its own
/tmp(512 MB by default). - On a server installation, if the jail component is not installed yet, accounts that should get the jailed shell cannot log in by default; the administrator can allow a normal, unisolated shell instead. Docker and Railway cannot use the jail.
- With the compiler restriction on, tools such as gcc and make can only be run by accounts that are explicitly allowed.
- If sshd's SFTP subsystem is
internal-sftp, SFTP sessions bypass the shell wrapper; the panel flags this on the SSH Access page.
For how the jail keeps accounts apart, see Account isolation.
#Terminal
In the user panel, Advanced → Terminal opens a shell in the browser as the account user. It requires the terminal feature in the package plus shell access; accounts with the jailed shell get the same jail as over SSH. System → Terminal in Server Admin is a root shell that only the server administrator can open. Each user can have at most 5 terminals open at once, and sessions idle for 30 minutes are closed.
#File safety
File Manager operations are anchored to open file handles: even if a directory is swapped for a symbolic link mid-operation, the panel never leaves the home directory. Extraction blocks paths that escape the target (zip-slip) and compression bombs. Server Admin → File Safety shows the log of blocked attempts and the extraction limits:
| Limit | Default |
|---|---|
| Data extracted from one archive | 10240 MB (or the remaining disk quota, if lower) |
| Maximum entries | 100000 |
| Maximum compression ratio | 2000 |
On a server installation the Kernel link protections component (on by default) permanently enables the fs.protected_symlinks, protected_hardlinks, protected_fifos and protected_regular kernel settings. For separation between accounts, see account isolation.
Something missing or wrong on this page? Let us know.