FerryDocs
Guides

The dashboard

A tour of the dashboard of Ferry, with what each page shows and what you can do there.

Edit on GitHub

The is the web interface of your server. It is part of , and it does all that the does. A change from the CLI, the API or another browser tab shows on the screen in about one second.

Browser
http://127.0.0.1:7878

Open this address in your browser. This page shows each area of the dashboard. For the steps of a task, follow the link to its guide.

Open the dashboard and sign in

AddressWhat it is
http://127.0.0.1:7878The address of the .
http://ferry.localhost:8080The public . It serves the dashboard by default when the base domain is local, for example localhost.

On a remote server, open an on your machine first. Then open http://127.0.0.1:7878 in your browser.

Terminal
ssh -N -L 7878:127.0.0.1:7878 you@your-server

To open the dashboard with no tunnel, give it its own domain with HTTPS. See Put the dashboard on its own domain.

Enter the email and the password of the account. Then click Sign in. A new server has no account: open the Create your account link that ferryd printed when it started. The browser keeps the until you sign out, or for 30 days with no use.

If you forget the password, run ferryd reset-password on the server. Give it the same --data-dir as the server.

The dashboard controls the full server

The server has one , with no other users and no roles. A person who can sign in controls each app on the server.

Find your way

Each screen has the same frame: a top bar, an on the left, and the page.

PartWhat it has
Top bar, leftThe : the server, with its default domain and its version. On a service, a switcher to another service, the type and the state.
Top bar, rightConnect, Docs, the search field, the theme menu, help, Sign out and the account menu.
Icon railServices, Environments, Datastores, Env groups, Blueprints and Server. On a phone, the rail becomes a menu button.

Connect opens a panel with the ferry login command for this server and the API URL. On a service page, it also has the URL, the private address and the of the service. Each value has a copy button.

The opens with ⌘+K or Ctrl+K. Type a name to go to a service, a datastore, an env group or a page. It also starts Manual deploy or Restart service on the current service, and creates a service.

Services

The Services page is the home page. Each service is a card:

Part of the cardContent
Name and sourceA repository and its branch, an image, or Upload via ferry up
BadgesThe type, the and the number of instances
AddressThe public URL, the private address or the cron schedule
Status lineThe state of the service and the time of the last deploy
⋮ menuOpen, deploy, restart, suspend or resume, copy the URL, delete

Search a service by its name. Filter by status, for example live, failed or suspended. When the server has more than production, each card shows the of the service, and a menu filters the services by environment. Sort by name or by last deploy, and show a grid or a list. The Ferry server panel on the right shows the versions of Ferry and Docker, the address of the proxy and the number of each resource.

If the server has no GitHub or GitLab account, the page starts with Connect GitHub and Connect GitLab. See Auto-deploy from GitHub.

+ New service opens one form. It has the service type, the name, the environment, the source, the build settings, the domains and the variables. The source is a Git repository, a Docker image or Upload later. Advanced has the root directory, the Dockerfile path, the health check path, a disk and the limits. Click Create and deploy. See Deploy an app.

A service page

The header shows the name, the state, the type and the URL of the . It has two buttons: Open and Manual deploy. The arrow next to Manual deploy has more actions:

ItemUse
Deploy latest commit, Pull & deploy image or Redeploy last uploadA new deploy. The item depends on the source of the service.
Clear build cache & deployA new build with no cache
Restart serviceNew instances from the live image, with the current settings and variables
Suspend serviceStop the service

A side menu opens the six sections of the service.

Overview

The info tiles give the status, the instances, the private address (name:port), the source, the latest deploy and the domains. A graph shows the env groups, datastores and services that this service uses. Instances shows the live CPU and memory of each container next to its limits, with a Scale button.

If an instance goes above its memory limit, it gets an OOM killed badge. The Raise the limit link opens Settings → Resources. See Scaling and limits.

Deploys

The list shows each deploy, the newest first: its status, its , its source, its image, its duration and its age. The menu of a row has Roll back to this deploy for an earlier deploy that went live. It has Cancel deploy for a deploy in progress.

Open a deploy to read its Build & deploy log, live. If the deploy failed, the Why it failed box shows the error. See Deploys and rollbacks.

Logs

The page shows the of all the instances in one live list. Load the last 100, 500 or 1000 lines, or all the lines. You can pause, search, wrap the long lines, show the timestamps and download the lines. When you scroll up, the list stops. Click Jump to latest to start it again. See Logs.

