Code Monkey home page Code Monkey logo

parse-server's Introduction

Parse Server logo

Build Status Coverage Status npm version

Parse Server is an open source version of the Parse backend that can be deployed to any infrastructure that can run Node.js.

Parse Server works with the Express web application framework. It can be added to existing web applications, or run by itself.

Getting Started

We have provided a basic Node.js application that uses the Parse Server module on Express and can be easily deployed using any of the following buttons:

Parse Server + Express

You can also create an instance of Parse Server, and mount it on a new or existing Express website:

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();

// Specify the connection string for your mongodb database
// and the location to your Parse cloud code
var api = new ParseServer({
  databaseURI: 'mongodb://localhost:27017/dev',
  cloud: '/home/myApp/cloud/main.js', // Provide an absolute path
  appId: 'myAppId',
  masterKey: 'myMasterKey', // Keep this key secret!
  fileKey: 'optionalFileKey',
  serverURL: 'http://localhost:1337/parse' // Don't forget to change to https if needed
});

// Serve the Parse API on the /parse URL prefix
app.use('/parse', api);

app.listen(1337, function() {
  console.log('parse-server-example running on port 1337.');
});

Standalone Parse Server

Parse Server can also run as a standalone API server. You can configure Parse Server with a configuration file, arguments and environment variables.

To start the server:

npm start -- --appId MYAPP --masterKey MASTER_KEY --serverURL http://localhost:1337/parse.

To get more help for running the parse-server standalone, you can run:

$ npm start -- --help

The standalone API server supports loading a configuration file in JSON format:

$ npm start -- path/to/your/config.json

The default port is 1337, to use a different port set the PORT environment variable:

$ PORT=8080 npm start -- path/to/your/config.json

The standalone Parse Server can be configured using environment variables.

You can also install Parse Server globally:

$ npm install -g parse-server

Now you can just run $ parse-server from your command line.

Documentation

The full documentation for Parse Server is available in the wiki. The Parse Server guide is a good place to get started. If you're interested in developing for Parse Server, the Development guide will help you get set up.

Migrating an Existing Parse App

The hosted version of Parse will be fully retired on January 28th, 2017. If you are planning to migrate an app, you need to begin work as soon as possible. There are a few areas where Parse Server does not provide compatibility with the hosted version of Parse. Learn more in the Migration guide.

Configuration

The following options can be passed to the ParseServer object during initialization. Alternatively, you can use the PARSE_SERVER_OPTIONS environment variable set to the JSON of your configuration.

Basic options

  • databaseURI (required) - The connection string for your database, i.e. mongodb://user:[email protected]/dbname
  • appId (required) - The application id to host with this server instance
  • masterKey (required) - The master key to use for overriding ACL security
  • cloud - The absolute path to your cloud code main.js file
  • fileKey - For migrated apps, this is necessary to provide access to files already hosted on Parse.
  • facebookAppIds - An array of valid Facebook application IDs.
  • serverURL - URL which will be used by Cloud Code functions to make requests against.
  • push - Configuration options for APNS and GCM push. See the wiki entry.

Client key options

The client keys used with Parse are no longer necessary with Parse Server. If you wish to still require them, perhaps to be able to refuse access to older clients, you can set the keys at initialization time. Setting any of these keys will require all requests to provide one of the configured keys.

  • clientKey
  • javascriptKey
  • restAPIKey
  • dotNetKey

Advanced options

  • filesAdapter - The default behavior (GridStore) can be changed by creating an adapter class (see FilesAdapter.js)
  • databaseAdapter (unfinished) - The backing store can be changed by creating an adapter class (see DatabaseAdapter.js)
  • loggerAdapter - The default behavior/transport (File) can be changed by creating an adapter class (see LoggerAdapter.js)
  • enableAnonymousUsers - Defaults to true. Set to false to disable anonymous users.
  • allowClientClassCreation - Defaults to true. Set to false to disable client class creation.
  • oauth - Used to configure support for 3rd party authentication.
  • maxUploadSize - Defaults to 20mb. Max file size for uploads

Using environment variables

You may also configure the Parse Server using environment variables:

PARSE_SERVER_DATABASE_URI
PARSE_SERVER_CLOUD_CODE_MAIN
PARSE_SERVER_COLLECTION_PREFIX
PARSE_SERVER_APPLICATION_ID // required
PARSE_SERVER_MASTER_KEY // required
PARSE_SERVER_CLIENT_KEY
PARSE_SERVER_REST_API_KEY
PARSE_SERVER_DOTNET_KEY
PARSE_SERVER_JAVASCRIPT_KEY
PARSE_SERVER_DOTNET_KEY
PARSE_SERVER_FILE_KEY
PARSE_SERVER_FACEBOOK_APP_IDS // string of comma separated list
PARSE_SERVER_MAX_UPLOAD_SIZE
Configuring S3 Adapter

You can use the following environment variable setup the S3 adapter

S3_ACCESS_KEY
S3_SECRET_KEY
S3_BUCKET
S3_REGION
S3_BUCKET_PREFIX
S3_DIRECT_ACCESS

Contributing

We really want Parse to be yours, to see it grow and thrive in the open source community. Please see the Contributing to Parse Server guide.

parse-server's People

Contributors

allevo avatar codegefluester avatar dchest avatar drew-gross avatar flovilmart avatar gdeglin avatar gfosco avatar hramos avatar ilyadiallo avatar ks-simakov avatar ksaldana1 avatar marco129 avatar merowinger92 avatar nlutsenko avatar peterdotjs avatar prayagverma avatar r4zzz4k avatar rogerhu avatar sdf611097 avatar simonbengtsson avatar skinp avatar stephentuso avatar steven-supersolid avatar taylorstine avatar theill avatar tylerbrock avatar wangmengyan95 avatar wasnotrice avatar westhom avatar workslon avatar

Stargazers

 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.