- Add
mup validate
command, which validates the config. Has--show
option which shows the config after it has been normalized and modified by plugin'sprepareConfig
functions - Add
mup proxy logs-le
to view the Let's Encrypt logs - Fix mup ignoring
app.dockerImage
in the config when using Mongo, the reverse proxy, or Redis - Fix error encountered during Verifying SSL Certificates after it had failed previously due to a docker container still running
- Give more details when unable to load settings.json
- App's env variables are set before
npm install
during Prepare Bundle - Fix error sometimes encountered when starting app after updating Mup to 1.3
- Periods are removed from the database name when using built-in MongoDB
- Removed validation error
"meteor.name" has a period
- Fix Prepare Bundle when app name has uppercase letters
- Fix reverse proxy's let's encrypt and force ssl not working when
app.env
is missing - Fix crash when
app.name
is missing
- Add
mup ssh <server>
command - Exit code when task list fails is now 1 instead of 0
- Fix deploying when server's default shell is zsh @thsowers
- All docker commands are run with
sudo
mup proxy stop
doesn't require theproxy
object to be in the config- Add option
app.docker.prepareBundle
to enable or disable prepare bundle
Hooks
It is now possible to add hooks that run before or after commands. The new --show-hook-names
option shows all of the available hooks for a cli command while it is running. Hooks can be a command to run locally or on the servers, or a function.
Plugins
Plugins are npm packages that can add commands (commands can be run from the mup cli or by other plugins), hooks, and config validators. All of the included cli commands and task lists have been moved to plugins.
Changes to Deployment and Deployment validation
This is currently only enabled for the abernix/meteord
docker image.
After the bundle is uploaded to each server, a new task is run called "Prepare bundle". It installs the Meteor npm dependencies, rebuilds native modules, and stores the result in a docker image. This has a few benefits:
- The time in
meteor.deployCheckWaitTime
no longer needs to include the time to install npm dependencies - When installing dependencies fails, it does not continuously restart until
meteor.deployCheckWaitTime
expires, and running with--verbose
shows the full logs fromnpm install
- Dependencies are only installed once during each deploy. This means that
mup start
,mup restart
, andmup reconfig
are all much faster.
Improved Support for Multiple Servers
mup restart
restarts only one server at a time- Add
--servers
option to list which servers to use - Add support for server specific env variables, which can be configured in
meteor.servers.<server name>.env
Config Changes
- The
meteor
object has been renamed toapp
. Themeteor
object will be supported until Mup 2.0 - You can remove
mongo.port
andmongo.oplog
from your config since they have never been used
Docs
- Remove
meteor.docker.imagePort
,mongo.port
, andmongo.oplog
from example configs - Document
meteor.docker.imagePort
- Update documentation for
meteor.deployCheckWaitTime
- Improve mongo, migration, proxy, and troubleshooting docs
Other Changes
- The reverse proxy can redirect
http
tohttps
, configured withproxy.ssl.forceSSL
mup setup
updates Docker if it is older than 1.13- Add
mup proxy reconfig-shared
to update the server after changingproxy.shared
in the config. - Remove
meteor.deployCheckWaitTime
,meteor.docker.imagePort
, andmongo.port
from default config - Renamed the
meteor
object in the default config toapp
- Improve cli help output (commands have a description, command specific options are documented)
- Show link to docs when there are validation errors
- Show validation error when
server.pem
is a path to a public key - Show validation error when
app.name
has a period - Improve some of the validation messages
- Fix validating
proxy.shared.clientUploadLimit
- Mup displays message and exits if the node version is older than v4
- Remove unnecessary stack traces when the app's path is incorrect or
meteor build
fails - Add
mup meteor restart
command - Remove
mup mongo dump
command since it did nothing
- Deployment verifier shows last 100 lines of the app's log when it fails (it previously was 50 lines)
- Fix
mup setup
restarting docker
- Deployment verifier no longer requires the http status code to be 200.
- Add shared nginx proxy
- Is configured with a
proxy
object instead of usingmeteor.ssl
andmeteor.nginx
- If multiple apps are deployed to a server, routes requests to the correct container
- Adds
mup proxy
command. For a list of subcommands, runmup proxy help
- Supports using custom certificates. This should be used instead of
meteor.ssl
since the previous image used for custom certificates had a security vulnerability. - Also can set up Let's Encrypt
- Supports configuring the env variables for the nginx and let's encrypt containers.
- Is configured with a
Big thanks to @shaiamir for his work on the shared proxy.
mup stop
also stops nginx proxy and let's encrypt containers- App inside container's port is set to
docker.imagePort
. The app is still accessible onenv.PORT
. - Will build app if cached build is not found and
--cached-build
flag is set - Fix some bugs with verifying deployment
- Add support for
zodern:mup-helpers
package. Since version 1.2.7, verifying deployment fails if the app's/
route's http code is other than 200, or if it does not redirect on the server to a page that does have that http code. Addingzodern:mup-helpers
allows meteor up to sucessfully validate the deployment.
- Fix verifying deployment when using ssl autogenerate
- Add default host to nginx-proxy to redirect unknown hosts to the app when accessed over http
- Remove
force-ssl
warning and add a note about redirects to the Troubleshooting guide in the readme - Fix example config in readme @meteorplus
- Fix setting
HTTPS_METHOD
for nginx-proxy. It will no longer redirect http to https - Validator warns when using ssl autogenerate and setting
env.PORT
.
- Fix
force-ssl
warning appearing when ssl is setup correctly
- Support changing docker exposed port @abernix
- New
mup docker restart
command - New
mup docker ps
command. It accepts all arguments thatdocker ps
accepts - Old ssh key and bundle are deleted before uploading new ones
- Setting up Mongo and Meteor are no longer in parallel
--verbose
flag also shows output from scripts run on the server- MongoDB is safely shutdown for
Start Mongo
andStop Mongo
task lists - Reduced number of dependencies installed
- Better error message on meteor build spawn error
- Setup tasks are consistently capitilized
- Clearer validator message for
ROOT_URL
- Add warning message when using
force-ssl
without ssl setup - Validate
meteor.ssl.upload
@markreid
- Add tips to default config, and comment what needs to be changed
mup init
andmup setup
suggests what to do next- Startup script is updated during
mup reconfig
- Default build path is consistent between deploys for each app
- Add
--cached-build
flag tomup deploy
which uses the build from the previous deploy - Configure additional docker networks, ip binding, and verification port @giordanocardillo
- Add
--verbose
flag to show output frommeteor build
- Handles promise rejections
- Fix docker not always disconnecting containers from networks @joaolboing
- Fix stderr sometimes in wrong place in logs
- Fix some lines in logs would be missing the host name
- Fix validating buildLocation
- Fix path to temp folder on Windows
- Default config uses meteor.docker object instead of dockerImage @maxmatthews
- Docker args from config are no longer escaped @maxmathews
- Add buildLocation for validator @stubbegianni
- Improved messages from validator
- Fix nginx-proxy not starting on server restart
- Fix documentation on changing port @maxmathews
- Configure nginx max client upload size, and increase default to
10M
(@shadowcodex) - Displays better message if it can not find the meteor app
- Displays message if can not find pem for server
- Improve validating server's
host
in config - Validator checks for
http://
orhttps://
inROOT_URL
- Update documentation on using
mup
on Windows
- All paths support "~"
- Add
server
andallowIncompatibleUpdates
to build config (@alvelig) - Allow
mobile-settings
build option to usesettings.json
file (@alvelig) - Add
mup --version
command - Fix validating env
variables
andimageFrontendServer
- Support Meteor 1.4 by default (@ffxsam)
- Change mongo version
- Validates
mup.js
and displays problems found in it - Update message is clearer and more colorful
uploadProgressBar
is part of defaultmup.js
- Add trailing commas to mup.js (@ffxsam)
- Improve message when settings.json is not found or is invalid
- Loads and parses settings.json before building the app
- Improve message when given unknown command
- Fix switching from auto-generated ssl certificates to upload certificates
- Fix
Error: Cannot find module 'ssh2'
- Fix
mup logs
when using custom configuration or settings files
- Fixed
mup setup
when using let's encrypt
- Fixed some files had windows line endings
- Add let's encrypt support (@mbabauer)
- Fix typo (@timbrandin)
- Help is shown for
mup
andmup help
- Improved help text