mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
99 lines
4.8 KiB
Markdown
99 lines
4.8 KiB
Markdown
## 8: Deploying
|
||
|
||
Deploying a Meteor application is similar to deploying any other Node.js app that uses websockets. You can find deployment options in [our guide](https://guide.meteor.com/deployment), including Meteor Up, Docker, and our recommended method, Galaxy.
|
||
|
||
In this tutorial, we will deploy our app on [Galaxy](https://www.meteor.com/hosting), which is our own cloud solution. Galaxy offers a free plan, so you can deploy and test your app. Pretty cool, right?
|
||
|
||
|
||
### 8.1: Create your account
|
||
|
||
|
||
You need a Meteor account to deploy your apps. If you don’t have one yet, you can [sign up here](https://cloud.meteor.com/?isSignUp=true).
|
||
With this account, you can access our package manager, [Atmosphere](https://atmospherejs.com/), [Forums](https://forums.meteor.com/) and more.
|
||
|
||
|
||
|
||
### 8.2: Set up MongoDB (Optional)
|
||
|
||
|
||
As your app uses MongoDB the first step is to set up a MongoDB database, Galaxy offers MongoDB hosting on a free plan for testing purposes, and you can also request for a production ready database that allows you to scale.
|
||
|
||
In any MongoDB provider you will have a MongoDB URL which you must use it. If you use the free option provided by Galaxy, the initial setup is done for you.
|
||
|
||
Galaxy MongoDB URL will be like this: `mongodb://username:<password>@org-dbname-01.mongodb.galaxy-cloud.io` .
|
||
> You can read more about Galaxy MongoDB [here](https://galaxy-support.meteor.com/en/article/mongodb-general-1syd5af/).
|
||
|
||
### 8.3: Set up settings
|
||
|
||
|
||
You need to create a setting file, it’s a JSON file that Meteor apps can read configurations from. Create this file in a new folder called `private` in the root of your project. It is important to notice that `private` is a special folder that is not going to be published to the client side of your app.
|
||
|
||
Make sure you replace `Your MongoDB URL` by your own MongoDB URL :)
|
||
|
||
|
||
::: code-group
|
||
```json [private/settings.json]
|
||
{
|
||
"galaxy.meteor.com": {
|
||
"env": {
|
||
"MONGO_URL": "Your MongoDB URL"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
:::
|
||
|
||
### 8.4: Deploy it
|
||
|
||
|
||
Now you are ready to deploy, run `meteor npm install` before deploying to make sure all your dependencies are installed.
|
||
|
||
You also need to choose a subdomain to publish your app. We are going to use the main domain `meteorapp.com` that is free and included on any Galaxy plan.
|
||
|
||
In this example we are going to use `react-meteor-3.meteorapp.com` but make sure you select a different one, otherwise you are going to receive an error.
|
||
|
||
|
||
> You can learn how to use custom domains on Galaxy [here](https://galaxy-support.meteor.com/en/article/domains-16cijgc/). Custom domains are available starting with the Essentials plan.
|
||
|
||
Run the deployment command:
|
||
|
||
```shell
|
||
meteor deploy react-meteor-3.meteorapp.com --free --mongo
|
||
```
|
||
|
||
> If you are not using the free hosting with MongoDB on Galaxy, then remove the `--mongo` flag from the deploy script and add `--settings private/settings.json` with the proper setting for your app.
|
||
|
||
Make sure you replace `react-meteor-3` by a custom name that you want as subdomain. You will see a log like this:
|
||
|
||
```shell
|
||
meteor deploy react-meteor-3.meteorapp.com --settings private/settings.json
|
||
Talking to Galaxy servers at https://us-east-1.galaxy-deploy.meteor.com
|
||
Preparing to build your app...
|
||
Preparing to upload your app...
|
||
Uploaded app bundle for new app at vue-tutorial.meteorapp.com.
|
||
Galaxy is building the app into a native image.
|
||
Waiting for deployment updates from Galaxy...
|
||
Building app image...
|
||
Deploying app...
|
||
You have successfully deployed the first version of your app.
|
||
For details, visit https://galaxy.meteor.com/app/react-meteor-3.meteorapp.com
|
||
```
|
||
|
||
|
||
This process usually takes just a few minutes, but it depends on your internet speed as it’s going to send your app bundle to Galaxy servers.
|
||
|
||
> Galaxy builds a new Docker image that contains your app bundle and then deploy containers using it, [read more](https://galaxy-support.meteor.com/en/article/container-environment-lfd6kh/).
|
||
You can check your logs on Galaxy, including the part that Galaxy is building your Docker image and deploying it.
|
||
|
||
### 8.5: Access the app and enjoy
|
||
|
||
|
||
Now you should be able to access your Galaxy dashboard at `https://galaxy.meteor.com/app/react-meteor-3.meteorapp.com`.
|
||
|
||
You can also access your app on Galaxy 2.0 which is currently in beta at `https://galaxy-beta.meteor.com/<your-username>/us-east-1/apps/<your-app-name>.meteorapp.com`. Remember to use your own subdomain instead of `react-meteor-3`.
|
||
|
||
You can access the app at [react-meteor-3.meteorapp.com](https://react-meteor-3.meteorapp.com/)! Just use your subdomain to access yours!
|
||
|
||
> We deployed to Galaxy running in the US (us-east-1), we also have Galaxy running in other regions in the world, check the list [here](https://galaxy-support.meteor.com/en/article/regions-1vucejm/).
|
||
This is huge, you have your app running on Galaxy, ready to be used by anyone in the world!
|