CLI
One evertap binary is both the server (evertap serve) and the CLI. evertap help lists every
command with its flags. Errors go to standard error with the next step to take, and the exit status
is 1.
The CLI talks to the evertap on the same machine over its socket, which needs no sign-in, or to the
one evertap login paired it with, or to EVERTAP_URL with EVERTAP_API_KEY in CI
(Configuration).
Resources
A resource is a database or a bucket. Commands that take <name> also take the resource's id.
Database names are unique per service, so if a database and a bucket share one, add
--engine <service>. Bucket names are unique across RustFS and Garage.
Services are postgres (also postgresql or pg), mysql, redis, rustfs, and garage.
| Command | What it does |
|---|---|
evertap list [--engine <service>] [--json] | List resources, most recently used first |
evertap get <name> [--engine <service>] [--json] | Show a resource and its connection details |
evertap create <service> <name> [--version <v>] [--extension <e>]... [--note <text>] [--temporary] [--json] | Create a database or bucket and print its connection details |
evertap url <name> [--engine <service>] | Print a database's connection URL, or a bucket's endpoint |
evertap env <name> [--engine <service>] | Print the connection details as .env lines |
evertap delete <name> [--engine <service>] [--yes] | Delete a resource and its data |
evertap protect <name> [--engine <service>] | Protect a resource from deletion |
evertap unprotect <name> [--engine <service>] | Allow a resource to be deleted again |
evertap keep <name> [--engine <service>] | Keep a temporary resource, so it no longer expires |
evertap reachable <name> [--off] [--engine <service>] | Let a bucket's signed links work anywhere, or stop that |
create
evertap create postgres blog
evertap create postgres search --version 17 --extension vector --note "search prototype"
evertap create redis cache
evertap create rustfs photos--versionpicks the major version, newest by default: PostgreSQL 18, 17, 16, or 15; MySQL 9.7 or 8.4; Redis 8.10, 8.2, or 7.4. Buckets have none. A version cannot be changed after creation.--extensionadds a PostgreSQL extension, such asvector, and can be repeated.--notesets the one-line note shown in lists.--temporarymakes a resource that is deleted after 7 days without a connection. Each connection moves that to 7 days later.keeporprotectmakes it permanent. The UI never makes temporary resources.--jsonprints the resource as JSON, connection details included.
Names:
- PostgreSQL and MySQL: a lowercase letter first, then lowercase letters, digits, or
_, up to 63 characters. Names the server keeps for itself, such aspostgresormysql, are refused. - Redis: the same, and
-is allowed too. - Buckets: 3 to 63 lowercase letters, digits, or
-, starting and ending with a letter or digit. RustFS keepsrustfs,minio, andhealthfor itself. A RustFS and a Garage bucket cannot share a name: buckets reached from anywhere share one address, where only the name tells them apart.
The first database of a version, or the first bucket of a service, waits while its image
downloads. If that takes over a minute, create asks you to try again in a minute while the
download goes on.
reachable
reachable makes a bucket's signed links work on any device, through the address buckets have of
their own, and prints the S3_PUBLIC_ENDPOINT to sign them with; --off undoes it. Objects still
need a signature (Signed links that work anywhere).
It is refused in local mode, until buckets have an address, and for a bucket that shares its name
with a bucket on the other service, which an earlier evertap allowed.
delete
delete asks you to type the name to confirm; --yes skips that, and is required without a
terminal. A protected resource cannot be deleted: run evertap unprotect <name> first. Deleting
removes the data for good; evertap keeps no backups.
Pairing and status
| Command | What it does |
|---|---|
evertap login <url> | Pair this machine with evertap; a person approves the code in a browser (Connect) |
evertap logout | Revoke this machine's token and forget the address |
evertap status | Show which evertap this CLI uses and whether it is signed in |
evertap connect [--host <address>] [--engine <service>]... | Carry database and bucket connections from this machine to evertap; keep it running |
evertap doctor | Check Docker, each service, and the entries |
evertap doctor works from anywhere. On the machine running evertap it also shows the Docker socket,
the data directory, and why a service failed to start, which it leaves out over the network.
On the machine running evertap
These run as the user that runs evertap serve, over its socket.
| Command | What it does |
|---|---|
evertap serve | Run the server |
evertap setup [--mode local|network|cloudflare] [--url <address>] [--listen <address>] [--zone <domain>] [--s3-url <address>] | Choose how other machines reach evertap, then sign a browser in (Install) |
evertap open | Open evertap in a browser on this machine, signed in |
evertap signin-link | Print a one-time link and QR code that signs a browser in |
evertap uninstall [--yes] | Remove everything evertap made on this machine, every database's data included |
setup asks questions in a terminal. With any flag, or without a terminal, it asks nothing and
takes the flags, the answers saved before, and the defaults. For a Cloudflare Tunnel it creates, it
takes the API token from CLOUDFLARE_API_TOKEN and the domain from --zone
(Cloudflare Tunnel). --s3-url gives buckets reached
from anywhere their address behind your proxy or your own tunnel; setup keeps the one saved before
without it, and never asks for one. A tunnel setup creates serves them at s3.<your domain>.
uninstall lists what it will remove and asks you to type uninstall: evertap's Docker containers,
volumes, and network, its files in the data directory, this machine's sign-in, the ev.internal
line in the hosts file, and on macOS the loopback alias and its startup job. Stop evertap serve
first. A Cloudflare Tunnel that setup created stays in Cloudflare, and uninstall lists what to
remove there (Cloudflare Tunnel). On a laptop, it signs out and
removes the ev.internal line. It does not remove the evertap binary or a systemd unit you
installed (Limitations).
Other
| Command | What it does |
|---|---|
evertap version / --version | Print the version |
evertap help | List the commands |
The evertap name and logo are not licensed with the code (section 6 of the license). You may use them to refer to evertap, but not to name or brand your own product or service, or in a way that suggests evertap made or endorses it, without permission.
evertap is an independent project. It is not affiliated with, endorsed, sponsored, supported, or certified by the owners of the software it runs, and it uses their names only to say which software that is.
- Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.
- MySQL is a registered trademark of Oracle and/or its affiliates.
- Redis is a registered trademark of Redis Ltd. Any rights therein are reserved to Redis Ltd.
- RustFS is a trademark of RustFS, Inc.
- Other names, including Garage, may be trademarks of their respective owners.