Help
Glossary
Each technical name in these docs, with a short definition.
In a page, a name with a dotted line has a definition. Put the pointer on the name to read it.
- account
- The one administrator of a Ferry server: an email and a password. You sign in to the dashboard with it.
- account endpoint
- An API address below
/api/v1/auth. These addresses control the password, the sessions and the API tokens.See also: endpoint - actual state
- What runs at this moment: the containers and the ports that Docker reports.See also: desired state, reconciler
- alias
- A name that Docker gives to a container on a network. Other containers use this name, not an IP address.See also: private network
- Alpine
- A small Linux system. An image that is built on Alpine uses less disk space.See also: image
- apex domain
- The domain itself, with no name before it:
example.com. DNS providers write it as@.See also: subdomain - API
- Application programming interface: the HTTP addresses that programs call to control Ferry. The CLI and the dashboard use the API.See also: API token
- API token
- A secret text that proves who you are to the API. Programs send it with each request.
- apply
- The operation that reads a blueprint, then creates what is not there and updates what changed.See also: blueprint, dry run
- archive
- One file that contains many files and folders. A
.tar.gzarchive is also compressed. - Argon2id
- A hash function for passwords. It is slow on purpose, so an attacker cannot try many passwords quickly.See also: SHA-256
- arm64
- A type of CPU. Many low-cost cloud servers and the newer Raspberry Pi boards use it. On Linux,
uname -mcalls itaarch64.See also: x86_64 - auto-deploy
- A setting of a service. When it is on, a push to the branch starts a deploy.See also: webhook
- autoscaling
- A system that changes the number of instances by itself when the load changes. Ferry does not have it.See also: scaling
- background
- A program in the background does not keep the terminal. You can close the terminal and the program continues.See also: foreground
- background worker
- A service that runs all the time and has no port. It does work that no request waits for.
- backup
- A copy of your data that you keep in a different place. You use it to get the data back after a loss.
- base domain
- The first domain of a Ferry server. It comes from
ferryd --base-domain. Its default islocalhost.See also: domain of the server - base image
- The image that a Dockerfile starts from. It contains a small system and the tools of one language.See also: Dockerfile
- base URL
- The start of each URL of the API: the address of the server, then
/api/v1. - bearer token
- A token that a client sends in the header
Authorization: Bearer <token>.See also: API token - binary
- The program file that a compiler makes from Go or Rust code. It runs without the compiler.
- blue-green deploy
- A deploy that starts the new instances next to the old instances, then moves the traffic. It is the default.See also: zero downtime, recreate
- blueprint
- A YAML file (
ferry.yamlorrender.yaml) that describes your services and datastores. Ferry creates or updates them from the file. - body
- The data of an HTTP request or answer. It comes after the headers.
- branch
- One line of work in a git repository. Ferry deploys the newest commit of the branch that you choose.
- bridge network
- A network that Docker makes inside one machine. The containers on it can call each other. Other machines cannot reach it.See also: private network
- build cache
- The layers that Docker keeps from earlier builds. Docker uses a layer again when its step did not change.
- build context
- The folder of files that Ferry gives to the build: the repository, or its root directory.See also: build
- build secret
- A value that Docker gives to one build step only. Docker does not record it in the image.
- camelCase
- A way to write a name of many words with no space. Each word after the first starts with a capital letter:
healthCheckPath.See also: snake_case - capability
- One special right that Linux gives to a program.
CAP_NET_BIND_SERVICElets a program listen on the ports below 1024. - cargo
- The build tool of Rust. It makes the Ferry programs from the source code.
- certificate
- A file that proves that a server owns a domain. HTTPS needs one. Ferry gets certificates from Let’s Encrypt.See also: Let’s Encrypt
- checksum
- A short value calculated from a file. When one byte of the file changes, the checksum changes.See also: SHA-256
- CI
- Continuous integration: a system that runs your tests after each push. GitHub Actions is a CI system.
- clear text
- Data with no encryption. Each machine on the network path can read it.See also: HTTPS
- CLI
- Command-line interface: the
ferrycommand. You type commands in a terminal and the CLI sends them to the server.See also: ferryd - command palette
- A search box that opens on top of the page. You type a name, then it opens a page or starts an action.
- commit
- One saved version of the code in git. A commit has an identifier named SHA.
- config file
- The file where
ferry loginsaves the server URL and the API token:~/.config/ferry/config.json.See also: API token - connection pooler
- A program between your apps and a database. With it, many app connections share a small number of database connections.
- connection string
- One URL that contains all that an app needs to connect to a database: user, password, host, port and database name.See also: datastore
- container
- A process that Docker starts from an image and keeps apart from the other processes of the machine.See also: image, instance
- CORS
- Cross-origin resource sharing: headers that let a page of another origin call an API from a browser. Ferry sends none.See also: origin
- CPU limit
- The most CPU time that one container can use. At the limit, the container becomes slower. It does not stop.
- crate
- A package of Rust code. A crate is a library that other crates use, or a program.
- cron expression
- Five fields that give a schedule: minute, hour, day of month, month and day of week.See also: schedule
- cron job
- A service that runs a command on a schedule (for example each night), then stops.
- curl
- A command that sends one HTTP request and prints the answer.
- custom domain
- One more hostname that you add to one service, for example
www.example.com.See also: domain of the server - dashboard
- The web pages of your Ferry server. You use them in a browser to create and control services.
- dashboard host
- The hostname on which the proxy serves the dashboard and the API. It comes from
ferryd --dashboard-host. - data directory
- The folder where
ferrydkeeps its state: the database, the logs, the uploads and the certificates. The default is./ferry-data. - datastore
- A Postgres or Redis database that Ferry runs for you, with its data on a volume.See also: volume
- default domain
- The domain of the server that Ferry uses when it shows the URL of a service.See also: domain of the server
- degraded
- The state of a service that runs fewer instances than you asked for.See also: reconciler
- delivery
- One webhook request from GitHub. The header
X-GitHub-Deliverygives its id.See also: webhook - deploy
- One release of a service. Ferry builds an image, starts new instances, tests them, then sends the traffic to them.See also: build, health check
- deploy hook
- A secret URL. A request to this URL starts a deploy of one service.
- deploy log
- The log of one deploy: the build output and the steps that Ferry does.See also: log, deploy
- deploy worker
- A background task of the engine. It runs the deploys of one service, one at a time, in order.
- desired state
- What must run, as written in the Ferry database: services, live deploys, number of instances.See also: reconciler
- disk
- Storage for one service that stays between deploys. It is a Docker volume at a path that you choose.See also: volume
- DNS
- Domain Name System: the directory of the internet. It gives the IP address of a server for a domain name.
- DNS provider
- The company where you manage the DNS records of your domain. Frequently, it is the company that sold you the domain.
- DNS zone
- All the DNS records of one domain at your DNS provider.See also: DNS provider
- Docker
- The program that builds images and runs containers. Ferry tells Docker what to do.See also: image, container
- Docker context
- A name in Docker for one daemon and its address. Colima and OrbStack each make a context.
- Docker daemon
- The part of Docker that stays in the background. It builds images and runs containers when a program asks.See also: Docker socket
- Docker Desktop
- The Docker app for macOS and Windows. It runs the containers in a virtual machine.See also: virtual machine
- Docker root directory
- The folder where Docker keeps its images, containers and volumes.
- Docker socket
- A special file on the machine. Programs talk to the Docker daemon through it.
- Dockerfile
- A text file with the steps that build an image.See also: image
- domain of the server
- A domain that Ferry serves all public services under. With
example.com, a service namedshopanswers atshop.example.com.See also: base domain, custom domain - dry run
- A test of a blueprint. It shows what Ferry will create or change, and it changes nothing.See also: blueprint
- endpoint
- One address of an API, for example
/healthz.See also: API - engine
- The part of
ferrydthat runs the deploys, the reconciler, the cron jobs and the datastores. Its crate isferry-engine.See also: reconciler, deploy worker - env group
- A set of environment variables with a name. You link it to all the services that need the same values.
- environment
- A group of services and datastores with its own private network, for example
productionorstaging. Each environment can use the same names. Names do not resolve from one environment to another.See also: private network, staging - environment variable
- A value with a name that Ferry gives to your app when it starts. Example:
DATABASE_URL.See also: env group, reference - EventSource
- The object of a browser that reads a Server-Sent Events stream. It connects again by itself. It cannot set headers.See also: Server-Sent Events
- exit code
- The number that a command gives to the shell when it stops.
0is a success. Each other number is a failure. - external URL
- The connection string for the server itself. Its host is
127.0.0.1, with a port of the server.See also: connection string, host port - Ferry key
- A blueprint key that Ferry adds to the
render.yamlformat:port,memoryLimitandcpuLimit. Render has no such key.See also: blueprint - ferryd
- The Ferry server. It is one program that runs on your machine and controls Docker.See also: CLI, dashboard
- firewall
- A filter that blocks the network connections to a machine, but not on the ports that you open.See also: port
- foreground
- A program in the foreground keeps the terminal and writes its output there until it stops.See also: background
- generated secret
- A random value of 64 hex characters (256 bits). Ferry makes it for a variable that has
generateValue: true. - git connection
- A GitHub or GitLab account that gave your Ferry server the permission to read its repositories.See also: repository
- git submodule
- A git repository that is a folder of another git repository.See also: repository
- GitHub App
- An application on GitHub that belongs to your account. Ferry creates one for your server. It reads only the repositories that you choose.See also: git connection
- glibc
- The C library of most Linux systems. A program built with one version runs with that version or a newer one.
- grace period
- The time that a container has to stop by itself. After that time, Docker stops it by force.See also: SIGTERM, SIGKILL
- graceful shutdown
- A stop in order: the server completes the requests in progress, then closes each part, then exits.
- hash
- A text that a program calculates from a password. The program can compare it, but nobody can read the password from it.
- health check
- The test that tells Ferry that a new instance can receive traffic.
- hex character
- One of the 16 characters
0to9andatof. Programs write random values and hashes with them. - HMAC
- A signature that the sender calculates from a message and a shared secret. The receiver calculates it again and compares.See also: webhook
- Host header
- The header of a request that gives the hostname that the client wants. The proxy reads it to find the service.See also: hostname
- host port
- A port of the server that Docker connects to a port of a container.See also: port
- hostname
- The name of a machine or a site on a network, for example
api.example.com. - HTTP-01 challenge
- The test of ACME: the certificate authority asks the host for a secret file on port 80. A correct answer proves control of the hostname.
- HTTPS
- HTTP with encryption. The browser and the server use a certificate to keep the traffic private.See also: certificate
- icon rail
- The column of icons on the left side of the dashboard. Each icon opens one main page.See also: dashboard
- id
- The identifier that Ferry gives to a resource: a prefix and 20 hex characters, for example
srv-60f5973b037e4478ae7b. - image
- A package that contains your app and all that the app needs to run. Docker starts containers from an image.See also: container, build
- image history
- The list of the steps that made an image. Each person who has the image can read it.See also: image
- install script
- The file install.sh of each release. With one command, it installs Ferry on a server or upgrades it.
- instance
- One running container of a service. A service can have many instances that do the same work.See also: container
- instance_id
- The file of the data directory that holds the identity of one Ferry server.
- internal URL
- The connection string for the private network. Its host is the name of the datastore, for example
app-db:5432.See also: connection string, private network - IP address
- The number of a machine on a network, for example
203.0.113.10. Machines use it to find each other.See also: DNS - IPv6
- The newer format of IP addresses, for example
2001:db8::10. AnAAAArecord gives an IPv6 address. AnArecord gives an IPv4 address.See also: IP address - job
- A command that runs one time in a new container of a service, then stops.
- journal
- The place where systemd keeps the output of the programs that it runs. The command
journalctlreads it.See also: systemd - JSON
- A text format for data that programs read. Example:
{"name": "api", "state": "live"}. - kernel
- The center of the operating system. It gives memory and CPU time to each process, and it applies the limits.
- key value store
- The name that Render gives to a Redis database. On Ferry, it is a Redis datastore.See also: datastore
- KiB
- Kibibyte: 1024 bytes. 32 KiB is 32,768 bytes.
- label
- A key and a value that Docker keeps on a container. Ferry reads the labels to find its own containers.
- latency
- The time that a service takes to answer a request. Ferry measures it until the headers of the answer go out.
- Let’s Encrypt
- A free service that gives HTTPS certificates. It first tests that your server controls the domain.
- live deploy
- The deploy of a service that gets the traffic now. A service has one live deploy at most.See also: deploy, snapshot
- liveness probe
- A small request that tells you if a program is alive.
- local name
- A name that has no public DNS:
localhost,*.localhost,*.local,*.internaland*.test. It gets no certificate.See also: localhost - localhost
- The name of your own machine.
127.0.0.1is its address. Other machines cannot connect to it. - lock
- A mark on a file that one program holds. It tells other programs that the folder is in use.
- log
- The lines of text that a program writes while it runs. You read them to know what occurred.
- marker volume
- The Docker volume
<prefix>-owner. It records which data directory owns the name prefix.See also: instance_id - memory limit
- The most memory that one container can use. Above it, the kernel stops the process of the container.See also: OOM kill, resource limit
- merged environment
- All the variables that a service gets: the injected variables, then its env groups, then its own variables.
- MiB
- A unit of memory and of disk space. 1 MiB is 1024 × 1024 bytes. 1 GiB is 1024 MiB.
- migration
- A script that changes the structure of a database, for example to create a table.
- millicore
- One thousandth of a CPU core.
500mis 500 millicores: half a core. - monorepo
- One repository that contains many apps, each in its own folder.See also: root directory
- mount path
- The folder in the container where the disk shows, for example
/data.See also: disk - name prefix
- The start of the name of each Docker resource of one Ferry server. The default is
ferry. - NAT
- Network address translation: a router gives one public address to machines that have private addresses.
- nginx
- A web server program. Ferry uses it to send the files of a static site to the browser.See also: static site
- npm
- The package tool of Node.js. It gets the libraries of a project and runs its build.
- OAuth application
- An application that you create on GitLab for your server. After you authorize it, Ferry can read your repositories. Ferry never gets your password.See also: redirect URI
- one-off job
- A command that you start one time with
ferry run. It runs in a new container of a service, then stops.See also: run - OOM kill
- Out of memory: the system stops a container that uses more memory than its limit.
- OOM watcher
- A task of the engine that listens to the
oomevents of Docker. It writes a warning in the server log for each kill.See also: OOM kill - OpenAPI document
- A file that describes each address of an API in a standard format. Tools such as Swagger UI read it.See also: API
- origin
- The scheme, the host and the port of a web page, for example
https://ferry.example.com. A browser keeps pages of different origins apart. - orphan
- A container of this server whose service or datastore does not exist. The reconciler removes it.
- pagination
- An API with pagination gives a long list in parts, one page for each request. The Ferry API gives the full list.
- PATH
- The list of folders where the terminal looks for a program when you type its name.
- pg_dump
- The Postgres tool that writes a full database into one file. The tool
psqlloads the file into another database. - pinned image
- An image that Ferry keeps with a tag of its own for one deploy. This deploy always runs the same image.See also: tag
- polling
- To ask the server again at a fixed interval, to see if something changed.
- port
- A number that identifies one program on a machine for network connections. Your app listens on a port.
- Postgres
- A database that keeps data in tables. Apps read and change the data with SQL.See also: datastore
- private key
- The secret half of a pair of keys. The program that has it can prove its identity or read encrypted data.
- private network
- A Docker network that only your services and datastores are on. They call each other by name, for example
api:3000. - private service
- A service with a port but no public URL. Only your other services can call it.See also: private network
- Procfile
- A text file named
Procfile. Each line has a name and a start command, for exampleweb: python app.py.See also: start command - Prometheus
- A monitoring program that you install yourself. It collects the numbers of your programs at regular intervals, keeps them, and sends alerts.
- proxy
- The part of Ferry that receives each HTTP request and sends it to an instance of the correct service.
- psql
- The command-line client of Postgres. It sends SQL to a database.
- public URL
- The address that a browser on the internet uses to open your service, for example
https://shop.example.com.See also: hostname - push
- The git command that sends your commits to the repository on GitHub or GitLab.See also: commit
- query string
- The part of a URL after the
?, for example?key=abc. - quota
- A limit on the disk space that one container or one volume can use. Ferry sets none.
- rate limit
- The largest number of requests that a service accepts in a period of time.
- reconciler
- The loop in Ferry that compares what must run with what Docker runs, then repairs the difference.
- recreate
- A deploy that stops the old instance before it starts the new instance. Ferry uses it for a service with a disk.See also: disk
- redirect
- An answer that tells the browser to go to another URL. Ferry uses the status code
308to send HTTP to HTTPS.See also: status code - redirect URI
- The address that the provider sends your browser back to after you authorize.
- Redis
- A database that keeps keys and values in memory. Apps use it as a cache or as a queue.See also: datastore
- reference
- A value written as
${{…}}. Ferry replaces it with the real value (for example a database URL) when the service starts. - registry
- A server that stores images. Docker Hub is a registry.See also: image
- Render
- A company that runs apps on its own servers. Ferry does the same work on a server that you control.
- replica
- A second database server that keeps a copy of the data of the first server.
- repository
- A folder of code with its history, kept by git. Also called a repo.See also: branch, commit
- resolve
- A name resolves to an address when the DNS gives this address for the name.See also: DNS
- resource limit
- The most memory and CPU that one container can use.See also: OOM kill
- REST API
- An API that uses plain HTTP requests. The URL names a resource. The method (
GET,POST,DELETE) names the action.See also: API - restart
- A deploy that uses the live image again, with the current settings and variables. Nothing is built.
- reverse proxy
- A program that receives the requests from the internet and sends them to another program. nginx, Caddy and Traefik are reverse proxies.See also: proxy
- RFC 3339
- A standard text format for a date and a time, for example
2026-09-27T07:38:34.231568Z.See also: timestamp - rollback
- A deploy that uses the image of an earlier deploy again.
- root
- The administrator account of a Linux machine. It can read, change and delete all things.See also: sudo
- root directory
- The folder of your code where Ferry builds the service. The default is the top of the repository.See also: monorepo
- round-robin
- A rule of turns: the first request goes to the first instance, the next request to the next instance, then the list starts again.
- route table
- A list in the memory of
ferryd. For each hostname, it gives the addresses of the instances. The proxy reads it for each request.See also: proxy - route watcher
- The loop in Ferry that lists the instances each second and updates the routes of the proxy.
- run
- One execution of a job: one new container, one command, one log and one exit code.See also: job, one-off job, cron job
- runtime
- The language environment of your app (Node, Python, Go, Rust, Ruby, static). Ferry finds it from your files and writes the Dockerfile.
- runtime log
- What the containers of a service write while they run. Docker keeps it as long as the containers exist.See also: log, stdout, stderr
- scaling
- A change of the number of instances of a service.See also: instance, autoscaling
- schedule
- The times at which a cron job runs. You write it as a cron expression, for example
0 3 * * *.See also: cron job, cron expression - scheduler
- The part of Ferry that starts a run of a cron job at each time of its schedule.See also: schedule
- secret file
- On Render, a file with secret text that the host puts in the container of a service.
- self-hosted
- You run the program on a machine that you control, not on the machines of a company.
- self-signed certificate
- A certificate that a server makes for itself. No certificate authority signed it, thus browsers show a warning.See also: certificate
- server log
- The log that
ferrydwrites about its own work: failed deploys, OOM kills, proxy warnings.See also: ferryd - server token
- An API token that
ferrydwrites in its data directory at the first start. Scripts on the server use it.See also: API token - Server-Sent Events
- SSE: one HTTP answer that stays open. The app sends new lines of data to the browser when it has them.
- service
- One app that Ferry builds and runs for you. A service has a name, a type, a source and settings.See also: instance, deploy
- service lock
- A lock that each service has. Only the operation that holds it can change the containers of the service.See also: reconciler
- service manager
- A system program that starts other programs and starts them again after a crash: systemd on Linux, launchd on macOS.See also: systemd
- service type
- The kind of a service: web service, private service, background worker, cron job or static site.See also: service
- session
- The time that one browser stays signed in to the dashboard. A cookie in the browser identifies it.
- setup code
- A secret code that
ferrydmakes while the server has no account. You need it to create the account. - SHA-256
- A function that calculates a fixed value (a hash) from a text. Nobody can get the text back from the hash.See also: Argon2id
- shell
- The program that reads the commands that you type in a terminal, for example bash or zsh.
- SIGKILL
- The signal that stops a process immediately. The process cannot refuse it.See also: exit code
- SIGTERM
- The signal that asks a program to stop. The program can save its work first.See also: SIGKILL, grace period
- snake_case
- A way to write a name of many words: lower case, with
_between the words, for examplebase_domain.See also: camelCase - snapshot
- The exact image, variables, command and limits of a live deploy. Ferry saves them and uses them for each new container of that deploy.
- source
- Where the code of a service comes from: a git repository, a Docker image or an upload.See also: repository, image
- SQLite
- A small database that is one file. Ferry keeps its own data (services, deploys, settings) in it.
- SSH tunnel
- A safe connection through SSH that makes a port of the server available as a port of your machine.
- staging
- A second copy of your setup where you test a change before it goes to production.
- start command
- The command that starts your app in each container, for example
npm start.See also: Procfile - static site
- A service that is only files (HTML, CSS, JavaScript). Ferry serves the files with nginx.
- status code
- The number at the start of an HTTP answer.
200is a success,404is "not found",503is "not available". - stderr
- Standard error: the channel where a program writes its errors and its progress messages.See also: stdout
- stdout
- Standard output: the channel where a program writes its results. A pipe (
|) sends it to the next command.See also: stderr - store
- The part of Ferry that reads and writes the SQLite file
ferry.db. It has the desired state.See also: SQLite, desired state - subdomain
- A name under a domain.
shop.example.comis a subdomain ofexample.com. - sudo
- A Linux command that runs one other command as root.See also: root
- Swagger UI
- A web page that lists each endpoint of an API. You can try the endpoints from the page.
- symlink
- A file that points to another file or folder.
- system user
- A Linux account for a program, not for a person. No person can log in with it.
- systemd
- The Linux program that starts services when the machine boots and starts them again after a crash.
- tag
- The part of an image name after the
:. It names one version of the image, for examplealpineinnginx:alpine.See also: image - timestamp
- The date and time when a line was written.
- trigger
- The cause of a deploy: a command, a push to git, a change of variables, and so on.
- unit
- A file that tells systemd how to start, stop and supervise one program.See also: systemd
- UTC
- Coordinated Universal Time: the reference time of the world. It has no summer time.
- virtual machine
- A computer that software makes inside a real computer. It has its own system, CPUs and memory.
- volume
- A folder that Docker keeps on the server when a container is removed. Data on a volume stays.See also: disk
- web service
- A service that answers HTTP requests and has a public URL.
- webhook
- An HTTP request that one system sends to another when something occurs. GitHub sends a webhook to Ferry after each push.
- webhook secret
- A secret text that GitHub and
ferrydshare. GitHub signs each webhook with it.See also: webhook - wildcard DNS record
- A DNS record for
*.example.com. It answers for each name under the domain, thus a new service needs no new record. - x-ferry-error
- A header that the proxy adds when it answers with its own error page. Your app does not send it.See also: proxy
- x86_64
- The type of CPU in most PCs and servers, from Intel and AMD. It is also called amd64.See also: arm64
- YAML
- A text format for settings. Each line is
key: value. The indentation shows what is inside what.See also: blueprint - YAML anchor
- A name for a block of YAML, written
&defaults.<<: *defaultscopies the block to another place of the file.See also: YAML - zero downtime
- Your app answers during the full deploy. The old instances stop only after the new ones are ready.