Despliega Parse Server en Pethost con un clic
Un backend de código abierto para apps: API de base de datos, usuarios, archivos, cloud code y push, con Parse Dashboard
Qué pasa
- Inicias sesión en Pethost o creas una cuenta, con una passkey, GitHub o Google.
- ¿Aún no tienes máquina? Eliges un plan y te preparamos una. El enlace espera en tu navegador hasta que esté lista.
- Nuevo proyecto se abre en la app. Rellenas lo que pide y haces clic en Crear proyecto: Contraseña de administrador.
- En un par de minutos la app está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar para ella, y sus datos entran en el backup de cada noche.
- Es un proyecto como cualquier otro: su compose.yaml, su .env, sus logs y un terminal están en el panel, y tu agente puede cambiarlo, volver a una versión anterior o restaurarlo.
Primeros pasos
El panel está en https://parse-server.sam.pethost.app: entra como admin con la contraseña de administrador que indicaste. Las apps usan https://parse-server.sam.pethost.app/parse como URL del servidor, con el APP_ID del .env del proyecto; el MASTER_KEY de ahí es solo para servidores. MongoDB forma parte del proyecto.
Qué ejecuta
La plantilla es este compose.yaml y las variables que escribe en el .env del proyecto. Pethost ejecuta el archivo tal como está escrito.
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: