Українська
Почати
← Усі шаблони

Spree Commerce на Pethost в один клік

Платформа електронної комерції з відкритим кодом: товари, замовлення, платежі й headless API для будь-якої вітрини

Що відбудеться

  1. Ви входите в Pethost або створюєте акаунт — з ключем доступу, через GitHub або Google.
  2. Машини ще немає? Ви обираєте тариф, і ми готуємо машину для вас. Посилання чекає у вашому браузері, доки машина не буде готова.
  3. Вікно «Новий проєкт» відкривається на цьому застосунку. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Електронна пошта, Пароль адміністратора.
  4. За хвилину-дві застосунок працює за власною адресою з HTTPS. Його секрети створюються випадково, а дані потрапляють у щонічний бекап.
  5. Це проєкт як будь-який інший: його compose.yaml, .env, логи й термінал — у панелі, а ваш агент може його змінити, відкотити або відновити.

Перші кроки

Увійдіть на https://spree.sam.pethost.app/admin із поштою й паролем адміністратора, які ви вказали: Spree створює цього адміністратора під час першого запуску. Там налаштовуються товари, способи оплати й доставка.

Що запускається

Шаблон — це цей compose.yaml і змінні, які він записує в .env проєкту. Pethost запускає файл так, як його написано.

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: