---
title: "Despliega Sure en Pethost con un clic"
description: "Una app de finanzas personales, fork de Maybe Finance. Una plantilla para Pethost: en un par de minutos la app está en marcha en tu máquina, con HTTPS en su propia dirección y backups cada noche."
---

[← Todas las plantillas](https://pethost.dev/es/templates/)

# Despliega Sure en Pethost con un clic

Una app de finanzas personales, fork de Maybe Finance

[Desplegar en Pethost](https://console.pethost.dev/?template=sure)

## Qué pasa

1. Inicias sesión en Pethost o creas una cuenta, con una passkey, GitHub o Google.
2. ¿Aún no tienes máquina? Eliges un plan y te preparamos una. El enlace espera en tu navegador hasta que esté lista.
3. Nuevo proyecto se abre en la app, y haces clic en Crear proyecto.
4. 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.
5. 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

Abre la dirección y regístrate: la primera cuenta es la del administrador. Hazlo enseguida: hasta entonces la página está abierta para cualquiera que tenga la dirección. Luego cierra el registro en Settings > Self-Hosting > Onboarding.

## 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.

```
# The web server and the worker are one image with one environment.
x-app: &app
  image: ghcr.io/we-promise/sure:0.7.5-hotfix.2
  restart: unless-stopped
  environment:
    SELF_HOSTED: "true"
    # TLS ends at the machine's proxy: the app takes every request as HTTPS and redirects none.
    RAILS_FORCE_SSL: "false"
    RAILS_ASSUME_SSL: "true"
    APP_DOMAIN: ${APP_DOMAIN}
    SECRET_KEY_BASE: ${SECRET_KEY_BASE}
    DB_HOST: db
    DB_PORT: "5432"
    POSTGRES_USER: sure_user
    POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    POSTGRES_DB: sure_production
    REDIS_URL: redis://redis:6379/1
  volumes:
    - app-storage:/rails/storage
  depends_on:
    db:
      condition: service_healthy
    redis:
      condition: service_healthy

services:
  web:
    <<: *app

  worker:
    <<: *app
    command: bundle exec sidekiq

  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: sure_user
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: sure_production
    volumes:
      - postgres-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 30s

  redis:
    image: redis:8-alpine
    restart: unless-stopped
    volumes:
      - redis-data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 5s
      retries: 5

volumes:
  app-storage:
  postgres-data:
  redis-data:
```

[compose.yaml](https://pethost.dev/templates/sure/compose.yaml)[Verla en GitHub](https://github.com/pethost-dev/templates/tree/main/sure)

Pethost · Stephan Gomer · NIP 1133096755

[Plantillas](https://pethost.dev/es/templates/) [Sobre nosotros](https://pethost.dev/about/) [Blog](https://pethost.dev/blog/) [Términos](https://pethost.dev/terms/) [Privacidad](https://pethost.dev/privacy/) [Reembolsos](https://pethost.dev/refunds/) [API](https://pethost.dev/docs/api/) [CLI](https://pethost.dev/docs/cli/) [Plugin](https://github.com/pethost-dev/plugin) [support@pethost.dev](mailto:support@pethost.dev)
