Giter Club home page Giter Club logo

docker-parse-server's Introduction

Docker ❤ Parse

Docker Pulls Docker Stars Docker Tag License Travis CI Gitter Chat

☁️ One-Click Deploy

Deploy Deploy to Azure Deploy to AWS Deploy to Scalingo Deploy to Docker Cloud

⭐ Features

  • Parse Server with MongoDB
  • Parse Cloud Code via git with auto rebuild
  • Parse Push Notification : iOS, Android
  • Parse Live Query
  • Parse Dashboard
  • Tested Docker Image
  • Deploy with Docker
  • Deploy with Docker Compose
  • Deploy with one click
  • GraphQL support GRAPHQL_SUPPORT=true, GRAPHQL_SCHEMA=YOUR_SCHEMA_URL (default to ./cloud/graphql/schema.js)

📺 Overview

Parse Server Diagram

🙈 Sneak Preview

Screencast

🚀 Deployments

Note

📎 Deploy with Docker

$ docker run -d -p 27017:27017 --name mongo mongo

$ docker run -d                                \
             -e APP_ID=${APP_ID}         \
             -e MASTER_KEY=${MASTER_KEY} \
             -p 1337:1337                      \
             --link mongo                      \
             --name parse-server               \
             yongjhih/parse-server

$ docker run -d                                \
             -p 2022:22                        \
             --volumes-from parse-server       \
             --name parse-cloud-code-git       \
             yongjhih/parse-server:git

# Test parse-server
$ curl -X POST \
  -H "X-Parse-Application-Id: {appId}" \
  -H "Content-Type: application/json" \
  -d '{}' \
  http://localhost:1337/parse/functions/hello

$ docker run -d \
             -e APP_ID=${APP_ID}         \
             -e MASTER_KEY=${MASTER_KEY} \
             -e SERVER_URL=http://localhost:1337/parse \
             -p 4040:4040                      \
             --link parse-server               \
             --name parse-dashboard            \
             yongjhih/parse-dashboard

# The above command will asuume you will later create a ssh 
# and log into the dashboard remotely in production. 
#  However, to see the dashboard instanly using either
#  localhost:4040 or someip:4040(if hosted somewhere remotely)
# then you need to add extra option to allowInsecureHTTP like
# It is also required that you create username and password 
# before accessing the portal else you cant get in

$  docker run -d \
        -e PARSE_DASHBOARD_CONFIG='{"apps":[{"appId":"<appid>","serverURL":"http://localhost:1337/parse","masterKey":"<masterkey>","appName":"<appname>"}],"users":[{"user":"<username>","pass":"<password>"}]}' \
        -e PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1  \
        -p 4040:4040                      \
        --link parse-server               \
        --name parse-dashboard            \
        yongjhih/parse-dashboard

📎 Deploy with Docker Compose

$ wget https://github.com/yongjhih/docker-parse-server/raw/master/docker-compose.yml
$ APP_ID=YOUR_APP_ID MASTER_KEY=YOUR_MASTER_KEY PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1 SERVER_URL=http://localhost:1337/parse docker-compose up -d

Note

  • We use PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1 to allow insecure via development environment.
  • $ wget https://github.com/yongjhih/docker-parse-server/raw/master/docker-compose.yml -O - | APP_ID=YOUR_APP_ID MASTER_KEY=YOUR_MASTER_KEY docker-compose up -d -f - # not supported for docker-compose container

📎 Deploy to Cloud Services

⚡ Advance topics

🔥 Server Side Developments

How to push cloud code to server
Screencast - git

# This command wil create a SSH keys for you as
#  ~/.ssh/id_rsa.pub and another private key.
# you can leave the options balnk by pressing enter.

$ ssh-keygen -t rsa

# If git container name is `parse-cloud-code-git`
$ docker exec -i parse-cloud-code-git ssh-add-key < ~/.ssh/id_rsa.pub

# port 2022, repo path is `/parse-cloud-code`
$ git clone ssh://git@localhost:2022/parse-cloud-code
$ cd parse-cloud-code
$ echo "Parse.Cloud.define('hello', function(req, res) { res.success('Hi, git'); });" > main.js
$ git add main.js && git commit -m 'Update main.js'
$ git push origin master

$ curl -X POST \
  -H "X-Parse-Application-Id: ${APP_ID}" \
  -H "Content-Type: application/json" \
  -d '{}' \
  http://localhost:1337/parse/functions/hello

📱 Client Side Developments

You can use the REST API, the JavaScript SDK, and any of our open-source SDKs:

📎 curl example

curl -X POST \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "Content-Type: application/json" \
  -d '{"score":1337,"playerName":"Sean Plott","cheatMode":false}' \
  http://localhost:1337/parse/classes/GameScore

curl -X POST \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "Content-Type: application/json" \
  -d '{}' \
  http://localhost:1337/parse/functions/hello

curl -H "X-Parse-Application-Id: YOUR_APP_ID" \
     -H "X-Parse-Master-Key: YOUR_MASTER_KEY" \
     -H "Content-Type: application/json" \
     http://localhost:1337/parse/serverInfo

📎 JavaScript example

Parse.initialize('YOUR_APP_ID','unused');
Parse.serverURL = 'https://whatever.herokuapp.com';
var obj = new Parse.Object('GameScore');
obj.set('score',1337);
obj.save().then(function(obj) {
  console.log(obj.toJSON());
  var query = new Parse.Query('GameScore');
  query.get(obj.id).then(function(objAgain) {
    console.log(objAgain.toJSON());
  }, function(err) {console.log(err); });
}, function(err) { console.log(err); });

📎 Android example

//in your application class

Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
        .applicationId("YOUR_APP_ID")
        .clientKey("YOUR_CLIENT_ID")
        .server("http://YOUR_SERVER_URL/parse/")   // '/' important after 'parse'
        .build());

  ParseObject testObject = new ParseObject("TestObject");
  testObject.put("foo", "bar");
  testObject.saveInBackground();

📎 iOS example

class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
        let configuration = ParseClientConfiguration {
            $0.applicationId = "YOUR_APP_ID"
            $0.clientKey = "YOUR_CLIENT_ID"
            $0.server = "http://YOUR_SERVER_URL/parse"
        }
        Parse.initializeWithConfiguration(configuration)
    }
}

📎 GraphQL

Run with GraphQL support.

GRAPHQL_SUPPORT=true APP_ID=YOUR_APP_ID MASTER_KEY=YOUR_MASTER_KEY SERVER_URL=http://localhost:1337/parse docker-compose up -d

Make sure ./cloud/graphql/schema.js is pushed to cloud code.
Then navigate to http://localhost:1337/graphql?query=%7B%0A%20%20hello%0A%7D%0A

👀 See Also

👍 Contributors & Credits

didierfranc ArnaudValensi gerhardsletten acinader kandelvijaya vitaminwater cleever katopz

docker-parse-server's People

Contributors

0zguner avatar abhilash1in avatar chainkite avatar corruptedbuffer avatar drew-gross avatar euklid avatar fabiocav avatar ftomasi avatar gerhardsletten avatar gfosco avatar gitter-badger avatar hellslicer avatar hramos avatar justinbeckwith avatar kandelvijaya avatar katopz avatar magnusja avatar moaazsidat avatar moflo avatar peterdotjs avatar pthongtaem avatar rogerhu avatar rorz avatar ryanlelek avatar vitaminwater avatar vmlinz avatar walkerlee avatar whollacsek avatar yongjhih avatar zeliard91 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.