This guide covers all file access features in Panelica --- creating FTP accounts, managing SSH users, using the built-in File Manager, and the web-based Terminal.
FTP accounts allow file transfer access to domain directories via FTP/SFTP clients like FileZilla, WinSCP, or Cyberduck.
Accessing FTP Management:
Go to Domains > click Edit > select the FTP tab.
---
Step 1: Click Add FTP Account.
Step 2: Fill in the form:
| Field | Required | Description |
|---|---|---|
| Username | Yes | FTP login username (domain prefix added automatically) |
| Password | Yes | FTP password (strength meter shown) |
| Home Directory | Yes | The directory this account can access |
| Quota (MB) | No | Disk space limit for this account (0 = unlimited) |
Step 3: Click Create. The FTP account is ready to use immediately.
Connection Details:
- Server: Your server's IP or hostname
- Port: 21 (FTP) or 22 (SFTP)
- Protocol: FTP with TLS recommended, SFTP for SSH-based transfer
- Username: The username you created
---
The FTP accounts list shows:
- Username
- Home directory path
- Quota usage (used / limit)
- Status badge (Active / Suspended)
- Actions: Edit, Change Password, Suspend/Unsuspend, Delete
Suspending an Account: Temporarily disables FTP access without deleting the account. The user cannot connect until unsuspended.
Changing Password: Updates the FTP password. The user must use the new password for their next connection.
---
SSH users have shell access to the server, allowing command-line operations, file management, and running scripts.
Accessing SSH User Management:
Go to Domains > click Edit > select the SSH tab, or go to Security > SSH Access.
---
Step 1: Click Add SSH User.
Step 2: Fill in the form:
| Field | Required | Description |
|---|---|---|
| Username | Yes | SSH login username |
| Password | Yes | SSH password |
| Shell Type | Yes | SFTP Only (no shell) or Full Shell (bash with chroot) |
| Home Directory | Yes | The user's home directory |
Step 3: Click Create.
Shell Types:
- SFTP Only (sshjailed) --- User can only transfer files via SFTP. No shell access, no command execution. Safest option for file uploads.
- Full Shell (sshfull) --- User gets a bash shell inside a chroot jail. Can run commands, but isolated from the rest of the system.
---
Go to Security > SSH Access > Keys tab.
SSH keys provide passwordless authentication (more secure than passwords).
Adding an SSH Key:
- Click Add SSH Key
- Enter a name for the key
- Paste the public key (starts with
ssh-rsa,ssh-ed25519, etc.) - Select which user this key belongs to
- Click Add
Key Details Shown:
- Key name
- Key type (RSA, Ed25519, ECDSA)
- Fingerprint
- Assigned user
- Added date
- Last used date
- Status (Active / Disabled)
---
Go to Security > SSH Access > Configuration tab.
ROOT users can configure the SSH daemon directly:
- View/Edit sshd_config --- Full configuration editor
- Test Config --- Validates syntax before applying
- Restart SSH --- Applies changes by restarting the daemon
- Backup/Restore --- Maintain configuration backups
Warning: Always test your configuration before restarting SSH. A bad configuration can lock you out of the server.
---
The built-in File Manager provides a web-based interface for managing files without needing an FTP client or SSH access.
Accessing File Manager:
Go to Domains > click Edit > select the Files tab, or go to Files in the main navigation.
---
Navigation:
- Breadcrumb path bar for quick navigation
- Directory tree in the left panel
- File listing with icons, sizes, and modification dates
- Sort by name, size, date, or type
- Show/hide hidden files (dotfiles)
File Operations:
| Operation | Description |
|---|---|
| Create File | Create a new empty file or file with content |
| Create Folder | Create a new directory |
| Upload | Upload files from your computer (drag & drop supported) |
| Download | Download files to your computer |
| Edit | Open files in the built-in code editor (CodeMirror with syntax highlighting) |
| Rename | Change file or folder name |
| Copy | Copy files/folders to another location |
| Move | Move files/folders to another location |
| Delete | Move to trash (or permanent delete) |
| Compress | Create archives (zip, tar.gz) |
| Extract | Extract archives to a destination |
Code Editor:
- Syntax highlighting for PHP, HTML, CSS, JavaScript, Python, and more
- Line numbers
- Search and replace
- Auto-indentation
- File size displayed
---
Deleted files go to the trash instead of being permanently removed.
Trash Features:
- View trashed items with original path, deletion date, and size
- Restore individual items back to their original location
- Permanently delete individual items
- Empty entire trash at once
- Trash statistics (total items, total size)
Files deleted with Permanent Delete bypass the trash and cannot be recovered.
---
Compressing Files:
- Select one or more files/folders
- Click Compress
- Choose the archive format (zip, tar.gz)
- Enter the archive filename
- Click Create Archive
Extracting Archives:
- Click on an archive file
- Click Extract
- Choose the destination directory
- Optionally remove the archive after extraction
- Click Extract
Archive Info: View contents and size of an archive before extracting.
---
Panelica includes a full web-based terminal powered by xterm.js.
Accessing the Terminal:
Click Terminal in the main navigation, or use the terminal icon in the header.
Features:
- Multi-tab support --- Open multiple terminal sessions simultaneously
- Local terminals --- Direct server access (runs as the user's system account)
- Remote SSH terminals --- Connect to other servers via saved SSH connections
- Session persistence --- Terminal sessions survive page refreshes (tmux-backed)
- Popup window --- Open terminal in a separate browser window
- Resizable --- Adjusts columns/rows to window size
- Full color support, copy/paste, scrollback buffer
SSH Connections:
Save frequently used SSH connections:
- Host, port, username
- Authentication: password or SSH key (with optional passphrase)
- One-click connect from the terminal tab bar
Session Model:
Each terminal session stores:
- Session type (local or remote)
- Title (customizable)
- Current directory
- Window state (position, size, fullscreen)
- Tab order
- Activity timestamp
---
| Feature | ROOT | ADMIN | RESELLER | USER |
|---|---|---|---|---|
| FTP Accounts | All | Own users' domains | Own users' domains | Own domains |
| SSH Users | All | Own users | Own users | Own only |
| File Manager | All users | Own users | Own users | Own files |
| Terminal | Full access | Own context | Own context | Own context |
| SSHD Config | Full | No | No | No |
---
Service plans control:
- max_ftp_accounts --- Maximum FTP accounts per user (-1 = unlimited)
- max_ssh_users --- Maximum SSH users per user
- disk_space_mb --- Total disk space quota (enforced across FTP, files, etc.)
---
All file access is isolated:
- Cgroup limits --- CPU, memory, I/O, and process limits per user
- Chroot jail --- SSH users are confined to their home directory
- Unix permissions --- Files owned by the domain's system user (UID/GID isolation)
- FTP quota --- Enforced per-account disk limits
- File Manager RBAC --- Users can only access their own files
---
Problem: FTP connection refused
- Check that ProFTPD service is running (Services page)
- Verify port 21 is open in Firewall Rules
- Check if the account is suspended
- Try SFTP (port 22) as an alternative
Problem: SSH "Permission denied"
- Verify the username and password
- Check if the SSH user is suspended
- Ensure SSH key is correct (if using key auth)
- Check shell type --- SFTP-only users cannot get a shell
Problem: File Manager shows "Access denied"
- You can only access files belonging to your user account
- Check file/directory permissions (should be owned by the system user)
- ROOT can access any user's files by selecting the user first
Problem: Terminal not connecting
- Check WebSocket connectivity (some proxies block WebSocket)
- Ensure the backend service is running
- Try refreshing the page
- For remote SSH: verify the host, port, and credentials
---
- Use SFTP instead of FTP --- SFTP encrypts the connection; plain FTP sends passwords in clear text
- Set FTP quotas --- Prevent users from filling up disk space
- Use SSH keys over passwords --- More secure and convenient
- Choose SFTP-only shell for upload accounts --- Don't give shell access unless needed
- Use the code editor for quick edits --- No need to download/upload for small changes
- Keep the trash clean --- Empty trash periodically to reclaim disk space
- Save SSH connections --- Use saved connections for frequently accessed servers