-
Notifications
You must be signed in to change notification settings - Fork 12
Deployment
Das Deployment läuft mittels Capistrano.
useradd -m -d 'SERVER_DIR' -s /bin/bash SERVER_USER
z.B.
useradd -m -d /var/www/kavau -s /bin/bash kavau
danach den eigenen ssh public key auf dem Server beim SERVER_USER hinterlegen (unter ~/.ssh/authorized_keys, Zugriffsrechte für .ssh 700, für authorized_keys 600
Datenbankuser und Datenbank anlegen (postgresql) - auf debianoiden Systemen als user postgres
createuser DB_USER
kein Superuser, Keine Rechte zum Anlegen von Datenbanken oder Usern
createdb -O DB_USER kavau
psql_password für den DB_USER setzten, Extension hstore aktivieren
psql kavau
\password DB_USER
CREATE EXTENSION hstore;
als SERVER_USER rvm installieren:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
# An dieser Stelle muß die Umgebung neu geladen werden:
# (ausloggen aus dem Server und einloggen als SERVER_USER tuts auch)
source .bashrc
source .profile
rvm install ruby-2.2.3
rvm use ruby-2.2.3@global
gem install bundler
z.B. in .bashrc - for der Abfrage ob es eine interaktive shell ist, im zweifelsfall einfach die Einträge ganz an den Anfang stellen
secret und token können mittels "rake secret" (lokal ausführen) generiert werden.
export SECRET_KEY_BASE="very long base64 random secret key"
export TOKEN_KEY="very long base64 random key for encryption" #save the key very securely
export HOST="URL"
und eine passende Apache / nginx ... config anlegen für die Domain. Das hängt zu stark vom verwendeten Webserver ab, als dass ich hier mehr dazu schreiben wollte.
server 'SERVER_URL', user: 'SERVER_USER', roles: %w(web app db), primary: true
set :user, :SERVER_USER
set :branch, :production
set :stage, :production
set :servername, '(SUB)DOMAIN_NAME'
set :rails_env, :production
set :deploy_to, 'SERVER_DIRECTORY'
cap production deploy:check
legt dann die benötigten Verzeichnisse + Dateien an.
dann auf dem Server im Verzeichins SERVER_DIR/shared/config die Datenbank-Konfiguration anpassen:
database.yml
production:
adapter: postgresql
username: DB_USER
pool: 5
timeout: 5000
host: localhost
database: DB_NAME
password: DB_PASSWORD
auf dem lokalen Recner sollte dann
cap production deploy
den Rest erledigen.
Dafür als SERVER_USER auf dem server einloggen.
cd current
RAILS_ENV=production bundle exec rails console
u = User.new(login: 'LOGIN', first_name: 'VORNAME', name: 'NACHNAME', phone: 'TELEFON-NR', role: 'admin', email: 'EMAIL', password: 'PASSWORT', password_confirmation: 'PASSWORT')
u.save
wenn das User anlegen funktioniert erhälst du als Rückgabe auf den Befehl
=> true
schlägt es aber fehl (false als Rückgabe) dann schau dir die Fehlermeldungen an mittels:
u.errors.messages
um fehlerhafte Attribute zu korrigieren funktioniert die Syntax:
u.ATTRIBUT='Neuer Wert'
also z.B.
u.email = '[email protected]'
speichern mit
u.save
Danach solltest du dich einloggen können und alles weitere über das Web-Interface erledigen können.