HedgeDoc installieren
CodiMD installieren
CodiMD ist ein Online-Texteditor für das gemeinschaftliche Bearbeiten von Texten. Die Texte können mit Hilfe von Markdown mit Hervorhebungen und Gliederung gestaltet werden.
CodiMD ist eine moderne Alternative zum Etherpad.
Mittlerweile ist das Projekt umbenannt in HackMD. HedgeDoc ist ein Fork des Projekts.
Vorbereitungen in HSAdmin
Nach des Hostsharing "best practice" soll für jede Anwendung eine eigene (Sub-)domain unter einem eigenen User geschaltet werden. Eine eigene Datenbank versteht sich von selbst...
CodiMD unterstützt unter anderem PostgreSQL als Datenbank, so dass wir hier eine Postgres-Datenbank verwenden.
Als Paketadmin xyz00 aufrufen:
hsscript -i
In der HSAdmin-Shell gibt man dann ein:
xyz00@hsadmin> user.add({set:{name:'xyz00-codimd', password:'mein-Geheimwort', shell:'/bin/bash'}}) xyz00@hsadmin> domain.add({set:{name:'md.hs-example.de', user:'xyz00-codimd'}}) xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_codimd', password:'anderes-Geheimwort'}}) xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_codimd', owner:'xyz00_codimd'}}) xyz00@hsadmin> bye
Voraussetzungen installieren
Etherpad benötigt nodejs in einer Version > 10.x. Die Installation erfolgt gemäss der Wiki-Anleitung: NodeJS
Als neu angelegter User xyz00-codimd:
cd touch .profile chmod u+x .profile mkdir tmp cd tmp/ wget https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh chmod u+x install.sh ./install.sh cd .. rm tmp/install.sh exit
Dann wieder als User xyz00-codimd anmelden:
npm install -g yarn nvm install 10
Damit sind yarn und node installiert.
CodiMD installieren
Weiter als User xyz00-codimd:
cd git clone https://github.com/codimd/server.git codimd cd codimd git checkout 1.6.0 // aktuelle Version auswählen, heute (im Mai 2020) ist das 1.6.0 ./bin/setup
An dieser Stelle werden die Dateien config.json und .sequelizerc angepasst.
Meine config.json:
{ "production": { "domain": "md.hs-example.de", "loglevel": "info", "hsts": { "enable": true, "maxAgeSeconds": 31536000, "includeSubdomains": true, "preload": true }, "csp": { "enable": true, "directives": { }, "upgradeInsecureRequests": "auto", "addDefaults": true, "addDisqus": false, "addGoogleAnalytics": false }, "db": { "username": "xyz00_codimd", "password": "anderes-Geheimwort", "database": "xyz00_codimd", "host": "localhost", "port": "5432", "dialect": "postgres" }, "protocolUseSSL": true, "allowPDFExport": true, "linkifyHeaderStyle": "gfm" } }
In der Datei .sequelizerc wird noch einmal die Datenbank definiert:
var path = require('path'); module.exports = { 'config': path.resolve('config.json'), 'migrations-path': path.resolve('lib', 'migrations'), 'models-path': path.resolve('lib', 'models'), 'url': 'postgres://xyz00_codimd:anderes-Geheimwort@localhost:5432/xyz00_codimd' }
Die Anwendung testweise starten:
cd $HOME/codimd npm start --production
Die Anwendung sollte fehlerfrei starten und die Datenbank initialisieren. Sie ist unter http://xyz00.hostsharing.net:3000 erreichbar.
Mit Ctrl-C abbrechen.
Apache und Passenger konfigurieren
cd cd doms/md.hs-example.de rm -rf subs/www subs-ssl/www app-ssl htdocs-ssl ln -s $HOME/codimd app-ssl ln -s $HOME/codimd/public htdocs-ssl echo "PassengerNodejs $(which node)" >.htaccess
Die Anwendung ist unter https://md.hs-example.de erreichbar.
Links
- https://demo.codimd.org/s/features
- https://github.com/codimd/server
- https://github.com/codimd/server/blob/master/docs/setup/manual-setup.md