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

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