The dashboard
A tour of the dashboard of Ferry, with what each page shows and what you can do there.
The dashboard is the web interface of your server. It is part of ferryd, and it does all that the CLI does. A change from the CLI, the API or another browser tab shows on the screen in about one second.
http://127.0.0.1:7878Open 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
| Address | What it is |
|---|---|
http://127.0.0.1:7878 | The address of the API. |
http://ferry.localhost:8080 | The public proxy. It serves the dashboard by default when the base domain is local, for example localhost. |
On a remote server, open an SSH tunnel on your machine first. Then open http://127.0.0.1:7878 in your browser.
ssh -N -L 7878:127.0.0.1:7878 you@your-serverTo 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 session 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 account, 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 icon rail on the left, and the page.
| Part | What it has |
|---|---|
| Top bar, left | The breadcrumb: the server, with its default domain and its version. On a service, a switcher to another service, the type and the state. |
| Top bar, right | Connect, Docs, the search field, the theme menu, help, Sign out and the account menu. |
| Icon rail | Services, 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 deploy hook of the service. Each value has a copy button.
The command palette 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 card | Content |
|---|---|
| Name and source | A repository and its branch, an image, or Upload via ferry up |
| Badges | The type, the runtime and the number of instances |
| Address | The public URL, the private address or the cron schedule |
| Status line | The state of the service and the time of the last deploy |
| ⋮ menu | Open, 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 environment 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 service. It has two buttons: Open and Manual deploy. The arrow next to Manual deploy has more actions:
| Item | Use |
|---|---|
| Deploy latest commit, Pull & deploy image or Redeploy last upload | A new deploy. The item depends on the source of the service. |
| Clear build cache & deploy | A new build with no cache |
| Restart service | New instances from the live image, with the current settings and variables |
| Suspend service | Stop 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 trigger, 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 runtime log 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, exit code and duration. Click Run job, or Run now on a cron job. 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
| Card | Use |
|---|---|
| Service variables | Edit each environment variable of the service. |
| Linked env groups | Link or unlink an env group. |
| Effective variables | The variables of the next deploy or restart, each with its source. Show Ferry variables adds the variables that Ferry gives, for example PORT. |
| Reference syntax | The references 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
| Section | What you change |
|---|---|
| General | Nothing: the name, the id, the type and the private address, with copy buttons |
| Build & deploy | The source, the branch, the runtime, the commands, the port, the health check path and auto-deploy |
| Cron schedule | The schedule of a cron job |
| Scaling | The instances and the mount path of the disk |
| Resources | The memory limit and the CPU limit |
| Custom domains | The domains of the service. See Domains and HTTPS. |
| Deploy hook | Copy the secret deploy URL, or make a new one |
| Danger zone | Suspend, 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 datastore is a card with its version, its private address, its status and its host port. 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:
| Part | Content |
|---|---|
| Connection | The addresses, the connection strings, the username, the password and the database, with copy buttons |
| Resources | The memory and CPU limits. Apply limits changes the container immediately, with no restart. |
| Use in a service | The reference to paste, for example DATABASE_URL=${{datastore.app-db.connectionString}} |
| Referenced by | The services that use the datastore |
| Danger zone | Delete 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 blueprint 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:
| Section | Content |
|---|---|
| General | The versions of Ferry and Docker, the default container limits, the default domain, the proxy URL and the dashboard URL |
| Monitoring | The 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 logs | The server log: the last 2,000 lines, then each new line, live. Filter by level: Error, Warn, Info or Debug. |
| Domains | The domains of the server and their state. Verify now, Make default, Disconnect. The certificate of each hostname. See Domains and HTTPS. |
| Account | Your password, the API tokens and the browser sessions. See the next section. |
| Connections | The ferry login command, the FERRY_SERVER and FERRY_TOKEN variables for CI, and the GitHub and GitLab accounts |
| API | The base URL, an example request, and links to the Swagger UI at /api/docs and to the OpenAPI document 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 API token 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.
| Button | Effect |
|---|---|
| New token | You give a name and an expiry: never, 30 days, 90 days or 1 year. The dashboard shows the token one time. |
| Revoke | The token stops immediately. |
Sessions lists the browsers that have a session on the account. Each line has a Sign out button.