Jak wdrożyć aplikację meteor na własnym serwerze?

Jak wdrożyć aplikację meteor na własnym serwerze?

Flavour 1: serwer programistyczny i wdrożeniowy są takie same;

Flavour 2: Serwer programistyczny to jeden (może mój localhost), a serwer wdrożeniowy to drugi (może VPS w chmurze);

Flavour 3: chcę zrobić domenę "meteor hosting", tak jak "meteor.com". czy to możliwe? Jak?

Update :

Używam Ubuntu i nie chcę "demeteoryzować" aplikacji. Dziękuję.

Author: J. Bruni, 2013-07-12

7 answers

Dokumentacja Meteor obecnie mówi:

"[...] musisz podać węzeł.js 0.8 i serwer MongoDB. Możesz następnie uruchom aplikację poprzez wywołanie węzła, określając port HTTP do nasłuchu aplikacji i punktu końcowego MongoDB."


Tak więc, wśród kilku sposobów instalacji Node.js, uruchomiłem go zgodnie z najlepszą radą jaką znalazłem , czyli w zasadzie rozpakowuję najnowszą dostępną wersję bezpośrednio w oficjalnym węźle .Strona JS , już skompilowana dla Linuksa (64 bity, w moim przypadku):

# Does NOT need to be root user:

# create directory
mkdir -p ~/.nodes && cd ~/.nodes

# download latest Node.js distribution
curl -O http://nodejs.org/dist/v0.10.13/node-v0.10.13-linux-x64.tar.gz

# unpack it
tar -xzf node-v0.10.13-linux-x64.tar.gz

# discard it
rm node-v0.10.13-linux-x64.tar.gz

# rename unpacked folder
mv node-v0.10.13-linux-x64 0.10.13

# create symlink
ln -s 0.10.13 current

# add path to PATH
export PATH="~/.nodes/current/bin:$PATH"

# check
node --version
npm --version


Aby zainstalować MongoDB, po prostu zastosowałem się do instrukcji w instrukcji MongoDB dostępnej w sekcji dokumentacji jego oficjalnej strony internetowej :

# Needs to be root user (apply "sudo" if not at root shell)

apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list
apt-get update
apt-get install mongodb-10gen



Serwer jest gotowy do uruchomienia aplikacji Meteor! W przypadku wdrożenia głównym " problemem "jest , gdzie występuje operacja" bundle". Potrzebujemy aby uruchomić polecenie meteor bundle z wnętrza drzewa plików źródłowych aplikacji. Na przykład:

cd ~/leaderboard
meteor bundle leaderboard.tar.gz


Jeśli wdrożenie nastąpi na innym serwerze (}), musimy wgrać pakiet tar.plik gz do niego, za pomocą sftp, ftp, lub inną metodą przesyłania plików. Gdy plik już tam jest, podążamy zarówno za dokumentacją Meteor , jak i plikiem README, który jest magicznie zawarty w korzeniu drzewa wiązek:

# unpack the bundle
tar -xvzf leaderboard.tar.gz

# discard tar.gz file
rm leaderboard.tar.gz

# rebuild native packages
pushd bundle/programs/server/node_modules
rm -r fibers
npm install [email protected]
popd

# setup environment variables
export MONGO_URL='mongodb://localhost'
export ROOT_URL='http://example.com'
export PORT=3000

# start the server
node main.js


Jeśli wdrożenie będzie w tym samym server (flavour 1), the bundle tar.plik gz już tam jest i nie musimy rekompilować natywnych pakietów. (Wystarczy przeskoczyć odpowiednią sekcję powyżej.)



Super! Dzięki tym krokom mam przykład" liderów "wdrożony do mój Niestandardowy Serwer, a nie "meteor.com" ... (tylko po to, aby nauczyć się i docenić ich usługi!)

Nadal muszę go uruchomić na porcie 80 (planuję użyć NginX do tego ), persist zmienne środowiskowe, węzeł startowy.JS odłączył się od terminala i tak dalej... Zdaję sobie sprawę z tego ustawienia w "ledwo nagiej"... tylko podstawa, pierwszy krok, podstawowe kamienie fundamentowe.

Aplikacja została wdrożona "ręcznie", bez korzystania ze wszystkich funkcji meteor deploy command magic... Widziałem ludzi publikujących swoje " meteor.sh" i " meteoric.sh " i podążam tą samą ścieżką... Utwórz skrypt, aby emulować funkcję "wdrażanie pojedynczego polecenia"... świadomi, że w niedalekiej przyszłości wszystko to będzie częścią tylko pionierskich Odkrywców meteorów, ponieważ rozrośnie się w całą galaktykę! a większość z tych kwestii będzie archaiczną przeszłością.

W każdym razie, jestem bardzo szczęśliwy, aby zobaczyć, jak szybko wdrożona aplikacja działa w Najtańszy VPS kiedykolwiek, z zaskakująco niskim opóźnieniem i prawie natychmiastowe jednoczesne aktualizacje w kilku różnych przeglądarkach. Fantastycznie!

Dziękuję!!!

 85
Author: J. Bruni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:15

Try Meteor Up too

Z tym można wdrożyć na dowolnym serwerze Ubuntu. Używa wewnętrznie polecenia meteor build. I używany przez wielu do wdrażania aplikacji produkcyjnych.

Stworzyłem Meteor, aby umożliwić programistom wdrażanie wysokiej jakości aplikacji Meteor do czasu pojawienia się Galaxy.

 14
