Using the panel
Files & FTP
Browse and edit everything under the home path from the browser, and give someone FTP access to exactly one folder when they need it.
File manager
Browse everything under the home path (default /home), including every project. Jump straight to a project's folder with the Files button on its page.
- Click a folder to open it; click a file to view or edit it (up to 2 MB, text only; others can be downloaded). Ctrl+S saves.
- Upload with the button or by dragging files onto the list (up to 256 MB per file).
- Create files and folders, rename, download and delete (folders are deleted recursively).
- Select rows with their checkboxes, Shift-click to select a range, or tick the box in the header to select everything in the folder. With a selection you can Download zip, Move or Delete it all at once.
- Download a folder as a zip with the zip button on its row. Zips are built while they download, so even big folders start straight away.
.sshfolders and symlinks that point outside the home path are left out. - Extract a zip by clicking it (or its extract button): into a new folder named after the zip (
site.zip→site/), or straight into the folder it's in, either skipping or overwriting files that already exist. A zip containing paths that try to escape its folder is refused, symlinks inside zips are skipped, and extracted files get the folder's owner. - Move files and folders with the move button (pick the destination folder in the dialog) or by dragging them onto a folder, or onto
..to move them up a level. If anything with the same name already exists in the destination, nothing is moved. - New files take the owner of their folder, so files created in a project stay owned by the deploy user.
For safety you can't leave the home path (symlinks are resolved and checked), .ssh folders are hidden, and top-level home folders can't be deleted or moved. Deleting, renaming or moving a symlink acts on the link itself, never on what it points to.
FTP accounts
Give someone (a designer, a client) FTP access to one folder. Each account is a pure-ftpd virtual user. It can't log in over SSH, it's jailed to its folder (it can't see anything above it), and the files it uploads are owned by the deploy user, the same as the rest of your project.
First time: install the FTP server
FTP Accounts → Install FTP server installs and configures pure-ftpd, with a live log. It requires TLS by default (self-signed certificate) and opens port 21 plus passive ports 40000–40100 in UFW. It also adds a fail2ban jail that bans repeated FTP login failures. If you use a DigitalOcean Cloud Firewall, open the same ports there. You can also install it at provisioning time with provision.sh --ftp.
Creating an account
- New FTP account
From the FTP page, Create new → FTP account, or Add FTP account on a project's overview (pre-fills the username and folder).
- Pick the folder
A path under the home directory, e.g.
deploy/my-projectordeploy/my-project/public/uploads. The home directory itself and user home folders (deploy) are refused, because they contain SSH keys. - Optional quota and description
Limit the account to a number of MB, and note who it's for.
- Share the details
Host, port, username and the generated password are shown with copy buttons. In FileZilla choose Require explicit FTP over TLS and passive mode, and accept the self-signed certificate on first connect.
Managing accounts
- Reveal the password, reset it (the old one stops working immediately), edit the folder, quota or description, or open the folder in the file manager.
- Disable removes the login and disconnects live sessions but keeps the account, so you can re-enable it later. Delete removes it. Files are never touched.
- Connected now lists live sessions (account, IP, what they're doing). Transfers are logged under Logs → FTP, which also has the restart button.
- Require TLS can be switched off for old clients that can't do FTPS. Passwords then travel unencrypted, so only do this if you must.
- Deleting a project also deletes its FTP accounts.