the rest is sufficiently out of date that keeping the documentation would be actively harmful.
2.3 KiB
+++ title = "services/hedgedoc" taxonomies.categories = [ "services" ] +++
runs on: parsons purpose: writing things down, collaboratively configuration: nixfile 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.