No dobrze, czyli obejrzałeś kilka screencastów, przerobiłeś parę tutoriali i postanowiłeś zrobić swoją własną aplikację Ruby on Rails?
Lokalnie wszystko działa, mongrel serwuje (wolno, bo wolno) strony, baza przetwarza rekordy, testy przechodzą w 100%.
Skończyłeś aplikację i pojawia się problem: Na jakim serwerze ją umieścić i jak go skonfigurować?
Zaczynasz od Dreamhosta… po tygodniu walki z killowanymi procesami odpuszczasz.
Wszyscy mówią: “serwer dedykowany”… i niestety mają rację. Jeśli Twoja aplikacja kierowana jest na rynek US – polecam SliceHost, a jeśli startujesz na Polskę/Europę – Hetzner.
OK, to teraz tylko jeden problem: Jak z czystej instalacji Ubuntu zrobić serwer Railsowy?
Z całej tej przygody jest to wbrew pozorom najłatwiejsze…
Deprec pozwala w 10 minut ustawić czyściutką instalację Ubuntu. Oto jak:
- Upewniamy się, że nasza aplikacja jest dostępna w repozytorium SVN (jakże mogłoby być inaczej)
- Upewniamy się, że w config/database.yml dane serwera dla production to localhost/root/[bez_hasła]
- Logujemy się na serwer i tworzymy usera (np. deploy) nadajemy mu prawa sudo (dodajemy jego login w /etc/sudoers)
- Logujemy się na serwer jako wcześniej stworzony user (deploy) i robimy testowego checkouta z repozytorium podając usera i hasło (aby zostało zapamiętane) – jak zacznie ściągać można anulować Ctrl-C i usunąć tymczasowy katalog
- Ściągamy na domowym komputerze gem deprec (gem install -y deprec)
- W katalogu głównym naszej aplikacji uruchamiamy ‘deprec –apply-to .’ (z kropką)
- Edytujemy plik config/deploy.rb dodając odpowiednie wartości dla domain (adres/IP serwera), application (nazwa aplikacji – dowolna) i repository (ścieżka do repozytorium SVN)
- No i po tych krótkich przygotowania już tylko sam lukier – uruchamiamy na domowym komputerze w katalogu głównym aplikacji po kolei:
cap install_rails_stack – instaluje wszystko – od apache do gemów
cap setup – ustawia naszą aplikację
cap deploy_with_migrations – wrzuca aplikację na serwer i migruje bazę
cap restart_apache – wiadomo…
- Przy odrobinie szczęścia i szybkim serwerze po 5 minutach aplikacja jest już LIVE!
Jeden z ostatnich argumentów przeciwników RoR pada… instalacja i deployment serwisów w Ralisach przy użyciu deprec i capistrano to kaszka z mleczkiem ;-)