HedgeDoc installieren

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

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

CodiMD ist eine moderne Alternative zum Etherpad.

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