[WIKI] как я развернул parse-server и parse-dashboard на Mac с помощью SSL
я использовал синтаксический сервер с первого дня он получает открытый исходный код на гитхабсначала было очень сложно понять как он работает и как его развернуть а теперь спустя почти 2 года развёртывания этого офигенного сервера на нескольких Mac-серверы я делюсь своими знаниями о том, как я могу получить это простым способом.
Требования
доморощенный (установить из)
может про (проверено на версии 4.3)
ssl сертификат я использовал бесплатный 3-месячный сертификат, предоставленный комфортный через не забудьте получить csr и ключ, если они сгенерированы онлайн, это важно для может про
NodeJS установить с помощью следующей команды в вашем терминале
brew install nodejs
- MongoDB установить с помощью следующей команды в вашем терминале
brew install mongodb
Настройте MongoDB с помощью — auth (аутентификация)
- создайте папку /data/db для сохранения данных mongodb (вы можете изменить ее на любой другой каталог)
sudo mkdir -p /data/db
- откройте терминал и выполните следующую команду, чтобы запустить экземпляр mongod
sudo mongod --dbpath /data/db
- если он не запустился, вы должны остановить службу mongodb с помощью brew
brew services stop mongodb
sudo mongod --dbpath /data/db
- как только он запустится, откройте новую вкладку в терминале и запустите новую оболочку mongo
mongo
- создать нового пользователя-администратора (ниже информация является демонстрационной)
use admin
db.createUser(
{
user: "imAdmin",
pwd: "admin1234",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
- закрыть оболочку монго с помощью ctrl+c
- закрыть экземпляр mongod с помощью ctrl+c
- на этот раз снова запустить экземпляр mongod с авторизацией
sudo mongod --auth --dbpath /data/db
- как только он запустится, откройте новую вкладку в терминале и запустите новую оболочку mongo
mongo
- теперь аутентифицируйте пользователя-администратора
use admin
db.auth("imAdmin", "admin1234")
- давайте создадим пользователя parse_server и базу данных
use parse_db
db.createUser(
{
user: "parseUser",
pwd: "parse1234",
roles: [ { role: "readWrite", db: "parse_db" } ]
}
)
- теперь это сделано, теперь mongodb работает правильно с аутентификацией
Настройте mamp pro с вашим ssl-сертификатом
открыть mamp pro и добавить новый хост
рисунок 1.1настройте свой IP-адрес и порт ssl (убедитесь, что ваш порт 443 )
рисунок 1.2добавьте свой ssl-сертификат и его ключ, пакет (цепочка сертификатов — это ваш ca-пучок файл )
рисунок 1.3
Настройка parse-server-example и приборной панели
- клон пример сервера синтаксического анализа
git clone ~/server
- перейдите в каталог сервера и сначала установите зависимости, а затем установите синтаксический анализ
cd ~/server
npm install
npm install --save parse-dashboard
rather than
- внутри Дополнительные параметры директивы
: поле вставьте следующий код (измените псевдоним сервера и другие значения в соответствии с вашими настройками)
ServerName ParseServer
ServerAlias domain_name.com
SSLEngine on
SSLProxyEngine On
ProxyRequests Off
ProxyPass /parse
ProxyPassReverse /parse
ProxyPass /dashboard
ProxyPassReverse /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 || '', // 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": '', // 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_db который мы создали рано
- мы добавили Идентификатор приложения а также Отмычка
- мы добавили URL-адрес сервера на наш новый URL-адрес сервера с ( https ) и без порта 1337
- мы создали ParseDashboard Экземпляр с конфигурациями, которые у нас есть из Парсесервер.
- мы устанавливаем Имя приложения для нашего приложения и перевести приложение в состояние разработки, отключив производство ценность
- мы создали ParseDashboard пользователь с правами администратора, который будет получать доступ к панели управления через свою систему аутентификации.
ПРИМЕЧАНИЕ
если вам это нужно без SSL (нужно поменять 443 порт в 80 в МАМП ПРО ) и заменить ( https ) до => ( http ) в твоей ~/сервер/index.js файлы