Como enviar uma aplicação meteoro para o meu servidor?
Sabor 1: o servidor de desenvolvimento e implantação é o mesmo;
Sabor 2: o servidor de desenvolvimento é um (talvez o meu localhost) e o servidor de implantação é outro (talvez um VPS na nuvem);
Sabor 3: quero fazer um domínio de hospedagem de meteoros, tal como "meteor.com". é possível? Como?actualizar:
Estou a gerir o Ubuntu e não quero "desmetizar" o aplicacao. Obrigado.7 answers
A documentação do meteorito diz:
"[...] você precisa fornecer o nó.js 0.8 e um servidor MongoDB. Podes.
em seguida, execute a aplicação invocando o nó, especificando a porta HTTP
para a aplicação ouvir, e o objectivo MongoDB."
Então, entre as várias maneiras de instalar o nó.js , eu comecei a funcionar seguindo o melhor conselho que encontrei , que é basicamente desempacotar a última versão disponível directamente no nó oficial .Js website , já compilado para Linux (64 bits, no meu caso): # 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
E para instalar MongoDB , eu simplesmente segui as instruções do manual MongoDB disponíveis na secção de documentação do seu site oficial:# 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
O servidor está pronto para executar aplicações de meteoros! Para a implantação, a principal "questão" é onde a operação "pacote" acontece. Precisamos para executar o comando meteor bundle
de dentro da árvore de ficheiros de código da aplicação. Por exemplo:
cd ~/leaderboard
meteor bundle leaderboard.tar.gz
Se a implantação acontecer em outro servidor ( flavour 2 ), precisamos carregar o pacote tar.GZ ficheiro para ele, usando sftp
, ftp
, ou qualquer outro método de transferência de ficheiros. Uma vez que o arquivo está lá, nós seguimos a documentação Meteor e O arquivo README que é magicamente incluído na raiz da árvore bundle:
# 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
Se o destacamento for na mesma servidor ( sabor 1 ), O pacote de alcatrão.o arquivo gz já está lá, e não precisamos recompilar os pacotes nativos. (Basta saltar a seção correspondente acima.)
Fixe! Com estes passos, eu tenho o exemplo" Leaderboard "implantado para o meu servidor personalizado , Não" meteor.com " ... (apenas para aprender e valorizar seus serviços!)
Ainda tenho de o fazer correr no porto 80 ( planeio usar o NginX para este ), persistir variáveis de ambiente, iniciar nó.O JS desapareceu do terminal, etc... Estou ciente deste cenário num "quase nu"... só a base,o primeiro passo, pedras básicas.
A aplicação foi implantada "manualmente", sem tirar partido de todas as funcionalidades mágicas de comando meteor deploy
... Já vi pessoas publicarem o seu "[[68]} meteor.sh " e " meteoric.sh"e eu sigo o mesmo caminho... crie um script para emular o recurso "single command deployment"... conscientes de que, num futuro próximo, tudo isto fará parte dos pioneiros Exploradores do Meteoro, à medida que se transformará numa galáxia inteira! e a maioria destas questões será uma coisa arcaica do passado.
De qualquer forma, estou muito feliz por ver quão rápido o aplicativo implantado corre em o VPS mais barato de sempre, com uma latência surpreendentemente baixa e atualizações simultâneas quase instantâneas em vários navegadores distintos. Fantástico!
Obrigado!!!Tenta Meteor Up too
Com isso você pode implantar em qualquer servidor Ubuntu. Isto usa o comando meteor build
internamente. E usado por muitos para a implantação de aplicativos de produção.
Criei o Meteor para permitir que os programadores implantem aplicações de Meteorologia de qualidade até a galáxia chegar.
Para fazer isso, há o excelenteMeteoric script bash que ajuda você a implantar para o EC2 da Amazon ou seu próprio servidor.
Quanto a como rolar o seu próprio meteor.com sugiro que partas isso para a questão do StackOverflow, já que não está relacionado. Além disso, não posso responder.npm install -g mup
Depois, crie a pasta para a configuração de implementação e vá para a pasta criada. Então execute o comando meteor init
. Ele irá criar dois arquivos de configuração. Temos interesse no ficheiro mup.json
. Tem configurações para o processo de implantação. É parecido com isto.
{
// 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
}
Depois de preencher todos os campos de dados, poderá iniciar o processo de configuração com o comando mup setup
. Vai configurar o seu servidor.
Depois de uma configuração completa, pode instalar a sua aplicação. Basta escrever mup deploy
na consola.
Outra alternativa é apenas desenvolver em seu próprio servidor para começar. Acabei de criar uma caixa digital do oceano e depois liguei a minha conta Cloud9 IDE.
Agora, eu posso me desenvolver bem na máquina em uma IDE de nuvem e a implantação é fácil -- apenas copiando arquivos.Eu criei um tutorial que mostra exatamente como meu set up funciona.
Aqui estão instruções para correr meteoros em CentOS 7 VPS . Deve aplicar-se a outros ambientes linux.
O que faz o guião meteor-deploy.sh
:
- Seleccione o ambiente (
./meteor-deploy.sh
para encenação,./meteor-deploy.sh prod
para produção)
Versão de produção da aplicação meteor
- copy bundle to server
- SSH no servidor
- Faça uma mongodump para base de dados de salvaguarda
- parar a aplicação em execução
- desfazer as malas
- sobrepor ficheiros de aplicações
- reinstalar dependências do pacote do nó de aplicações
- iniciar a aplicação (usa para sempre)
Testado para as seguintes configurações do servidor:
- Ubuntu 14. 04. 4 LTS Meteoro -- version 1.3.2.4
- node --version v0. 10. 41
- MPN -- version 3. 10. 3