Eddyline
Menu

Self-hosting

Moving to a new server

  1. On the old server, run sudo eddy backup. Copy the new file in /opt/eddy/backups/, and /opt/eddy/.env, to the new server.
  2. Point the domain at the new server, or use a new domain.
  3. On the new server, run the installer with the same options as before. It sets up a fresh install with new secrets.
  4. Run sudo eddy config. Replace AUTH_SECRET with the value from the old .env, so sessions and tokens stay valid, and copy over any other settings you had added: SMTP_URL, MAIL_FROM, sign-in keys, LICENSE_KEY, BACKUP_HOOK. If the domain changed, APP_URL and AUTH_URL hold the new address, and the callback URLs for Google or OpenID Connect need to be registered again.
  5. Run sudo eddy restore <file> with the copied backup.
  6. Sign in, check that everything is there, then run sudo eddy uninstall on the old server.

Switching between the bundled and an external database #

Switching is a restore. There is no command for it.

Bundled to external. Create an empty database as described in Advanced: external database. Then:

  1. Run sudo eddy backup.
  2. Run sudo eddy config. Set DATABASE_URL to the external URL, DB_MODE=external and COMPOSE_FILE=compose.yml, and keep the POSTGRES_PASSWORD line as it is: the pgdata volume remembers that password, and you need it if you switch back. When you save, Eddyline restarts, starts against the empty database, and removes the bundled database container. The bundled data stays in the pgdata volume as a copy.
  3. Run sudo eddy restore <the backup from step 1>.

External to bundled. The external install has no compose.db.yml. The releases host serves only the latest release’s files, so run sudo eddy update to the latest version first, then download the file and check it right away:

  1. Run sudo eddy backup.

  2. Download and check the file:

    cd /tmp && curl -fsSLO https://get.eddyline.app/compose.db.yml -O https://get.eddyline.app/SHA256SUMS
    grep " compose.db.yml$" SHA256SUMS | sha256sum -c - && sudo install -m 644 compose.db.yml /opt/eddy/compose.db.yml
    
  3. Run sudo eddy config. Set DB_MODE=bundled and COMPOSE_FILE=compose.yml:compose.db.yml. Set POSTGRES_PASSWORD to the original password if you still have it from the bundled install, and DATABASE_URL=postgres://eddy:<that password>@db:5432/eddy. If the original is lost, the old pgdata volume rejects a new password. Remove the volume first: find it with sudo docker volume ls, where it is named after the install directory and ends in _pgdata (eddy_pgdata for the default /opt/eddy), then run sudo docker volume rm <name>. This deletes the old bundled data. That is safe only because step 1 made a backup, so check that the file exists, then pick a new password without special characters, such as the output of openssl rand -hex 24.

  4. Run sudo eddy restore <the backup from step 1>.

Edit this page