Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

380 Commits

Repository files navigation

Docker ❤ Parse

Docker PullsDocker StarsDocker TagLicenseTravis CIGitter Chat

☁️ One-Click Deploy

DeployDeploy to AzureDeploy to AWSDeploy to ScalingoDeploy 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 APP_ID=$(APP_ID)\
-e MASTER_KEY=$(MASTER_KEY)\
-e SERVER_URL=http://localhost:1337/parse \
-e PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1 \
-e USER1=yourUsername \
-e USER1_PASSWORD=yourUsernamesPassword \
-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

didierfrancArnaudValensigerhardslettenacinaderkandelvijayavitaminwatercleeverkatopz

About

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

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages