Faça o deploy de Parse Server no Pethost com um clique
Um backend open source para apps: API de banco de dados, usuários, arquivos, cloud code e push, com o Parse Dashboard
O que acontece
- Você entra no Pethost ou cria uma conta, com uma passkey, GitHub ou Google.
- Ainda não tem máquina? Você escolhe um plano, e nós preparamos uma para você. O link espera no seu navegador até ela ficar pronta.
- Novo projeto abre no app. Você preenche o que ele pede e clica em Criar projeto: Senha do administrador.
- Em um ou dois minutos o app está no ar no próprio endereço com HTTPS. Os segredos dele são gerados ao acaso, e os dados vão para o backup noturno.
- É um projeto como qualquer outro: o compose.yaml, o .env, os logs e um terminal ficam no painel, e seu agente pode alterá-lo, fazer rollback ou restaurá-lo.
Primeiros passos
O painel fica em https://parse-server.sam.pethost.app: entre como admin com a senha de administrador que você informou. Os apps usam https://parse-server.sam.pethost.app/parse como URL do servidor, com o APP_ID do .env do projeto; o MASTER_KEY de lá é só para servidores. O MongoDB faz parte do projeto.
O que roda
O template é este compose.yaml e as variáveis que ele grava no .env do projeto. O Pethost roda o arquivo exatamente 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: