Parse Server mit einem Klick auf Pethost deployen
Ein Open-Source-Backend für Apps: Datenbank-API, Benutzer, Dateien, Cloud Code und Push, mit dem Parse Dashboard
Was passiert
- Du meldest dich bei Pethost an oder legst ein Konto an, mit Passkey, GitHub oder Google.
- Noch keine Maschine? Du wählst einen Tarif, und wir bereiten eine für dich vor. Der Link wartet in deinem Browser, bis sie bereit ist.
- „Neues Projekt“ öffnet sich bei der App. Du füllst aus, was sie braucht, und klickst auf „Projekt erstellen“: Admin-Passwort.
- In ein, zwei Minuten läuft die App unter eigener Adresse mit HTTPS. Ihre Secrets werden zufällig für sie erzeugt, und ihre Daten sind im nächtlichen Backup.
- Sie ist ein Projekt wie jedes andere: compose.yaml, .env, Logs und ein Terminal findest du im Panel, und dein Agent kann sie ändern, zurückrollen oder wiederherstellen.
Erste Schritte
Das Dashboard liegt unter https://parse-server.sam.pethost.app: Melde dich als admin mit dem angegebenen Admin-Passwort an. Apps nutzen https://parse-server.sam.pethost.app/parse als Server-URL, mit der APP_ID aus der .env des Projekts; der MASTER_KEY dort ist nur für Server. MongoDB gehört zum Projekt.
Was läuft
Die Vorlage ist diese compose.yaml und die Variablen, die sie in die .env des Projekts schreibt. Pethost führt die Datei so aus, wie sie geschrieben ist.
services:
# One address for both: the API under /parse, the dashboard at the root, as the dashboard calls
# the API from the browser.
proxy:
image: nginx:1-alpine
restart: unless-stopped
configs:
- source: nginx
target: /etc/nginx/nginx.conf
parse-server:
image: parseplatform/parse-server:9.10.4
restart: unless-stopped
environment:
PARSE_SERVER_APPLICATION_ID: ${APP_ID}
PARSE_SERVER_MASTER_KEY: ${MASTER_KEY}
PARSE_SERVER_DATABASE_URI: mongodb://parse:${MONGO_PASSWORD}@mongo:27017/parse?authSource=admin
PARSE_SERVER_MOUNT_PATH: /parse
PARSE_SERVER_URL: http://localhost:1337/parse
PARSE_PUBLIC_SERVER_URL: ${URL}/parse
# The dashboard sends the master key from the person's browser, so it is let in from any
# address; it is shown only after the dashboard's sign-in.
PARSE_SERVER_MASTER_KEY_IPS: 0.0.0.0/0,::0
# The image's own volumes: Cloud Code (cloud/main.js) and the configuration.
volumes:
- cloud:/parse-server/cloud
- config:/parse-server/config
depends_on:
mongo:
condition: service_healthy
dashboard:
image: parseplatform/parse-dashboard:9.2.0
restart: unless-stopped
environment:
PARSE_DASHBOARD_SERVER_URL: ${URL}/parse
PARSE_DASHBOARD_APP_ID: ${APP_ID}
PARSE_DASHBOARD_MASTER_KEY: ${MASTER_KEY}
PARSE_DASHBOARD_APP_NAME: Parse
PARSE_DASHBOARD_USER_ID: admin
PARSE_DASHBOARD_USER_PASSWORD: ${ADMIN_PASSWORD}
PARSE_DASHBOARD_COOKIE_SESSION_SECRET: ${SESSION_SECRET}
# HTTPS ends at the machine's proxy; the dashboard signs in only over it.
PARSE_DASHBOARD_TRUST_PROXY: "1"
mongo:
image: mongo:8.0
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: parse
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
volumes:
- db:/data/db
- configdb:/data/configdb
healthcheck:
test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping').ok"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
configs:
nginx:
content: |
events {}
http {
client_max_body_size 50m;
proxy_http_version 1.1;
proxy_set_header Host $$host;
proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $$http_x_forwarded_proto;
# Names are looked up per request, so the proxy starts before the other two answer.
resolver 127.0.0.11 valid=5s;
server {
listen 80;
set $$api parse-server:1337;
set $$dashboard dashboard:4040;
location /parse {
proxy_pass http://$$api;
}
location / {
proxy_pass http://$$dashboard;
}
}
}
volumes:
cloud:
config:
db:
configdb: