HedgeDoc installieren

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

HedgeDoc installieren

HedgeDoc 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-screen.png

HedgeDoc ist eine moderne Alternative zum Etherpad.

Das Projekt hieß auch mal CodiMD und HackMD, die Geschichte ist hier nachzulesen: https://hedgedoc.org/history/

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...

HedgeDoc 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-hedgedoc', password:'mein-Geheimwort', shell:'/bin/bash'}})
xyz00@hsadmin> domain.add({set:{name:'hedgedoc.hs-example.de', user:'xyz00-hedgedoc'}})
xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_hedgedoc', password:'anderes-Geheimwort'}})
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_hedgedoc', owner:'xyz00_hedgedoc'}})
xyz00@hsadmin> bye

Voraussetzungen installieren

HedgeDoc benötigt nodejs in einer Version >= 16.x. Die Installation erfolgt gemäss der Wiki-Anleitung: NodeJS

Als neu angelegter User xyz00-hedgedoc:

cd
touch .profile
chmod u+x .profile 
curl https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
exit

Dann wieder als User xyz00-hedgedoc anmelden:

nvm install 16
npm install -g yarn

Damit sind yarn und node installiert.

HedgeDoc installieren

Weiter als User xyz00-hedgedoc:

cd
git clone https://github.com/hedgedoc/hedgedoc.git hedgedoc
cd hedgedoc
git checkout 1.6.0    // aktuelle Version auswählen, heute (im Juni 2022) ist das 1.9.3
source ~/.profile
./bin/setup
yarn install --frozen-lockfile
yarn build

An dieser Stelle wird die Datei config.json angepasst.

Meine config.json:

{
"production": {
  "domain": "hedgedoc.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_hedgedoc",
    "password": "anderes-Geheimwort",
    "database": "xyz00_hedgedoc",
    "host": "localhost",
    "port": "5432",
    "dialect": "postgres"
  },
    "protocolUseSSL": true,
    "allowPDFExport": true,
    "linkifyHeaderStyle": "gfm"
  }
}

Die Anwendung testweise starten:

  cd $HOME/hedgedoc
  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/hedgedoc.hs-example.de
  rm -rf subs/www subs-ssl/www app-ssl htdocs-ssl
  ln -s $HOME/hedgedoc app-ssl
  ln -s $HOME/hedgedoc/public htdocs-ssl
  echo "PassengerNodejs $(which node)" >.htaccess

Die Anwendung ist unter https://hedgedoc.hs-example.de erreichbar.

Links