Eddyline
Menu

Self-hosting · Draft

Install

Draft. This page is written from the product plan and has not been checked against a release.

You want Eddyline running on a server you control, and you do not want a weekend project. The installer does the work in a few minutes, and you can be working in 15.

The one-line install #

Run this on the server as root, or as a user with sudo:

curl -fsSL https://get.eddyline.app | sh

The script is plain POSIX shell. You can read it before you run it: the security page shows how to download it, check it against SHA256SUMS and read it first.

Requirements #

  • A Linux server with a public IP address and a domain name pointing at it.
  • Ports 80 and 443 free, because Caddy gets and renews the certificate.
  • At least 1 GB of RAM. 2 GB is recommended. Under 2 GB the installer adds a 2 GB swap file.
  • Root or sudo. The installer adds Docker Engine and the compose plugin from Docker’s apt repository when they are missing.

What the installer does #

  1. Checks the operating system, architecture, memory and that ports 80 and 443 are free.
  2. Installs Docker when it is missing.
  3. Asks for a domain, or takes it from a flag.
  4. Checks that the domain resolves to this server and warns if it does not, because Caddy would fail to get a certificate.
  5. Generates the secrets: the session secret, the database password and a one-time setup token. They go into .env with mode 600 and are never printed.
  6. Writes the compose files, the Caddyfile and a backups/ folder under /opt/eddy, then starts the stack and waits for the health check.
  7. Installs the nightly backup and the management command.
  8. Prints your setup link and the next steps.

Running it again on a server that already has an install does nothing except point you at eddy update.

Flags #

For non-interactive installs, pass flags instead of answering prompts:

FlagWhat it does
--domainThe domain Eddyline will answer on. Required.
--emailContact address for Let’s Encrypt.
--licenseA licence key to install at the start.
--smtp-urlSMTP connection URL for outgoing mail.
--mail-fromThe From address for mail.
--versionA version number, or stable (the default), which is resolved to a concrete version and pinned.
--yesAccept every prompt.
--no-tlsPlain HTTP on port 80, for tests and LAN use.
--database-urlUse your own Postgres instead of the bundled one. See external database.

Pass flags after sh -s --:

curl -fsSL https://get.eddyline.app | sh -s -- --domain track.example.com --email you@example.com --yes

What happens next #

The installer prints a setup link that looks like https://track.example.com/setup?token=.... Open it to create your workspace. Then point mail at an SMTP server so invites and password resets are sent, and decide how your team will sign in.

If the install stops with an error, run eddy status and see troubleshooting.

Edit this page