Configuration
evertap needs no configuration file. evertap setup saves how evertap is reached in its data
directory, and everything else has a default. Environment variables change the rest, or fix a
setting so that setup cannot change it.
How settings are decided
The mode, the address browsers use, and where the UI listens come from, in order:
- Their environment variable:
EVERTAP_MODE,EVERTAP_PUBLIC_URL,EVERTAP_LISTEN_HOST. - What
evertap setupor Settings saved, inevertap.dbin the data directory. - The mode's default.
While a variable is set, setup shows its value instead of asking, Settings shows the variable's
name, and neither can change it. An empty value counts as unset, as a blank line in an environment
file gives. Under the example systemd unit, set variables in /etc/evertap/evertap.env, and restart
evertap after a change.
The address of buckets reached from anywhere has no variable: give it in Settings → Change access,
or with evertap setup --s3-url.
evertap serve
| Variable | Default | What it does |
|---|---|---|
EVERTAP_MODE | What setup saved | local, network, or cloudflare (Choose how evertap is reached). With none saved either, evertap listens on 127.0.0.1 alone. |
EVERTAP_PUBLIC_URL | Depends on the mode | The address browsers open evertap at, such as https://evertap.example.com, with no path. Sign-in links point there, and evertap answers to its hostname. Set EVERTAP_MODE with it. |
EVERTAP_LISTEN_HOST | 127.0.0.1 | The IP address the UI listens on: 127.0.0.1 behind a proxy on this machine, 0.0.0.0 for your home network, or Docker's bridge address behind a proxy run with Docker. 127.77.0.1 is the default in local mode. |
EVERTAP_PORT | 8080 | The UI's port, in every mode. |
EVERTAP_HOST | evertap.local | This machine's name on your network. In network mode, evertap answers to it, and the Doctor checks that it resolves. evertap does not announce it. |
EVERTAP_DATA_DIR | ~/.local/share/evertap | Where evertap keeps its records, settings, the services' configuration files, and its socket for the CLI on this machine (Security). |
EVERTAP_DOCKER_SOCKET | Found on its own | Docker's socket. Unset, evertap follows a unix:// DOCKER_HOST, then takes the first that exists of /var/run/docker.sock, ~/.docker/run/docker.sock, ~/.docker/desktop/docker.sock, ~/.orbstack/run/docker.sock, ~/.colima/default/docker.sock, and $XDG_RUNTIME_DIR/docker.sock. evertap talks to Docker over a socket only. |
EVERTAP_PREFIX | evertap | What the names of evertap's Docker containers, volumes, and network start with. evertap never touches anything else. Changing it leaves the old ones unused, so set it once, before the first database. |
EVERTAP_POSTGRES_PORT | 6432 | In network and cloudflare mode, where the PostgreSQL entry listens on 127.0.0.1 for evertap connect. Change it only when something else on the machine holds the port. Connection details stay on 5432. |
EVERTAP_MYSQL_PORT | 3306 | The same, for MySQL. |
EVERTAP_REDIS_PORT | 6379 | The same, for Redis. |
EVERTAP_RUSTFS_PORT | 9000 | The same, for RustFS buckets. |
EVERTAP_GARAGE_PORT | 3900 | The same, for Garage buckets. |
EVERTAP_PUBLIC_S3_PORT | 9900 | Where the entry for buckets reached from anywhere listens, once buckets have an address: beside the UI, or on 127.0.0.1 while the UI listens on every interface. Your proxy sends that address there (Reverse proxies), and so does the tunnel setup creates, for s3.<your domain> (Cloudflare Tunnel). Setup writes it into the tunnel's routes, so run setup again with a token after changing it. |
EVERTAP_RUSTFS_REGION | us-east-1 | The region in RustFS buckets' connection details. |
EVERTAP_GARAGE_REGION | garage | Garage's region, also in its buckets' connection details. |
EVERTAP_DEMO | Off | 1 serves sample data from memory, starts nothing, and has no sign-in, for trying the UI. Changes are gone when it stops. |
In local mode, the entries always listen on 127.77.0.1 at the standard ports, which the
EVERTAP_*_PORT variables do not move.
The default address browsers use, without EVERTAP_PUBLIC_URL or a saved one:
local:http://ev.internal:8080network, listening on every interface:http://<this machine's address on your network>:8080network, listening on one address:http://<that address>:8080cloudflare:https://evertap.<your domain>for a tunnel setup created, which setup saves; none for a tunnel you run, whose address setup asks for
The CLI
| Variable | Default | What it does |
|---|---|---|
EVERTAP_API_KEY | None | An API key from Clients → New API key. The CLI uses it instead of evertap login, for CI and scripts (Connect). |
EVERTAP_URL | The address evertap login saved | The address evertap is opened at, used with EVERTAP_API_KEY. |
XDG_CONFIG_HOME | ~/.config | evertap login saves the address and token in evertap/config.json under it. |
NODE_EXTRA_CA_CERTS | None | A file of extra certificate authorities to trust, for a proxy whose certificate comes from your own authority. |
CLOUDFLARE_API_TOKEN | None | On the machine running evertap, the Cloudflare API token evertap setup creates or removes a tunnel with, instead of asking for one (Cloudflare Tunnel). evertap does not keep it. |
The CLI finds evertap in this order:
- With
EVERTAP_API_KEYset:EVERTAP_URL, or the addressevertap loginsaved. - On the machine running evertap: its socket in the data directory, which needs no sign-in. Set
the same
EVERTAP_DATA_DIRas evertap if you changed it. - The address and token
evertap loginsaved.
evertap setup, open, and signin-link use the socket alone. evertap uninstall also reads
EVERTAP_DATA_DIR, EVERTAP_PREFIX, and EVERTAP_DOCKER_SOCKET, to find what to remove.
The install script
| Variable | Default | What it does |
|---|---|---|
EVERTAP_VERSION | The latest | The release to install, such as 0.1.0. |
EVERTAP_INSTALL_DIR | /usr/local/bin | Where to put the evertap binary. |
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.