Автор оригинала: Mokhlas Hussein.
Я использовал Parse-Server С первого дня он получит открытый источник на Github Сначала было очень трудно понять, как он работает и как развернуть его, а теперь после почти 2 года развертывания этого потрясающего сервера на нескольких Mac Servers Я разделяю свои знания о том, как я получаю это простым способом.
Требования
Домашний вид (Установите из https://brew.sh)
MAMP PRO (проверено на версии. 4.3)
SSL-сертификат Я использовал бесплатный сертификат 3 месяца, предоставленный Comodo через https://www.gogetssl.com/domain-validation/comod-free-ssl/Не забудьте получить CSR и ключ, если он сгенерирован в Интернете, это важно для Mainp Pro.
Nodejs Установите, используя следующую команду в вашем терминале
brew install nodejs
- Монгодб Установите, используя следующую команду в вашем терминале
brew install mongodb
Настройка MongoDB с – Auth (аутентификация)
- Создать/data/db папка для сохранения данных mongodb (вы можете изменить его в любой другой каталог)
sudo mkdir -p /data/db
- Откройте терминал и запустите следующую команду, чтобы начать экземпляр Mongod
sudo mongod --dbpath /data/db
- Если не удалось запустить, вы должны остановить услугу MongoDB
brew services stop mongodb sudo mongod --dbpath /data/db
- Как только он запустит открытую новую вкладку в клемме и запустите новую оболочку Mongo
mongo
- Создать новый admin user (ниже info demo)
use admin db.createUser( { user: "imAdmin", pwd: "admin1234", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
- Закрыть оболочку Mongo с помощью Ctrl + C
- Закрыть экземпляр Mongod с использованием Ctrl + C
- Начните снова Mongod экземпляра с авторизацией на этот раз
sudo mongod --auth --dbpath /data/db
- Как только он запустит открытую новую вкладку в клемме и запустите новую оболочку Mongo
mongo
- Теперь аутентифицировать пользователя администратора
use admin db.auth("imAdmin", "admin1234")
- Давайте создадим пользователя PARSE_SERVER и DB
use parse_db db.createUser( { user: "parseUser", pwd: "parse1234", roles: [ { role: "readWrite", db: "parse_db" } ] } )
- теперь это сделано, у нас сейчас Mongodb работает правильно с аутентификацией
Setup Mamp Pro с вашим сертификатом SSL
Откройте mamp Pro и добавьте новый хост Рисунок 1.1.
Установите свой IP и ваш порт SSL (будьте уверены, что ваш порт – 443 ) Рисунок 1.2.
Добавьте свой сертификат SSL и его ключ, пакет (сеть сертификатов – ваш CA-Bundle файл) Рисунок 1.3.
Настройка Parse-Server-пример и приборная панель
- клон пример анализа
git clone https://github.com/parse-community/parse-server-example.git ~/server
- Перейдите в каталог серверов и сначала установите зависимости, затем установите приборная панель
cd ~/server npm install npm install --save parse-dashboard
Вернуться к MAMP PRO и нажмите Вкладка Apache (выбранный хост) Рисунок 1.4.
Теперь мы прокси 1337 и 4040 портов до 443 порта для доступа к серверу разбора и приборной панели через пример:
https://domain_name.com/parse rather than https://domain_name.com:1337/parse
- внутри Дополнительные параметры для директивы
: Поле вставить следующий код (измените его псевдоним сервера и другие значения, чтобы соответствовать вашу настройку)
ServerName ParseServer ServerAlias domain_name.com SSLEngine on SSLProxyEngine On ProxyRequests Off ProxyPass /parse http://localhost:1337/parse ProxyPassReverse /parse http://localhost:1337/parse ProxyPass /dashboard http://localhost:4040/dashboard ProxyPassReverse /dashboard http://localhost:4040/dashboard ProxyPreserveHost On
- Теперь вернемся к ~/сервер/ папка и открыть index.js в любом текстовом редакторе и удалите все внутри него, затем поместите следующий код внутри него
// Example express application adding the parse-server module to expose Parse // compatible API routes. var express = require('express'); var ParseServer = require('parse-server').ParseServer; var path = require('path'); var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI; if (!databaseUri) { console.log('DATABASE_URI not specified, falling back to localhost.'); } var api = new ParseServer({ databaseURI: databaseUri || 'mongodb://parseUser:parse1234@localhost:27017/parse_db', cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', appId: process.env.APP_ID || 'rh864cs8df7sdsldfrh864cs8df7sdsldf', masterKey: process.env.MASTER_KEY || 'isfjsofghsifisfjsofghsif', //Add your master key here. Keep it secret! serverURL: process.env.SERVER_URL || 'https://domain_name.com/parse', // Don't forget to change to https if needed // liveQuery: { // classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions // } }); // Client-keys like the javascript key or the .NET key are not necessary with parse-server // If you wish you require them, you can set them as options in the initialization above: // javascriptKey, restAPIKey, dotNetKey, clientKey var app = express(); // Serve static assets from the /public folder app.use('/public', express.static(path.join(__dirname, '/public'))); // Serve the Parse API on the /parse URL prefix var mountPath = process.env.PARSE_MOUNT || '/parse'; app.use(mountPath, api); // Parse Server plays nicely with the rest of your web routes app.get('/', function(req, res) { res.status(200).send('I dream of being a website. Please star the parse-server repo on GitHub!'); }); // There will be a test page available on the /test path of your server url // Remove this before launching your app app.get('/test', function(req, res) { res.sendFile(path.join(__dirname, '/public/test.html')); }); var port = process.env.PORT || 1337; var httpServer = require('http').createServer(app); httpServer.listen(port, function() { console.log('parse-server-example running on port ' + port + '.'); }); // This will enable the Live Query real-time server ParseServer.createLiveQueryServer(httpServer); // Set up parse dashboard var dashboard = new ParseDashboard({ "apps": [{ "serverURL": 'https://domain_name.com/parse', // Not localhost "appId": 'rh864cs8df7sdsldfrh864cs8df7sdsldf', "masterKey": 'isfjsofghsifisfjsofghsif', "appName": "AppNameHere", "production": false, }], "users": [ { "user":"dashboardAdmin", "pass":"1234567890Asdfghj" } ], }, true); var dashApp = express(); // make the Parse Dashboard available at /dashboard dashApp.use('/dashboard', dashboard); // Parse Server plays nicely with the rest of your web routes dashApp.get('/', function(req, res) { res.status(200).send('Parse Dashboard App'); }); var httpServerDash = require('http').createServer(dashApp); httpServerDash.listen(4040, function() { console.log('dashboard-server running on port 4040.'); });
- В предыдущем коде мы подключаем Parse Server к Монгодб Используя нашу учетную запись администратора, которые имеют разрешение на ReadWrite на parse_db который мы создали рано
- Мы добавили AppID и Отмычка
- Мы добавили ServerURL на наш новый URL-адрес сервера с ( https ) и без 1337 порта
- Мы создали Parsedashboard Экземпляр с конфигурациями у нас есть из Parseserver Отказ
- Мы устанавливаем Appname Для нашего приложения и поставить приложение к статусу разработки, отключив Производство значение
- Мы создали Parsedashboard Пользователь admin, который будет получать доступ к приборной панели через систему аутентификации
ПРИМЕЧАНИЕ
Если вам это нужно без SSL (Вам нужно изменить 443 порт 80 в MAMP Pro ) и замените ( https ) к => ( http ) в вашем ~/сервер/index.js файлы