Wie kann ich eine Rails-App auf einem VPS (Virtual Private Server) oder einem dedizierten Server bereitstellen? Es wäre schön, einen leicht zu befolgenden Führer zu haben.
Ich kenne Skripte, um den Prozess zu automatisieren, aber ich denke, es ist besser, alles unter Kontrolle zu haben, um den Prozess besser zu verstehen.
Ich habe erfolgreich eine umfangreiche Rails-Anwendung für Linode oder Digital Ocean mithilfe dieser Technologien bereitgestellt:
Dies sind die Schritte, die für mich funktionieren:
Erstellen Sie eine neue virtuelle Maschine
Befolgen Sie die Installationsanweisungen Ihres Hostings, sei es Linode oder Digital Ocean, um den Knoten zu erstellen und einzurichten.
Einrichtungsdatum
Pakete aktualisieren
Benutzer erstellen
Richten Sie die SSH-Schlüsselauthentifizierung ein
Lokal:
Auf dem Server:
Richten Sie SSH ein
Firewall einrichten
Richten Sie fail2ban ein
Richten Sie ein, wenn Sie genug freien Speicher haben, weil es dazu neigt, es zu essen.
Git installieren
Installieren Sie rbenv
Installiere Ruby
Installieren Sie nginx + Passenger
PostgreSQL installieren
Installieren Sie node.js
Zum Vorkompilieren von Assets erforderlich.
Bundler installieren
Erstellen Sie den Benutzer in PostgreSQL
Stellen Sie den Code bereit * Auf dem Server: * sudo mkdir -p /srv/yoursite.com * sudo chown deploy: deploy /srv/yoursite.com * Auf deiner Entwicklungsmaschine: * bundle exec cap production deploy: check (es wird ein Fehler ausgegeben, weil die Datenbank nicht gefunden wird) * Auf dem Server: * cd /srv/yoursite.com/shared/config * vim database.yml (Einfügen der Datenbankkonfiguration) * vim Geheimnisse.Yml (fügen Sie Ihre geheime Konfiguration ein) * Auf deiner Entwicklungsmaschine: * bündeln Sie die Exec Cap Produktion * bundle exec cap production wann immer: update_contab
Konfigurieren Sie logrotate
Ich habe meine Rails-Anwendung auf meinen Produktionsservern (es ist ein Cluster) mit Capistrano eingesetzt, aber ich fand, dass Capistrano ein bisschen komplex ist und manchmal sogar Unruhestifter wurde ... Also schrieb ich mein Deployment-Skript per Bash-Shell-Skript.
Ich habe es mit einer kurzen Anleitung auf github gestellt: deploy_rails
Tags und Links ruby-on-rails-3 ruby-on-rails vps