evertap

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:

  1. Their environment variable: EVERTAP_MODE, EVERTAP_PUBLIC_URL, EVERTAP_LISTEN_HOST.
  2. What evertap setup or Settings saved, in evertap.db in the data directory.
  3. 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

VariableDefaultWhat it does
EVERTAP_MODEWhat setup savedlocal, network, or cloudflare (Choose how evertap is reached). With none saved either, evertap listens on 127.0.0.1 alone.
EVERTAP_PUBLIC_URLDepends on the modeThe 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_HOST127.0.0.1The 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_PORT8080The UI's port, in every mode.
EVERTAP_HOSTevertap.localThis 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/evertapWhere evertap keeps its records, settings, the services' configuration files, and its socket for the CLI on this machine (Security).
EVERTAP_DOCKER_SOCKETFound on its ownDocker'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_PREFIXevertapWhat 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_PORT6432In 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_PORT3306The same, for MySQL.
EVERTAP_REDIS_PORT6379The same, for Redis.
EVERTAP_RUSTFS_PORT9000The same, for RustFS buckets.
EVERTAP_GARAGE_PORT3900The same, for Garage buckets.
EVERTAP_PUBLIC_S3_PORT9900Where 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_REGIONus-east-1The region in RustFS buckets' connection details.
EVERTAP_GARAGE_REGIONgarageGarage's region, also in its buckets' connection details.
EVERTAP_DEMOOff1 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:8080
  • network, listening on every interface: http://<this machine's address on your network>:8080
  • network, listening on one address: http://<that address>:8080
  • cloudflare: 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

VariableDefaultWhat it does
EVERTAP_API_KEYNoneAn API key from Clients → New API key. The CLI uses it instead of evertap login, for CI and scripts (Connect).
EVERTAP_URLThe address evertap login savedThe address evertap is opened at, used with EVERTAP_API_KEY.
XDG_CONFIG_HOME~/.configevertap login saves the address and token in evertap/config.json under it.
NODE_EXTRA_CA_CERTSNoneA file of extra certificate authorities to trust, for a proxy whose certificate comes from your own authority.
CLOUDFLARE_API_TOKENNoneOn 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:

  1. With EVERTAP_API_KEY set: EVERTAP_URL, or the address evertap login saved.
  2. On the machine running evertap: its socket in the data directory, which needs no sign-in. Set the same EVERTAP_DATA_DIR as evertap if you changed it.
  3. The address and token evertap login saved.

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

VariableDefaultWhat it does
EVERTAP_VERSIONThe latestThe release to install, such as 0.1.0.
EVERTAP_INSTALL_DIR/usr/local/binWhere to put the evertap binary.
Edit on GitHub

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.

On this page