Self-hosting
Moving to a new server
- On the old server, run
sudo eddy backup. Copy the new file in/opt/eddy/backups/, and/opt/eddy/.env, to the new server. - Point the domain at the new server, or use a new domain.
- On the new server, run the installer with the same options as before. It sets up a fresh install with new secrets.
- Run
sudo eddy config. ReplaceAUTH_SECRETwith 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_URLandAUTH_URLhold the new address, and the callback URLs for Google or OpenID Connect need to be registered again. - Run
sudo eddy restore <file>with the copied backup. - Sign in, check that everything is there, then run
sudo eddy uninstallon 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:
- Run
sudo eddy backup. - Run
sudo eddy config. SetDATABASE_URLto the external URL,DB_MODE=externalandCOMPOSE_FILE=compose.yml, and keep thePOSTGRES_PASSWORDline as it is: thepgdatavolume 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 thepgdatavolume as a copy. - 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:
-
Run
sudo eddy backup. -
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 -
Run
sudo eddy config. SetDB_MODE=bundledandCOMPOSE_FILE=compose.yml:compose.db.yml. SetPOSTGRES_PASSWORDto the original password if you still have it from the bundled install, andDATABASE_URL=postgres://eddy:<that password>@db:5432/eddy. If the original is lost, the oldpgdatavolume rejects a new password. Remove the volume first: find it withsudo docker volume ls, where it is named after the install directory and ends in_pgdata(eddy_pgdatafor the default/opt/eddy), then runsudo 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 ofopenssl rand -hex 24. -
Run
sudo eddy restore <the backup from step 1>.