Jobs

The list shows the one-off jobs and the cron runs: status, command, trigger, and duration. Click Run job, or Run now on a . Open a job to read its output, or to cancel it while it runs. On a cron job, a card shows the schedule, with an Edit schedule shortcut. See Jobs.

Variables

CardUse
Service variablesEdit each of the service.
Linked env groupsLink or unlink an .
Effective variablesThe variables of the next deploy or restart, each with its source. Show Ferry variables adds the variables that Ferry gives, for example PORT.
Reference syntaxThe that you can insert for your datastores and services.

The values stay hidden until you click Reveal. Import a .env file, or paste KEY=value lines into a key field. Save only keeps the variables for the next deploy or restart. Save & restart applies them immediately. See Variables and secrets.

Settings

SectionWhat you change
GeneralNothing: the name, the id, the type and the private address, with copy buttons
Build & deployThe source, the branch, the runtime, the commands, the port, the health check path and auto-deploy
Cron scheduleThe schedule of a cron job
ScalingThe instances and the mount path of the disk
ResourcesThe memory limit and the CPU limit
Custom domainsThe domains of the service. See Domains and HTTPS.
Deploy hookCopy the secret deploy URL, or make a new one
Danger zoneSuspend, resume or delete the service

If a setting changes in another place while you edit the form, the page shows These settings changed elsewhere. Choose to keep your edits or to load the latest values.

Datastores

Each is a card with its version, its private address, its status and its . Click New datastore. Give the name, the environment, the kind and the version. For Postgres, you can also give a database name and a user.

The page of a datastore has these parts:

PartContent
ConnectionThe addresses, the , the username, the password and the database, with copy buttons
ResourcesThe memory and CPU limits. Apply limits changes the container immediately, with no restart.
Use in a serviceThe reference to paste, for example DATABASE_URL=${{datastore.app-db.connectionString}}
Referenced byThe services that use the datastore
Danger zoneDelete the datastore and its data

See Databases.

Environments

Environments shows each environment with its web address, its services and its datastores. Click New environment and type the name. If the server has a domain that is not local, the dialog then shows the DNS record that the environment needs, with copy buttons. The page of an environment lists its services and datastores, and New service and New datastore create them in this environment. You can delete an environment only when it is empty. See Environments.

Env groups and blueprints

Env groups shows each group with its keys and its linked services. The page of a group has the same variable editor as a service. Link service adds a service to the group. There, Save & restart restarts the linked services that are live.

Blueprints applies a file. Paste or open a ferry.yaml or a render.yaml, or click Example. Click Dry run to see what Ferry will create, update or not change. Then click Apply.

Ferry deploys the new services and the changed services, and restarts the services with only new variables. Apply deletes nothing. See the Blueprint reference.

The Server page

Click Server in the icon rail. A side menu shows seven sections:

SectionContent
GeneralThe versions of Ferry and Docker, the default container limits, the default domain, the proxy URL and the dashboard URL
MonitoringThe CPU, memory, disk and network of the server, and each container with its CPU and memory. Charts show the last 1 h, 6 h or 24 h, and the requests of each service. See Monitor the server.
Server logsThe : the last 2,000 lines, then each new line, live. Filter by level: Error, Warn, Info or Debug.
DomainsThe domains of the server and their state. Verify now, Make default, Disconnect. The certificate of each hostname. See Domains and HTTPS.
AccountYour password, the API tokens and the browser sessions. See the next section.
ConnectionsThe ferry login command, the FERRY_SERVER and FERRY_TOKEN variables for CI, and the GitHub and GitLab accounts
APIThe base URL, an example request, and links to the at /api/docs and to the file. See the API overview.

Account and tokens

Open Server → Account. The account menu in the top bar opens it too.

Change password asks for the current password. Then Ferry signs out each other browser.

API tokens lists the tokens of the CLI and of your scripts. An shows its name, its last 4 characters, its last use and its expiry. A token from ferry login has the name of its terminal, for example ada@laptop.

ButtonEffect
New tokenYou give a name and an expiry: never, 30 days, 90 days or 1 year. The dashboard shows the token one time.
RevokeThe token stops immediately.

Sessions lists the browsers that have a session on the account. Each line has a Sign out button.

On this page