docker-parse-server

by yongjhih

Provide docker images and docker stack for parse-server npm versions and latest commit

450 Stars 162 Forks Last release: Not found Apache License 2.0 368 Commits 47 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Docker ❤ Parse

Docker Pulls Docker Stars Docker Tag License Travis CI Gitter Chat

:cloud: One-Click Deploy

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

:star: Features

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

:tv: Overview

Parse Server Diagram

:seenoevil: Sneak Preview

Screencast

:rocket: Deployments

Note

:paperclip: 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":"","serverURL":"http://localhost:1337/parse","masterKey":"","appName":""}],"users":[{"user":"","pass":""}]}'
-e PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1
-p 4040:4040
--link parse-server
--name parse-dashboard
yongjhih/parse-dashboard

:paperclip: 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

:paperclip: Deploy to Cloud Services

:zap: Advance topics

:fire: Server Side Developments

How to push cloud code to server
Screencast - git ```sh

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://[email protected]: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 ```

:iphone: Client Side Developments

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

:paperclip: 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

:paperclip: 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); });

:paperclip: 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();

:paperclip: 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)
    }
}

:paperclip: GraphQL

Run with GraphQL support.

shell
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

:eyes: See Also

  • https://github.com/ParsePlatform/parse-server
  • http://blog.parse.com/announcements/introducing-parse-server-and-the-database-migration-tool/
  • https://parse.com/docs/server/guide#migrating
  • https://hub.docker.com/r/yongjhih/parse-server/
  • https://github.com/yongjhih/parse-cloud-code
  • https://hub.docker.com/r/yongjhih/parse-cloud-code/
  • https://medium.com/cowbear-coder/migration-of-parse-server-with-docker-part1-87034cc29978
  • https://github.com/yongjhih/docker-parse-dashboard
  • Docker ❤ Parse
  • DigitalOcean ❤ Parse

:thumbsup: Contributors & Credits

didierfranc ArnaudValensi gerhardsletten acinader kandelvijaya vitaminwater cleever katopz

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.