Access

SFTP and SSH credentials for a single application, how they are scoped to its directory, and how to rotate them.

5 min read10 sections

Everything about reaching an application: its URLs, the accounts that can log in over SSH and SFTP, its database credentials, importing a dump, and file permissions.

Getting here: Servers → a server → Applications → an application → Access

1. The sections, and who can see them

Each section has its own permission, so a team member can be given one without the others.

SectionView permissionEdit permission
Application OverviewAccess_Application_OverviewAccess_Application_Overview_Edit
Master User DetailsAccess_Master_User_DetailsAccess_Master_User_Details_Edit
Additional SSH / SFTP usersAccess_Additional_SSH_SFTPAdditional_SSH_Add_New_User
Database CredentialsAccess_Database_CredentialsAccess_Database_Credentials_Edit

The split is deliberate: a developer can be given SFTP access without being able to read the database password, and someone can be allowed to see credentials without being able to change them.

2. Application URL

The addresses the application answers on:

FieldWhat it is
Application URLThe main address
Frontend URLWhere the user-facing part is served
Backend API URLThe API, when the application separates them

Scheme is selectable — http:// or https://. Frontend and backend URLs matter for split applications (a React frontend calling a separate API): they are what the application is configured to call itself, so getting them wrong produces a site that loads but cannot talk to its own API.

3. Master User Details

The application's primary SSH and SFTP account — username, password, and the host and port to connect to.

This is the account that owns the application's files. Use it for deployment and administration; create separate users below for anyone who only needs to upload.

4. Additional SSH / SFTP users

Extra accounts scoped to this application.

Add New User takes:

  • UsernameEnter Username, validated
  • PasswordEnter Password

Edit changes an existing user; Delete User removes one, with confirmation. Both report progress (Creating User…, Deleting User…) and failures rather than going quiet.

Why use these rather than sharing the master account: each person gets their own credentials, so revoking one does not disturb anyone else, and file changes are attributable. Sharing the master password means rotating it for everybody whenever one person leaves.

5. SSH keys and the terminal

Keys authorised for this application's users, added two ways:

Generate Key — the panel creates a keypair. You give it a Key name (Enter Key name (e.g. my-ssh-key)), and it generates and installs it.

Add Public KeyPaste Your Public Key Here for a key you already have. This is the better option when you have one: your private key never reaches the panel.

Validation is explicit — Please enter a key name first, Please enter your public key, Please fix the key name errors — so a malformed key is caught before it is installed rather than after it fails to work.

Launch SSH Terminal opens a shell in the browser, scoped to this application. Failed to start SSH session generally means the server is unreachable rather than that credentials are wrong.

6. Database Credentials

The panel of most daily use.

What it shows

FieldNotes
Database NameThe database bound to this application
Name (user)The database user
PasswordMasked, with copy
Connection URICopy connection URI puts the full string on your clipboard

Edit changes the credentials, behind Access_Database_Credentials_Edit.

Application credentials are not available means none are bound yet — see changing the database below.

No database password available to copy means the record exists but the password was not stored, which happens with databases attached outside the panel.

Launching a database manager

Launch Database Manager opens a web client, installed on demand:

EngineClient
MySQL / MariaDBphpPgAdmin
PostgreSQLphpPgAdmin

The panel installs it the first time (Loading phpMyAdmin…, Failed to check/install phpPgAdmin) and opens it in a new tab. MongoDB has no web client here.

Changing which database the application uses

Three options:

  • Choose Existing Database — pick one already on the server. It lists what is there, with Search databases by name or username… and Refresh databases. No databases found on this server or No databases match your search when there is nothing to pick.
  • Add New Database — create one and bind it in a single step.
  • Change Database — repoint the application at a different database.

Confirm & Link commits the change.

7. Database Import

Upload a dump straight into the application's database.

Accepted.zip or .gz. The form refuses anything else — Please choose a .zip or .gz dump file first — and shows No file selected until you pick one.

Import runs it, showing Importing… while it works.

An import replaces data. Take a backup from the application's Backup section first — that path takes a safety copy automatically, this one is a direct import.

8. Folder Permissions

Set filesystem permissions on the application's directories.

Modee.g. 755 or 775. Confirmed with Permissions updated successfully; failures report Failed to update permissions.

Sensible values:

ModeUse
755Directories generally — owner writes, others read and traverse
644Files generally
775Directories the web server must also write to — uploads, cache, logs

Avoid 777. It is the reflexive fix for a permissions problem and it makes every file world-writable, which on a web-facing server means anything that achieves file access can rewrite your application. If 775 does not work, the owner or group is wrong — fix that instead.

9. Sensible practice

  • One SFTP user per person. Revoking access then means deleting one account.
  • Upload keys rather than generating where you already have one.
  • Copy the connection URI rather than assembling it by hand — it carries the right host, port and database.
  • Back up before importing or relinking. Both replace what the application reads.
  • Do not reach for 777.
  • Use the database manager for inspection, not bulk changes. For a large import use the Import section; for a large export use Backup.

10. Common problems

ProblemCause
Application credentials are not availableNo database bound — use Choose Existing or Add New Database
No database password available to copyThe password was not stored; reset it with Edit
Database manager will not openFirst use installs it; a failure means the server could not install or reach it
Application works but its API does notBackend API URL wrong for a split application
SFTP login refusedWrong user — master and additional users are separate accounts
Key added but login still failsThe public key is what belongs here, not the private one
Failed to start SSH sessionServer unreachable — check it is running and the firewall
Import rejectedOnly .zip and .gz are accepted
Uploads failing after a permissions changeThe directory needs group write — 775, not 755
Application broke after relinkingIt is pointed at a different database; relink to the original

Something here not matching what you see in the panel?

Tell us
Start your journey today

Ready to take control
of your hosting?

Deploy servers, run self-hosted business apps, and keep your data on your own VPS — with a dedicated DevOps manager by your side.

No lock-in contracts
No credit card required
Dedicated DevOps manager