An open source web app for managing movie lists built with self-hosting in mind. Movie information is fetched from TMDb.
This product uses the TMDb API but is not endorsed or certified by TMDb.
- Create private or public lists. Public lists are only viewable to registered users.
- Add movies from TMDb.
- Switch between list and grid view.
- Sort and filter movies on different criteria.
- Vote and see user votes. Users votes are public. You can see on the movie page the user scores.
- Get suggestions for what to watch. Based on average score and picked from the filtered lists.
- angular-meteor (AngularJS + Meteor).
- Bootstrap and UI Bootstrap.
- FontAwesome.
- Lumen theme from Bootswatch.
...and many other community packages. Thanks to everyone who contributes to these.
Create a settings.json
file in the root with the following content:
{
"public": {
"forbidClientAccountCreation": "true"
},
"private": {
"tmdb": "... TMDb key here ..."
}
}
public
:forbidClientAccountCreation
: set totrue
to disable registration of new accounts.
private
:tmdb
: API key for TMDb (service to fetch movie data).
You can load these settings in your local development environment by starting Meteor with $ meteor --settings settings.json
.
- Install Meteor.
- Clone or download the source code:
$ git clone https://github.com/nunof07/meteor-movielist.git
. - Change to the project directory.
- Create your
settings.json
file (see above). - Start the app with
$ meteor --settings settings.json
. - Open the app in the browser (usually at http://localhost:3000/).
For remote deployments I recommend meteor-up. The steps are basically the same, except you have to configure meteor-up and run the deploy
command.
To deploy to Dokku you can either deploy using a buildpack or with a Dockerfile.
- Clone or download the source code:
$ git clone https://github.com/nunof07/meteor-movielist.git
. - Change to the project directory.
- Create an
.env
file with the following content:export BUILDPACK_URL='https://github.com/AdmitHub/meteor-buildpack-horse.git'
. - Create your
settings.json
file (see above). - Add git remote:
$ git remote add dokku dokku@your-host.com:your-app.com
. - Push to Dokku:
$ git push dokku master
. You should see an error at this point. - In your server where you have Dokku installed:
- Set the app's URL:
$ dokku config:set your-app.com ROOT_URL=http://your-app.com
. - Update the settings:
- Make sure
settings.json
doesn't contain any spaces/whitespace. - Copy
settings.json
to your server. - Update the settings:
$ dokku config:set your-app.com METEOR_SETTINGS=$(cat /path/to/settings.json)
. - NOTE: As of now a bug in Dokku prevents deployments due to quotes in the settings JSON.
To fix this unset the variable each time before a push to Dokku and set it again afterwards.
An alternative of setting the variable manually like mentioned in the point above is to install the dokku-meteor plugin:
$ dokku plugin:install https://github.com/JarnoLeConte/dokku-meteor.git meteor
.$ dokku meteor:settings your-app.com /home/dokku/your-app.com/meteor-settings.json
. Copy yoursettings.json
to/home/dokku/your-app.com/meteor-settings.json
.- The plugin loads the Meteor settings each time the app starts. If you need to restart the app manually use
dokku ps:restart your-app.com
.
- Make sure
- Install MongoDB:
$ dokku plugin:install https://github.com/dokku/dokku-mongo.git mongo
.$ dokku mongo:create your-app
.$ dokku mongo:link your-app your-app.com
.
- Set the app's URL:
- Now push again from your machine:
$ git push dokku master
. The app should be deployed now.
- Clone or download the source code:
$ git clone https://github.com/nunof07/meteor-movielist.git
. - Change to the project directory.
- Add git remote:
$ git remote add dokku dokku@your-host.com:your-app.com
. - Push to Dokku:
$ git push dokku master
. You should see an error at this point. - In your server where you have Dokku installed:
- Create a build argument:
dokku docker-options:add your-app.com build '--build-arg METEOR_SETTINGS={"public":{"forbidClientAccountCreation":"true"},"private":{"tmdb":"...TMDb_key_here..."}}'
.- Make sure
METEOR_SETTINGS
has no whitespace and that it's still valid JSON.
- Make sure
- Install MongoDB:
$ dokku plugin:install https://github.com/dokku/dokku-mongo.git mongo
.$ dokku mongo:create your-app
.$ dokku mongo:link your-app your-app.com
.
- Create a build argument:
- Now push again from your machine:
$ git push dokku master
. The app should be deployed now.