Meteor is an ultra-simple environment for building modern web applications.
With Meteor you write apps:
- in pure JavaScript
- that send data over the wire, rather than HTML
- using your choice of popular open-source libraries
Try the getting started tutorial.
Next, read the guide or the reference documentation at http://docs.meteor.com/.
The meteor universal fork allows to run meteorjs on yet not officially supported architectures. Especially ARM processors ARMv6 and ARMv7 (UDOO, Raspberry Pi, Banana Pi, ODroid etc.) are provided due to our pre-built dev_bundles.
The universal fork will try use any official meteor binaries as long as they does support the target architecture. All universal pre-built bundles are available at our BINTRAY Repository
- UDOO Dual, Quad, Neo (Lubuntu 12.04, Debian Jessie, UDOObuntu 2, Ubuntu Core 14.04)
- Raspberry Pi 1B + Pi 2 (Raspbian wheezy + jessie, Ubuntu 14.04)
- ODROID C1 + U3 (Lubuntu 14.04)
- BeagleBone Black (Ubuntu 14.04)
- PcDuino v3 (Ubuntu 14.04)
- Scaleway.com Server (Debian, Ubuntu 14.04)
- ARM Chromebook
- Nexus 7 (Ubuntu 14.04)
- FreeBSD 10.2 (i686, x86_64, amd64)
- OpenBSD 5.7 (i686, x86_64, amd64)
... plus an uncounted number of compatible OSs driven devices
... on supported architectures like ARMv6, ARMv7, i686, x86_64, amd64 and OSs like Debian (derivates), Ubuntu, Arch, CentOS, OSX, FreeBSD, OpenBSD and Windows.
Please read section "Preparing yet unsupported" for tips on installing and running meteor on yet unsupported architectures and OSs.
##### Get Meteor (e.g. into your $HOME):
cd $HOME
git clone --depth 1 https://github.com/4commerce-technologies-AG/meteor.git
##### Check installed version:
$HOME/meteor/meteor --version
Running the above command for the first time will try to download a compatible pre-built dev_bundle and finish the installation. Depending on your hardware this may take some time.
##### Create and run a "Hello World" example (optionally):
cd $HOME
$HOME/meteor/meteor create hello-world
cd hello-world
$HOME/meteor/meteor
##### Create and run a "reactJS" example (optionally):
cd $HOME
# get the command line to checkout the meteor example
$HOME/meteor/meteor create --example simple-todos-react
# this is what you will receive as command hint, so put it in
git clone https://github.com/meteor/simple-todos-react
# jump into the project folder
cd simple-todos-react
# get necessary npm stuff
$HOME/meteor/meteor npm install
# bring that project up to latest module updates
$HOME/meteor/meteor update --packages-only
# add one package to avoid counting of modules usage and DDP error message on start
$HOME/meteor/meteor add package-stats-opt-out
# run that app
$HOME/meteor/meteor
... if looking for self building your dev_bundles or on not getting a pre-built dev_bundle for your platform.
If you're the sort of person who needs to build meteor on unsupported architectures you can build all the Meteor stuff with the provided scripts. This requires git, a C and C++ compiler, autotools and scons etc.
You may also decide to build the bundled node and mongodb sources for your platform or to use the system wide installed packages of them. We suggest to build at least the bundle nodejs sources if possible, to be sure that these versions are compatible. We have ported the bundled mongodb sources to ARM architecture yet, so this might not be be able to compile on your architecture. We suggest to use and install the system available binaries for mongo in any case that pre-built dev_bundle are not available. Please have a look at our Meteor Universal Blog for a lot of documentation about setting up your system to build the sources.
##### Get Meteor (e.g. into your $HOME):
cd $HOME
git clone --depth 1 https://github.com/4commerce-technologies-AG/meteor.git
cd meteor
##### Build bundled node:
scripts/build-node-for-dev-bundle.sh
##### Get mongodb installation from OS (e.g. Debian based):
sudo apt-get install mongodb
##### Optional (long runner) build bundled mongo:
scripts/build-node-for-dev-bundle.sh
Beneath the compiler and development tools and standard libaries, you have to also install the zlib1g-dev (or whatever it's named on your OS) library sources. Otherwise the mongo build will fail with an error like "-lz is missing"
##### Build meteor dev_bundle:
scripts/generate-dev-bundle.sh
##### Check installed version:
$HOME/meteor/meteor --version
If you were successful in building your dev_bundles, you created your local dev_bundle tarballs. Now running the above command for the first time will use this local tarballs and finish the meteor installation. Depending on your hardware this may take some time.
##### Create and run Hello World:
If all was successfully build and installed, you may continue with your first meteor example.
cd $HOME
$HOME/meteor/meteor create hello-world
cd hello-world
$HOME/meteor/meteor
## Preparing yet unsupported
In some cases you need to install additional packages from your OSs to be ready for meteor. Read below preparations on different architectures and OSs.
##### Install compiler and dependent packages on Debian(-based)
sudo apt-get install build-essential debian-keyring autoconf automake libtool flex bison scons git mongodb
##### Install compiler and dependent packages on FreeBSD
sudo pkg install -y bash gmake git mongodb
##### Install compiler and dependent packages on OpenBSD
sudo pkg_add bash gmake flock git mongodb
Check that python is available on standard env location
env python --version
If that fails please link the installed python release as default (e.g. python2.7):
sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python
## Good to know
##### Meteor starter
For your comfort, you should set an alias or update your $PATH to run meteor from everywhere.
alias meteor="$HOME/meteor/meteor"
##### Non-core packages
After checkout there are some non-core packages not available like e.g. npm-bcrypt
. This fork sets the ENV VAR PACKAGE_DIRS
to include the non-core packages automatically. If you have a special concern you have to set this ENV VAR with your preferred values before calling meteor. In that case the meteor starter will NOT add the non-core packages. Some meteor examples and applications may not work properly without those packages.
If interested in details you find some more information about non-core packages at meteor universal blog
##### Avoid connection error on first start or if offline
Meteor tries to count usage of packages when you build your app and start it for the first
time or after a meteor reset
. You may decide yourself if you like that or not but sometimes
this will prevent to run your application. If e.g. running your device offline and start
meteor
you may get the error: "Failed to record package usage."
You can disable recording by just adding a package from meteors embedded packages:
# starting in your apps home
cd <path to your meteor app>
# add the package
meteor add package-stats-opt-out
If interested in details you find some more information at this issue.
##### Local documentation
From your checkout, you can read the docs locally. The /docs
directory is a
meteor application, so simply change into the /docs
directory and launch
the app:
cd $HOME/meteor/docs
$HOME/meteor/meteor
You'll be able to read the docs locally in your browser at
http://localhost:3000/
##### Running special releases
Note that if you run Meteor from a git checkout, you cannot pin apps to specific
Meteor releases or run using different Meteor releases using --release
.
But you may checkout different releases of meteor in seperate directories to run special releases. Therefor each universal release has its own tag named by pattern "release/version.id-universal". To get e.g. release 1.3.4.1 you may use:
cd $HOME
git clone --depth 1 -b "release-1.3.4.1-universal" https://github.com/4commerce-technologies-AG/meteor.git meteor-1.3.4.1-universal
$HOME/meteor-1.3.4.1-universal/meteor --version
Only since release 1.2.0.2 we provide the pre-built dev_bundles for ARM if you need to use previous realeases, you have to build the dev_bundles once by yourself.
##### Curl (60) SSL certificate problem on installation
If you get an error like "curl: unable to get local issuer certificate" you will find the work-around documented in this issue comment. Hopefully the Debian project will close that issue once!
##### Mongo locale error on starting meteor
If you get an error like "Looks like MongoDB doesn't understand your locale settings." you will find the solution documented in this issue.
##### Fibers or Bcrypt missing error on running a builded app
Before running your app first time after meteor build
you have to install and
build the necessary node modules. You may run your build process as follows:
# starting in your apps home
cd <path to your meteor app>
# running the build process
meteor build --directory ../my-app-build
# go into builds bundle home
cd ../my-app-build/bundle
# install server side npms
cd programs/server
npm install
# back to builds bundle home
cd ../..
# run main.js (look at README file in your builds bundle home)
node main.js
##### Guide and tutorial issues
Some of the already known issues may also help as a guide or tutorial. Please check out our guide flagged issues if your question may already be answered.
## Uninstalling Meteor
This meteor fork will not install or create any global files – except your developments all will stay inside the local meteor directory. To uninstall Meteor, just drop that directory (e.g.):
rm -r $HOME/meteor
## Pre-builds for ARM
Since meteor stable release 1.2.0.2 we provide pre-builds for ARMv6 and ARMv7 at our BINTRAY Repository. The embedded installer inside the meteor launcher will try to download the correct pre-built dev_bundle automatically.
If you are looking for compatible node packages they are also available at BINTRAY.
## Pre-builds for FreeBSD, OpenBSD
Since meteor stable release 1.2.1 we provide pre-builds for the xBSD OSs at our BINTRAY Repository. The embedded installer inside the meteor launcher will try to download the correct pre-built dev_bundle automatically.
If you are looking for compatible node packages they are also available at BINTRAY.
## Developer Resources
##### Building an application with Meteor?
- Announcement list: sign up at http://www.meteor.com/
- Having problems? Ask for help at: http://stackoverflow.com/questions/tagged/meteor
- Discussion forums: https://forums.meteor.com/
- Docs full API: http://docs.meteor.com/#/full/
- In-depth wiki: https://github.com/meteor/meteor/wiki
##### Interested in Meteor Universal?
- Issue tracker: https://github.com/4commerce-technologies-AG/meteor/issues
- Knowledge base: http://meteor-universal.tumblr.com
- Binary repositories: https://bintray.com/4commerce-technologies-ag/meteor-universal
- Meteor forum: search for meteor universal fork
##### Interested in updated forks for ARM support?
- Meteor bundled mongodb: https://github.com/4commerce-technologies-AG/mongo
- Meteor bundled node-fibers: https://github.com/4commerce-technologies-AG/node-fibers
##### Interested in contributing to Meteor?
- Issue tracker: https://github.com/meteor/meteor/issues
- Contribution guidelines: https://github.com/meteor/meteor/tree/devel/Contributing.md
##### Original Meteor project
This fork is supported by Tom Freudenberg and the people from 4commerce technologies AG. All work is released under the MIT license
Thanks to Meteor Development Group for having initiated this project.