HedgeDoc installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(CodiMD umbenannt in HedgeDoc)
KKeine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= CodiMD installieren =
= HedgeDoc 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.
'''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.


[[Datei:Codimd-screen.png|720px]]
[[Datei:Codimd-screen.png|720px]]


CodiMD ist eine moderne Alternative zum [[Etherpad_Installieren|Etherpad]].
[https://hedgedoc.org/ HedgeDoc] ist eine moderne Alternative zum [[Etherpad_Installieren|Etherpad]].


Mittlerweile ist das Projekt umbenannt in [https://hedgedoc.org/ HedgeDoc]
Das Projekt hieß auch mal CodiMD und HackMD, die Geschichte ist hier nachzulesen: https://hedgedoc.org/history/


== Vorbereitungen in HSAdmin ==
== Vorbereitungen in HSAdmin ==
Zeile 13: Zeile 13:
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...
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.
HedgeDoc unterstützt unter anderem PostgreSQL als Datenbank, so dass wir hier eine Postgres-Datenbank verwenden.


Als Paketadmin ''xyz00'' aufrufen:<pre>hsscript -i</pre>
Als Paketadmin ''xyz00'' aufrufen:<syntaxhighlight lang="bash">hsscript -i</syntaxhighlight>


In der HSAdmin-Shell gibt man dann ein:
In der HSAdmin-Shell gibt man dann ein:


<pre>
<syntaxhighlight lang="bash">
xyz00@hsadmin> user.add({set:{name:'xyz00-codimd', password:'mein-Geheimwort', shell:'/bin/bash'}})
xyz00@hsadmin> user.add({set:{name:'xyz00-hedgedoc', password:'mein-Geheimwort', shell:'/bin/bash'}})
xyz00@hsadmin> domain.add({set:{name:'md.hs-example.de', user:'xyz00-codimd'}})
xyz00@hsadmin> domain.add({set:{name:'hedgedoc.hs-example.de', user:'xyz00-hedgedoc'}})
xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_codimd', password:'anderes-Geheimwort'}})
xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_hedgedoc', password:'anderes-Geheimwort'}})
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_codimd', owner:'xyz00_codimd'}})
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_hedgedoc', owner:'xyz00_hedgedoc'}})
xyz00@hsadmin> bye
xyz00@hsadmin> bye
</pre>
</syntaxhighlight>


== Voraussetzungen installieren ==
== Voraussetzungen installieren ==


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


Als neu angelegter User ''xyz00-codimd'':
Als neu angelegter User ''xyz00-hedgedoc'':


<pre>
<syntaxhighlight lang="bash">
    cd
cd
    touch .profile
touch .profile
    chmod u+x .profile  
chmod u+x .profile  
    mkdir tmp
curl https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
    cd tmp/
exit
    wget https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh
</syntaxhighlight>
    chmod u+x install.sh
    ./install.sh
    cd ..
    rm tmp/install.sh
    exit
</pre>


Dann wieder als User ''xyz00-codimd'' anmelden:
Dann wieder als User ''xyz00-hedgedoc'' anmelden:


<pre>
<syntaxhighlight lang="bash">
    npm install -g yarn
nvm install 16
    nvm install 10
npm install -g yarn
</pre>
</syntaxhighlight>


Damit sind ''yarn'' und ''node'' installiert.
Damit sind ''yarn'' und ''node'' installiert.


== CodiMD installieren ==
== HedgeDoc installieren ==


Weiter als User ''xyz00-codimd'':
Weiter als User ''xyz00-hedgedoc'':


<pre>
<syntaxhighlight lang="bash">
    cd
cd
    git clone https://github.com/codimd/server.git codimd
git clone https://github.com/hedgedoc/hedgedoc.git hedgedoc
    cd codimd
cd hedgedoc
    git checkout 1.6.0    // aktuelle Version auswählen, heute (im Mai 2020) ist das 1.6.0
git checkout 1.6.0    // aktuelle Version auswählen, heute (im Juni 2022) ist das 1.9.3
    ./bin/setup
source ~/.profile
</pre>
./bin/setup
yarn install --frozen-lockfile
yarn build
</syntaxhighlight>


An dieser Stelle werden die Dateien ''config.json'' und ''.sequelizerc'' angepasst.
An dieser Stelle wird die Datei ''config.json'' angepasst.


Meine ''config.json'':
Meine ''config.json'':


<pre>
<syntaxhighlight lang="json" line>
    {
{
        "production": {
"production": {
            "domain": "md.hs-example.de",
  "domain": "hedgedoc.hs-example.de",
            "loglevel": "info",
  "loglevel": "info",
            "hsts": {
  "hsts": {
                "enable": true,
    "enable": true,
                "maxAgeSeconds": 31536000,
    "maxAgeSeconds": 31536000,
                "includeSubdomains": true,
    "includeSubdomains": true,
                "preload": true
    "preload": true
            },
  },
            "csp": {
  "csp": {
                "enable": true,
    "enable": true,
                "directives": {
    "directives": {
                },
    },
                "upgradeInsecureRequests": "auto",
    "upgradeInsecureRequests": "auto",
                "addDefaults": true,
    "addDefaults": true,
                "addDisqus": false,
    "addDisqus": false,
                "addGoogleAnalytics": false
    "addGoogleAnalytics": false
            },
  },
            "db": {
  "db": {
                "username": "xyz00_codimd",
    "username": "xyz00_hedgedoc",
                "password": "anderes-Geheimwort",
    "password": "anderes-Geheimwort",
                "database": "xyz00_codimd",
    "database": "xyz00_hedgedoc",
                "host": "localhost",
    "host": "localhost",
                "port": "5432",
    "port": "5432",
                "dialect": "postgres"
    "dialect": "postgres"
            },
  },
            "protocolUseSSL": true,
    "protocolUseSSL": true,
            "allowPDFExport": true,
    "allowPDFExport": true,
            "linkifyHeaderStyle": "gfm"
    "linkifyHeaderStyle": "gfm"
        }
  }
    }
</pre>
 
In der Datei ''.sequelizerc'' wird noch einmal die Datenbank definiert:
 
<pre>
    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'
}
}
</pre>
</syntaxhighlight>


Die Anwendung testweise starten:
Die Anwendung testweise starten:


<pre>
<syntaxhighlight lang="bash">
    cd $HOME/codimd
cd $HOME/hedgedoc
    npm start --production
npm start --production
</pre>
</syntaxhighlight>


Die Anwendung sollte fehlerfrei starten und die Datenbank initialisieren. Sie ist unter ''http://xyz00.hostsharing.net:3000'' erreichbar.
Die Anwendung sollte fehlerfrei starten und die Datenbank initialisieren. Sie ist unter ''http://xyz00.hostsharing.net:3000'' erreichbar.
Zeile 132: Zeile 117:
== Apache und Passenger konfigurieren ==
== Apache und Passenger konfigurieren ==


<pre>
<syntaxhighlight lang="bash">
    cd
cd
    cd doms/md.hs-example.de
cd doms/hedgedoc.hs-example.de
    rm -rf subs/www subs-ssl/www app-ssl htdocs-ssl
rm -rf subs/www subs-ssl/www app-ssl htdocs-ssl
    ln -s $HOME/codimd app-ssl
ln -s $HOME/hedgedoc app-ssl
    ln -s $HOME/codimd/public htdocs-ssl
ln -s $HOME/hedgedoc/public htdocs-ssl
    echo "PassengerNodejs $(which node)" >.htaccess
echo "PassengerNodejs $(which node)" >.htaccess
</pre>
</syntaxhighlight>


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


== Links ==
== Links ==


* https://demo.codimd.org/s/features
* https://demo.hedgedoc.org/s/features
* https://github.com/codimd/server
* https://github.com/hedgedoc/hedgedoc/releases
* https://github.com/codimd/server/blob/master/docs/setup/manual-setup.md
* https://docs.hedgedoc.org/setup/manual-setup/
* [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/hedgedoc Ansible Playbook für Hostsharing]


----
----
Zeile 155: Zeile 141:
[[Kategorie:Passenger]]
[[Kategorie:Passenger]]
[[Kategorie:NodeJS]]
[[Kategorie:NodeJS]]
[[Kategorie:Ansible Playbook]]

Aktuelle Version vom 14. Juni 2024, 12:05 Uhr

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