Features

Installationsanleitung

tar cf /tmp/codimd.tar app.js config.json lib locales node_modules package.json public tmp .sequelizerc sequelize-config.json

# apt install libfontconfig1 --- für PDF-Export
# mkdir /srv/www/n.jo-so.de
# adduser --system --shell /usr/sbin/nologin --home /srv/www/n.jo-so.de \
  --disabled-password --disabled-login codimd
# tar xf codimd.tar -C ~codimd
# chown codimd ~codimd/public/uploads ~codimd/tmp
# sudo -u postgres sh -c 'createuser codimd \
  && createdb -l C.UTF-8 -O codimd -T template0 notes "codimd @ n.jo-so.de"'
# sudo -u codimd node_modules/.bin/sequelize db:migrate

Datenbank

https://dba.stackexchange.com/questions/33943/granting-access-to-all-tables-for-a-user#33960

\set ON_ERROR_STOP on

CREATE DATABASE notes ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C'
 template=template0;
COMMENT ON DATABASE notes IS 'codimd @ n.jo-so.de';

\c notes

REVOKE CONNECT ON DATABASE notes FROM PUBLIC;
REVOKE ALL ON ALL TABLES IN SCHEMA public FROM PUBLIC;

CREATE ROLE codimd WITH LOGIN;

GRANT CONNECT ON DATABASE notes TO codimd;
ALTER DEFAULT PRIVILEGES FOR USER codimd IN SCHEMA public
  GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO codimd;

Systemd

[Unit]
Description=Application service for collaborative markdown notes
Documentation=https://demo.codimd.org/
After=systemd-networkd.service network.target

[Service]
Environment=NODE_ENV=production
ExecStart=/usr/bin/node app.js
ExecStartPost=+/bin/sh -c 'sleep 3; chmod g+w /run/codimd/socket && chown :www-data /run/codimd/socket'
RuntimeDirectory=codimd
WorkingDirectory=/srv/www/n.jo-so.de
User=codimd

[Install]
WantedBy=multi-user.target

https://nginx.org/en/docs/http/websocket.html

Windows

npm install -g windows-build-tools
npm install
npm run build
node app.js

Impressum

public/docs/impressum.md und e public/views/codimd/header.ejs

CodiMD soll kein Wiki werden

https://github.com/hackmdio/codimd/issues/969