HedgeDoc installieren

Aus Hostsharing Wiki
(Weitergeleitet von CodiMD installieren)
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.

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