+++ title = "services/hedgedoc" taxonomies.categories = [ "services" ] +++ runs on: parsons purpose: writing things down, collaboratively configuration: [nixfile](https://gitlab.infra4future.de/infra/haccfiles/-/blob/main/services/hedgedoc-hacc.nix) login: SSO via keycloak ### configuration details * hegedoc was once called codiMD, so container, config and users are still called codimd. **Do NOT change this** unless you're activly migrating the service (with container, database and all) to the new name. Everything userfacing is already renamed. * there is a second instance named **pad-i4f** running for embedding into nextcloud. # Troubleshooting ## Basic Usually if hedgedoc dies, it's because postgres wasn't ready yet and the translation layer dosen't understand the wait message. Just restart hedgedoc in the container: ``` sudo nixos-container root-login codimd systemctl restart hedgedoc ``` Sometimes restarting nginx fixes the problem. To do so run: ``` sudo systemctl restart nginx ``` As a last basic step try restarting the container as a whole: ``` sudo systemctl restart container@codimd ``` ### Advanced log into the container and take a look at the logs sudo nixos-container root-login codimd journalctl -e #### fixing failed database upgrades In some cases, HedgeDoc might apply migrations without correctly saving the progress. In these cases, HedgeDoc will refuse to start with “already exists”-errors like ERROR: type "enum_Notes_permission" already exists. Get the name of the failing migration and append .js to it. For example, if you encounter this error == 20180306150303-fix-enum: migrating ======= ERROR: type "enum_Notes_permission" already exists the name of the failed migration would be 20180306150303-fix-enum.js. The SQL-statement may look like this: INSERT INTO "SequelizeMeta" (name) VALUES ('20180306150303-fix-enum.js'); Make sure HedgeDoc does not run and insert the name into the SequelizeMeta table. Enter the container switch to the postgres user, open psql and commect to the codimd dataase: su postgres psql \l \c codimd [ RUN adjusted SQL STAMEMENT from above ] \q Start HedgeDoc again and observe if it starts correctly. It may be necessary to repeat this process and insert multiple migrations into the SequelizeMeta table.