Author: Arunoda Susiripala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-17 01:19:42

Polecam flavor two z oddzielnym serwerem wdrożeniowym. Rozdzielenie problemów prowadzi do bardziej stabilnego środowiska dla kodu i łatwiejszego do debugowania.

Aby to zrobić, istnieje doskonały skrypt Meteoric bash, który pomaga wdrożyć do EC2 Amazona lub własnego serwera.

A co do tego jak toczyć własne meteor.com, proponuję podzielić to na własne pytanie StackOverflow, ponieważ nie jest to powiązane. Poza tym nie mogę odpowiedzieć:)

 8
Author: Jonatan Littke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-12 06:27:43

Skończyłam z tym kilka dni temu. Zainstalowałem aplikację Meteor na własnym serwerze na DigitalOcean. Wykorzystałem Meteor Up narzędzie do zarządzania wdrożeniami i Nginx na serwerze do obsługi aplikacji.

Jest bardzo prosty w użyciu. Należy zainstalować meteor za pomocą polecenia:
npm install -g mup

Następnie utwórz folder konfiguracji wdrożenia i przejdź do utworzonego katalogu. Następnie uruchom polecenie meteor init. Utworzy on dwa pliki konfiguracyjne. Jesteśmy zainteresowani plikami mup.json. Ma konfiguracje dla procesu wdrażania. Wygląda to tak:

{
  // Server authentication info
  "servers": [
    {
      "host": "hostname",
      "username": "root",
      "password": "password",
      // or pem file (ssh based authentication)
      //"pem": "~/.ssh/id_rsa",
      // Also, for non-standard ssh port use this
      //"sshOptions": { "port" : 49154 },
      // server specific environment variables
      "env": {}
    }
  ],

  // Install MongoDB on the server. Does not destroy the local MongoDB on future setups
  "setupMongo": true,

  // WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
  "setupNode": true,

  // WARNING: nodeVersion defaults to 0.10.36 if omitted. Do not use v, just the version number.
  "nodeVersion": "0.10.36",

  // Install PhantomJS on the server
  "setupPhantom": true,

  // Show a progress bar during the upload of the bundle to the server.
  // Might cause an error in some rare cases if set to true, for instance in Shippable CI
  "enableUploadProgressBar": true,

  // Application name (no spaces).
  "appName": "meteor",

  // Location of app (local directory). This can reference '~' as the users home directory.
  // i.e., "app": "~/Meteor/my-app",
  // This is the same as the line below.
  "app": "/Users/arunoda/Meteor/my-app",

  // Configure environment
  // ROOT_URL must be set to https://YOURDOMAIN.com when using the spiderable package & force SSL
  // your NGINX proxy or Cloudflare. When using just Meteor on SSL without spiderable this is not necessary
  "env": {
    "PORT": 80,
    "ROOT_URL": "http://myapp.com",
    "MONGO_URL": "mongodb://arunoda:[email protected]:10023/MyApp",
    "MAIL_URL": "smtp://postmaster%40myapp.mailgun.org:[email protected]:587/"
  },

  // Meteor Up checks if the app comes online just after the deployment.
  // Before mup checks that, it will wait for the number of seconds configured below.
  "deployCheckWaitTime": 15
}

Po wypełnieniu wszystkich pól danych możesz rozpocząć proces konfiguracji poleceniem mup setup. Skonfiguruje Twój serwer.

Po udanej konfiguracji możesz wdrożyć swoją aplikację. Wystarczy wpisać mup deploy w konsoli.

 6
Author: Dmytro Medvid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-06 17:52:59

Inną alternatywą jest po prostu rozwijać na własnym serwerze, aby rozpocząć. Właśnie stworzyłem Digital Ocean box, a następnie podłączyłem Moje Konto Cloud9 IDE.

Teraz mogę rozwijać się bezpośrednio na maszynie w chmurze IDE i wdrożenie jest łatwe--po prostu kopiowanie plików.

Stworzyłem samouczek, który pokazuje dokładnie, jak działa moja konfiguracja.

 4
Author: John Sonmez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-13 14:25:49

Oto instrukcja uruchomienia Meteor na CentOS 7 VPS. Powinien mieć zastosowanie do innych środowisk linuksowych.

 2
Author: Kamal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-14 04:26:28

Miałem sporo problemów z meteor up, więc postanowiłem napisać mój własny skrypt . Dodałem również dodatkowe informacje jak skonfigurować nginx lub mongodb. Mam nadzieję, że to pomoże!

Zobacz /sh folder w repozytorium

Co robi skrypt meteor-deploy.sh:

  1. Select environment (./meteor-deploy.sh for staging, ./meteor-deploy.sh prod for production)
  2. Tworzenie i łączenie wersji produkcyjnej aplikacji meteor]}
  3. skopiuj pakiet na Serwer
  4. SSH do serwera
  5. Do a mongodump to backup database
  6. Zatrzymaj uruchomioną aplikację
  7. rozpakuj pakiet
  8. Zastąp pliki aplikacji
  9. Re-install app node package dependencies
  10. Uruchom aplikację (używa na zawsze)

Testowane dla następujących konfiguracji serwera:

  • Ubuntu 14.04.4 LTS
  • meteor -- wersja 1.3.2.4
  • node --version v0.10.41
  • npm --wersja 3.10.3
 2
Author: Samuel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-04 10:38:21