Implementeer een Meteor-applicatie op Ubuntu

Dit artikel helpt je bij het implementeren van je Meteor-app op een Vultr VPS met Ubuntu 14.04. Het kan ook werken op andere Linux-distributies (poging op eigen risico).

Een ingenieuze kerel genaamd Arunoda Susiripala, die behoorlijk actief is in de Meteor-gemeenschap, heeft een implementatietool ontwikkeld genaamd mupx (afkorting van "Meteor Up X"), waarmee het uiterst eenvoudig is om je Meteor-applicatie via ssh op een externe server te implementeren. Mupx is de opvolger van mup. We begeleiden u van begin tot eind door het proces. Mup doet het meeste zware werk gelukkig, dus dit wordt een makkie!

Onze eerste stap is het installeren van mupx. Dit doe je op je ontwikkelwerkstation, niet op je VPS-server! Zorg ervoor dat je Node.js al hebt geïnstalleerd en voer uit:

$ npm install -g mupx

Nadat de installatie is voltooid, gaat u bijvoorbeeld naar uw Meteor-projectmap /projects/myAppen voert u de volgende opdrachten uit:

$ mkdir .deploy
$ cd $_
$ mupx init

Voor degenen die niet bekend zijn met de $_syntaxis, het is een snelkoppeling voor het laatste argument dat in een opdracht wordt gebruikt. Dus in dit geval wordt cd $_uitgevoerd als cd .deploy.

Je ziet de volgende output:

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Empty Project Initialized!

Het initialisatieproces creëert twee bestanden mup.jsonen settings.json. We laten het laatste bestand nu met rust. Ga je gang en open je mup.json. Op het moment van schrijven van dit artikel mup.jsonziet de standaard er als volgt uit:

{
  // Server authentication info
  "servers": [
    {
      "host": "hostname",
      "username": "root",
      "password": "password",
      // or pem file (ssh based authentication)
      // WARNING: Keys protected by a passphrase are not supported
      //"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,

  // 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": "/path/to/the/app",

  // Configure environment
  // ROOT_URL must be set to your correct domain (https or http)
  "env": {
    "PORT": 80,
    "ROOT_URL": "http://myapp.com"
  },

  // 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,

  // show a progress bar while uploading. 
  // Make it false when you deploy using a CI box.
  "enableUploadProgressBar": true
}

We moeten een paar dingen veranderen om het installatieproces te laten werken.

Zorg er eerst voor dat hostu uw VPS IP-adres instelt, bijvoorbeeld:

"host": "123.123.123.123",

Als u een ander poortnummer dan de standaard 22 moet gebruiken, kunt u dit doen met behulp van het sshOptionsveld, bijvoorbeeld:

"host": "123.123.123.123",
"sshOptions": { "port": 9876 },

Stel de usernamewaarde in op de gebruiker van wie u de installatie van uw Meteor-app wilt bezitten. Ik raad aan om de wachtwoordregel te verwijderen en in plaats daarvan een SSH-sleutel te gebruiken, om veiligheidsredenen. pemMaak een commentaar op de regel met de waarde en zorg ervoor dat deze verwijst naar je SSH-geheime sleutel die overeenkomt met de openbare SSH-sleutel die je op je VPS hebt geïnstalleerd (in /root/.ssh/authorized_keys). Zorg ervoor dat u een komma achter de wachtwoordregel plaatst! Als er aan uw SSH-sleutel een wachtwoordzin is gekoppeld, verwijdert u de pemregel volledig en zorgt u ervoor dat uw persoonlijke SSH-sleutel in een cachegeheugen in een ssh-agent wordt opgeslagen (bijvoorbeeld op Mac ssh-add <path to ssh private key>).

Laat setupMongoingesteld op de standaardwaarde.

Wijzig appNamede naam van uw Meteor-app. In ons geval:

"appName": "myApp",

... en stel ook de locatie van de app in ten opzichte van deze implementatiemap:

"app": "..",

Stel ten slotte de in ROOT_URLop de aangewezen URL voor uw app. Stel expliciet een poortnummer in op de standaard HTTP-poort.

// Configure environment
"env": {
  "ROOT_URL": "http://myapp.com",
  "PORT": 80
},

Dat is het! Sla het mup.jsonbestand op en voer vervolgens uit:

$ mupx setup

Op dit punt zal mupx naar je VPS ssh, Docker installeren, de omgeving instellen en de juiste Docker-images ophalen. Implementeer nu uw app:

$ mupx deploy

Als u nu naar gaat http://123.123.123.123, wordt uw app weergegeven wanneer de pagina wordt geladen.

Multi-core ondersteuning

Als je VPS meerdere cores heeft, kan je Meteor-app daarvan profiteren. We zullen een paar snelle aanpassingen moeten maken.

Eerst moet u het clusterpakket installeren. Ga naar de map van je Meteor-app (in dit voorbeeld /projects/myApp) en typ:

$ meteor add meteorhacks:cluster

Bewerk nu uw mup.jsonbestand en pas de sectie omgevingsvariabele als volgt aan:

// Configure environment
"env": {
  "ROOT_URL": "http://myapp.com",
  "PORT": 80,
  "CLUSTER_WORKERS_COUNT": "auto"
},

Aangezien we een nieuw pakket aan uw app hebben toegevoegd, moet u het opnieuw implementeren.

$ mupx setup && mupx deploy

Als u ooit uw omgevingsvariabelen wilt wijzigen mup.jsonzonder de hele app te hoeven implementeren, gebruikt u gewoon de opdracht opnieuw configureren. Dit is handig wanneer er geen toepassingswijzigingen zijn aangebracht.

$ mupx reconfig

Gefeliciteerd, je Meteor-app is nu actief! Ook zal je app automatisch starten wanneer je VPS opnieuw opstart. Houd toekomstige artikelen in de gaten over de implementatie en het beheer van Meteor.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.