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ę.
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ę!!!
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.
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ć:)
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.
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.
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.
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
:
- Select environment (
./meteor-deploy.sh
for staging,./meteor-deploy.sh prod
for production)
Tworzenie i łączenie wersji produkcyjnej aplikacji meteor]}
- skopiuj pakiet na Serwer
- SSH do serwera
- Do a mongodump to backup database
- Zatrzymaj uruchomioną aplikację
- rozpakuj pakiet
- Zastąp pliki aplikacji
- Re-install app node package dependencies
- 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
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