Your app's files
The Files tab of a bot or app shows what it keeps under /data: the files your code writes, the code we checked out from your repository, and the folders the runtime manages. You can upload, download, edit, rename and delete your app’s own files there, extract a zip and bring files back from a backup, without a push to GitHub. You can also reach the same files from an SFTP app on your computer.
Files comes with every paid plan. On the free plan the tab is there but locked, with the way to a paid plan. See Plans and limits.
What the tab shows
Each folder is split in three:
| Part | What is in it | What you can do |
|---|---|---|
| Created by your app | Files your code wrote, and files you uploaded. | Everything: open, edit, upload over, rename and delete. |
| From your repository | The files of the commit that is deployed. | Read and download. Change them in your repository and push; the deploy brings them in. |
| Managed by FadeHost | Dependencies and caches, such as node_modules, venv and .cache. | Read and download. Hidden until you choose Show under the table. |
A lock beside a name means the file is read only. The line under the table shows how much of your plan’s disk the app uses, and opens Plan and usage when you select it.
Upload, download and edit
- Upload sends files from your computer into the folder you are looking at. You can also drop files, or a whole folder, on the table. A file with the same name is replaced.
- Download saves one file. Download as zip saves a folder, or every file and folder you selected, as one zip.
- Select a text file up to 1 MB to open it in the editor, and Save (or press Ctrl or Cmd and S) to write it back. A file from your repository opens read only, with a link to edit it on GitHub.
- New file, New folder, Rename and Delete do what they say, on your app’s own files.
Most apps read their files when they start. After you change something, the panel offers Restart so the app picks it up.
Extract a zip
Upload the zip, then choose Extract here in its menu, or right-click it (on a phone, press and hold). Its files and folders go into the folder the zip is in.
- A file that is already there stays as it is, unless you tick Replace files that are already there. Files from your repository are never replaced.
- Files that would land in a folder FadeHost manages, and links, are left out.
- A zip can hold up to 20,000 files and must fit in the disk your app has free. A zip with a password, or one made with an unusual kind of compression, cannot be extracted here: unpack it on your computer and upload the files.
While it works, the panel shows how far it got, and Cancel stops it. When it is done, it says how many files came out and what was skipped, and why.
Restore from a backup
When your app has backups, you can bring back earlier versions of its files without restoring the whole app. Choose Restore from a backup in the menu above the table, or Restore an earlier version in a file’s or a folder’s menu. Pick a backup, open the folder you need, tick what to bring back, and choose where it goes:
- Put them back where they were: the backup’s copies replace the files there now.
- Into a new folder: they go into a new folder named for the backup’s day, such as
restored-2026-10-25, and nothing is replaced.
Files added since the backup stay as they are. Files from your repository and links are left out, and so are databases while the app runs. While it works, the panel shows how far it got, and Cancel stops it.
Backups are switched on in the Backups tab, which is also where you put the whole app back as it was. See Backups.
Connect with SFTP
You can reach the same files from an SFTP app on your computer, such as FileZilla, WinSCP or Cyberduck. Choose SFTP above the table to see your login:
| Field | What to enter |
|---|---|
| Host | The address shown, such as sftp://nova.fadehost.net. |
| Port | 2022 |
| Username | Your own username for this app, such as app-k3x9q2m7ra. |
| Password | Choose View to see it. Reset makes a new one. |
In FileZilla, type them into the bar at the top and choose Quickconnect, or add them as a site in the Site Manager with SFTP as the protocol. In WinSCP and Cyberduck, choose SFTP and type the host without sftp://.
- The login is yours alone: everyone on the team gets their own, and someone who leaves the team can no longer connect.
- The rules of the tab apply: files from your repository stay read only,
.gitis never shown, a database cannot be replaced while the app runs, and what you upload counts against your plan’s disk. - An SFTP app that sits idle for 15 minutes is disconnected, and logs in again when you do something. After a reset, SFTP apps that are connected need the new password.
Changes made over SFTP show in the app’s activity, and the next start says what changed, as it does for the tab.
Databases and a running app
A database file (.db, .sqlite and the like) cannot be replaced or deleted while the app runs, because changing one under a running app breaks it. Stop the app first; the tab says so when the folder holds one. A download asks first while the app runs: stop it for a clean copy.
What is never shown
Your repository’s .git folder, and the deploy key we keep for a private repository, are never shown and cannot be changed. The folder your code is checked out in, /data/app, cannot be deleted or renamed.
On a team
Team members with full access use the tab like the owner, each with their own SFTP login. Members with read access do not see it. Team sharing has the access levels.
Need help?
Open a ticket from the panel, or reply to any of our emails, and we will take a look.