Português
Começar
← Todos os templates

Faça o deploy de Spree Commerce no Pethost com um clique

Uma plataforma de e-commerce de código aberto: produtos, pedidos, pagamentos e uma API headless para qualquer loja

O que acontece

  1. Você entra no Pethost ou cria uma conta, com uma passkey, GitHub ou Google.
  2. 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.
  3. Novo projeto abre no app. Você preenche o que ele pede e clica em Criar projeto: E-mail, Senha do administrador.
  4. 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.
  5. É 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

Entre em https://spree.sam.pethost.app/admin com o e-mail e a senha de administrador que você informou: o Spree cria esse administrador na primeira inicialização. Produtos, formas de pagamento e frete são configurados lá.

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:
  spree:
    image: ghcr.io/spree/spree:5.6.1
    restart: unless-stopped
    environment:
      DATABASE_URL: postgres://spree:${POSTGRES_PASSWORD}@postgres:5432/spree_production
      SECRET_KEY_BASE: ${SECRET_KEY_BASE}
      ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY: ${ENCRYPTION_PRIMARY_KEY}
      ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY: ${ENCRYPTION_DETERMINISTIC_KEY}
      ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT: ${ENCRYPTION_KEY_DERIVATION_SALT}
      SPREE_HOST: ${HOST}
      RAILS_HOST: ${HOST}
      # The seed makes the first admin from these instead of a stock account.
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    volumes:
      - storage:/rails/storage
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:18-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: spree
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: spree_production
    volumes:
      - db:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U spree -d spree_production"]
      interval: 5s
      timeout: 5s
      retries: 10

volumes:
  storage:
  db: