Bereitstellen einer DocPad-Anwendung unter Ubuntu 14.04

Einführung

In diesem Tutorial erfahren Sie, wie Sie eine mit https://docpad.org [DocPad] erstellte Anwendung auf dem Standard-64-Bit-Ubuntu-14.04-Image von DigitalOcean bereitstellen. DocPad ist ein statischer Site-Generator auf Basis von Node.js, der allein oder zusammen mit einer Node.js-App zum Steuern des Inhalts Ihrer Site verwendet werden kann.

Nachdem Sie dieses Tutorial gelesen haben, sollten Sie DocPad auf Port 80 als Nicht-Root-Benutzer bereitstellen können und sicherstellen, dass Ihre DocPad-App bei einem Absturz automatisch neu gestartet wird.

Voraussetzungen

Bevor wir beginnen, benötigen Sie Folgendes:

Sie sollten alles in diesem Tutorial als * docpad * Benutzer tun.

Schritt 1 - Installieren von Git, Node.js und NPM

In diesem Abschnitt werden die Voraussetzungen für DocPad installiert.

Stellen Sie sicher, dass die Paketlisten Ihres Servers aktualisiert sind:

sudo apt-get update

Installieren Sie Git, mit dem Sie eine Standard-DocPad-Anwendung oder eine eigene benutzerdefinierte Anwendung von einem bereitstellen können Git-Repository.

sudo apt-get install git

Installieren Sie Node.js als Ihren Webserver:

sudo apt-get install nodejs

Beachten Sie, dass wir statt installieren.

Node.js ist jetzt über die Befehlszeile mit dem Befehl + nodejs + verfügbar.

Wir möchten auch, dass es uns mit dem Befehl zur Verfügung steht. Dazu können wir eine symbolische Verknüpfung vom Knoten zum Node.js erstellen. Dies ist erforderlich, um sicherzustellen, dass Ihre DocPad-Anwendung alle Plugin-Abhängigkeiten ordnungsgemäß herunterladen kann. Einige von ihnen rufen Folgendes auf:

sudo ln -s /usr/bin/nodejs /usr/bin/node

Weitere Informationen und alternative Möglichkeiten zum Installieren von Node.js finden Sie im Artikel https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-an-ubuntu-14-04-server [So installieren Sie Node.js auf einem Ubuntu 14.04-Server].

Wir müssen die Befehlszeilenschnittstelle für https://www.npmjs.com [Paketmanager für Node] installieren, um unsere Abhängigkeiten für Node.j herunterzuladen:

sudo apt-get install npm

Schritt 2 - Binden von Node.js an Port 80

Wir möchten, dass unsere Anwendung auf Port 80 verfügbar ist. Standardmäßig werden DocPad-Anwendungen auf Port 9778 ausgeführt. In diesem Schritt binden wir Node.js an Port 80 und in einem späteren Schritt konfigurieren wir unsere DocPad-Anwendung so, dass sie auch auf Port 80 ausgeführt wird. Auf diese Weise können wir von zu Ihrer Website gelangen.

Stellen Sie zunächst sicher, dass Folgendes installiert ist, um Node.js an Port 80 zu binden:

sudo apt-get install libcap2-bin

Auf den meisten Systemen ist dies bereits installiert. Binden Sie dann Node.js an Port 80:

sudo setcap cap_net_bind_service=+ep /usr/bin/nodejs

Später im Tutorial werden wir unsere DocPad-Anwendung für die Verwendung von Port 80 konfigurieren.

Schritt 3 - Installieren von DocPad

Als nächstes werden wir NPM verwenden, um DocPad selbst zu installieren.

sudo npm install -g docpad

Bereinigen Sie die Berechtigungen im Home-Verzeichnis des * docpad * -Benutzers, da wir mit sudo DocPad installiert haben:

sudo chown -R docpad:docpad ~

Wenn Sie einen anderen Benutzer zum Ausführen von DocPad ausgewählt haben, ersetzen Sie den Benutzer und die Gruppe durch Ihren eigenen Benutzernamen.

Schritt 4 - DocPad-Anwendung erstellen

In diesem Abschnitt wird Ihre DocPad-Anwendung auf dem Server eingerichtet. Sie können ein vorhandenes Projekt aus einem Git-Repository verwenden oder eine neue Testanwendung von Grund auf erstellen.

Erstellen Sie ein Verzeichnis für Ihr Projekt. Es kann alles heißen, aber in diesem Fall werden wir verwenden. Verschieben Sie dann in das Verzeichnis.

mkdir ~/
cd ~/

[[step-4a-– downloading-existing-docpad-application-and-its-dependencies]] ==== Schritt 4a - Herunterladen der vorhandenen DocPad-Anwendung und ihrer Abhängigkeiten

Wenn Sie eine vorhandene DocPad-Anwendung haben, führen Sie diese Schritte aus, um sie auf Ihrem Server bereitzustellen. Zuerst müssen wir unsere fertige Anwendung aus dem Git-Repository herunterladen:

git clone

Als Nächstes müssen wir alle Abhängigkeiten unserer DocPad-Anwendung herunterladen:

npm install

Wenn Ihre Anwendung auch Bower-Komponenten verwendet, führen Sie Folgendes aus:

bower install

Schritt 4b - Erstellen einer neuen DocPad-Anwendung

Wenn Sie noch keine DocPad-Anwendung haben, können Sie eine neue erstellen. Initialisieren Sie im Anwendungsverzeichnis eine neue DocPad-Anwendung:

docpad run

Wenn Sie DocPad zum ersten Mal ausführen, beantworten Sie die interaktiven Dialogfragen wie gewünscht:

Before we continue, have you read and agree to DocPad's Terms of Service (http://bevry.me/tos) and Privacy Policy (http://bevry.me/privacy)? [Y/n]

Would you like to subscribe to our newsletter and stay up to date with the latest releases and tutorials? [Y/n]

Wir werden dann aufgefordert, ein Skelett auszuwählen, mit dem unsere App gerüstet werden soll. Wählen wir "+ Twitter Bootstrap " (Option " 4 +"), um eine Beispielwebsite für uns zu erstellen, und wir können sofort etwas sehen, das im Browser funktioniert.

Warten Sie nun einige Minuten, während DocPad Ihre App erstellt und startet. Sie sollten diese Ausgabe am Ende einer erfolgreichen Bereitstellung sehen:

info: Installed the skeleton succesfully
notice: Shutting down the global DocPad, and starting up the local
info: Welcome to DocPad v6.63.8 (local installation: /home/docpad/docpad_test/node_modules/docpad)
info: Contribute: http://docpad.org/docs/contribute
info: Plugins: cleanurls, coffeescript, downloader, eco, less, livereload, marked, partials, related, stylus, text
info: Environment: development
info: DocPad listening to http://0.0.0.0:9778/ on directory /home/docpad/docpad_test/out
info: LiveReload listening to new socket on channel /docpad-livereload
info: Generating...
info: Generated 168/173 files in 15.012 seconds
info: Watching setup starting...
info: Watching setup
info: The action completed successfully

Der Vorgang läuft in Ihrem Terminalfenster weiter.

Besuchen Sie jetzt Ihre IP-Adresse oder Domain bei Port 9778:

  • + http: //example.com: 9778 +

Sie sollten die Standard-DocPad-Homepage sehen:

Wir werden die Anwendung im nächsten Schritt so aktualisieren, dass sie auf Port 80 ausgeführt wird, sodass Benutzer beim Besuch Ihrer Domain keinen Port angeben müssen.

Sie können den DocPad-Server jetzt stoppen, indem Sie STRG + C drücken.

Wenn Sie die Dateien mit "+ ls +" im Anwendungsverzeichnis anzeigen möchten, sollten die folgenden generierten Dateien und Verzeichnisse mit dem Bootstrap-Gerüst angezeigt werden:

docpad.coffee  LICENSE.md  node_modules  out  package.json  Procfile  README.md  src

Der Quellcode unserer Anwendung befindet sich in.

Schritt 5 - DocPad für die Ausführung auf Port 80 konfigurieren

Sie müssen der Konfigurationsdatei die folgende Zeile hinzufügen, damit DocPad Ihre Anwendung auf Port 80 ausführt. Öffnen Sie zuerst die Datei zum Bearbeiten:

nano ~//docpad.coffee

Fügen Sie die Zeile + port: 80 + im Block + docpadConfig = {} + hinzu. Die Zeile muss sich auf der ersten Ebene innerhalb des Blocks befinden. Sie können es als erste Zeile nach + docpadConfig = {+ einfügen.

docpadConfig = {

. . .



. . .

}

Stellen Sie sicher, dass Sie sich in Ihrem Anwendungsverzeichnis befinden. Führen Sie DocPad mit dem folgenden Befehl aus. Wenn Sie DocPad zum ersten Mal auf dem Server ausführen, akzeptieren Sie die Nutzungsbedingungen und stellen Sie sicher, dass Ihre Anwendung ausgeführt werden kann:

./node_modules/docpad/bin/docpad run

Nachdem die App erfolgreich ausgeführt wurde, sollten Sie in der Lage sein, zu Ihrer Website-URL zu navigieren und Ihre Website im Browser anzuzeigen.

Wenn Sie es nicht finden können, navigieren Sie zu. Wenn Sie es dort sehen, liegt es daran, dass Ihr Port in Ihrer Datei "+ docpad.coffee " nicht richtig konfiguriert wurde. Der Port muss auf der ersten Ebene des Objekts ` docpadConfig +` angegeben werden.

Beenden Sie nun den Vorgang mit Strg + C. Im nächsten Abschnitt machen wir die Anwendung zu einem Dienst, anstatt sie jedes Mal über die Befehlszeile starten zu müssen.

Schritt 6 - DocPad als Dienst mit Upstart ausführen

In diesem letzten Schritt erstellen wir ein Upstart-Skript für die DocPad-Anwendung. Auf diese Weise können Sie den Start, das Stoppen, den Neustart usw. ausführen. Befehle für die Anwendung über die Befehlszeile. Es wird im Hintergrund Ihres Servers ausgeführt, sodass Sie keine SSH-Verbindung aufrecht erhalten müssen. Wir werden das System auch so konfigurieren, dass die Anwendung automatisch neu gestartet wird, wenn sie abstürzt oder wenn Ihr Server neu startet.

Erstellen Sie das Upstart-Skript:

sudo nano /etc/init/.conf

Fügen Sie den folgenden Inhalt hinzu:

description ""

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

# If the process quits unexpectedly trigger a respawn
respawn

env HOME=/home//
chdir /home//

setuid
setgid

exec /home//node_modules/docpad/bin/docpad run
  • + description +: Geben Sie eine Beschreibung für diesen Dienst ein

  • + env HOME +: Das Home-Verzeichnis Ihres DocPad-Benutzers

  • + chdir +: Das Anwendungsstammverzeichnis

  • + setuid + und + setgid +: Ihr DocPad-Benutzer (die Gruppe sollte denselben Namen haben)

  • + exec +: Der vollständige Pfad zu der Version von DocPad, die ausgeführt werden soll. Dies entspricht dem Befehl, mit dem wir die Anwendung früher gestartet haben, mit der Ausnahme, dass der vollständige Pfad verwendet wird

Weitere Informationen zu Upstart finden Sie unter this article.

Starten Sie Ihre Anwendung über die Befehlszeile. Wenn Sie die Datei nicht als "+ .conf +" bezeichnet haben, sollten Sie den entsprechenden Dienstnamen verwenden:

sudo service  start

Warten Sie ca. 30 Sekunden, bis Ihre DocPad-Anwendung erstellt wurde. Diese Zeit hängt von der Größe Ihrer Anwendung ab und dauert ungefähr so ​​lange wie beim manuellen Starten mit +. / node_modules / docpad / bin / docpad run +.

Navigieren Sie nach einigen Sekunden zu Ihrer Domain oder IP-Adresse in Ihrem Browser. Sie sollten Ihre mit DocPad erstellte Website sehen.

Sie sind fertig! Wenn Sie möchten, senden Sie ein "+ sudo reboot +" an Ihren Server und vergewissern Sie sich, dass die Anwendung automatisch wiederhergestellt wird.

Fazit

Sie sollten nun in der Lage sein, eine neue DocPad-Anwendung zu erstellen oder eine vorhandene zu klonen, sie auf Ihrem Ubuntu-Server bereitzustellen und sie in Ihrer Domäne zu besuchen.

Informationen zum Erstellen Ihrer Website mit DocPad finden Sie unter documentation.