DeployAlly

Plataforma de deployment automatizado para aplicações containerizadas. Descreva o que você quer rodar num arquivo declarativo, execute um comando e tenha containers saudáveis em produção — com TLS, healthchecks, dependências resolvidas e secrets gerados.

Visão Geral

Aspecto Detalhe
Tipo SaaS + CLI Tool
Linguagens Rust (CLI), Python (Backend), React (Frontend)
Status Production
Templates publicados 11 (memos, uptime-kuma, vaultwarden, mariadb, mysql, postgresql, redis, n8n, wordpress, postal, traefik)
Archetypes 6 (application, asset, static, worker, multi_component_saas, network_appliance)

O que é o DeployAlly

DeployAlly resolve três problemas ao mesmo tempo:

  • Catálogo curado de templates: cada serviço (banco, app, proxy) é declarado num template versionado, testado e publicado.
  • Deploy declarativo: o CLI lê o template, faz wizard de inputs, gera secrets, resolve dependências (banco, cache) e sobe os containers.
  • Auto-provisão de dependências: se sua app precisa de MySQL e não existe nenhum rodando, o DeployAlly sobe um automaticamente — sem você precisar orquestrar manualmente.

Como Funciona

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Template  │ ──▶ │   Wizard    │ ──▶ │   Deploy    │
│   (YAML)    │     │  (inputs +  │     │ (containers │
│             │     │  secrets)   │     │  + Traefik) │
└─────────────┘     └─────────────┘     └──────┬──────┘
                                               │
                                        ┌──────▼──────┐
                                        │ Auto-prov.  │
                                        │ de assets   │
                                        └─────────────┘
  1. Template: declara imagem, inputs, secrets, rotas HTTP, healthcheck, storage e dependências (needs).
  2. Wizard: pergunta apenas o que falta (domain, e-mail admin, etc.) e gera o resto (senhas hex, tokens UUID).
  3. Deploy: aplica defaults do archetype, resolve referências da Reflang (${input.X}, ${secrets.X}, ${needs.X}), sobe containers, registra labels do Traefik, espera ficar saudável.
  4. Auto-provision: se a app declara needs: [{ class: mysql, ... }] e nenhum MySQL está rodando, o deployer sobe um automaticamente com --provision-missing-assets.

Templates Disponíveis

Applications

Template Descrição
memos Notas pessoais com sync
uptime-kuma Monitoramento de uptime
vaultwarden Servidor Bitwarden self-hosted
n8n Automação de workflows
wordpress CMS para sites e blogs
postal Servidor SMTP completo (multi-component)

Assets

Template Descrição
mariadb Banco relacional MariaDB
mysql Banco relacional MySQL
postgresql Banco relacional PostgreSQL
redis Cache e message broker

Network

Template Descrição
traefik Ingress / reverse proxy com TLS automático

Arquitetura

┌─────────────────────────────────────────────────────────┐
│                      Usuário                            │
└─────────────────────┬───────────────────────────────────┘
                      │
        ┌─────────────┴─────────────┐
        ▼                           ▼
┌───────────────┐           ┌───────────────┐
│   Dashboard   │           │   CLI         │
│   (React)     │           │   (Rust)      │
└───────┬───────┘           └───────┬───────┘
        │                           │
        └───────────┬───────────────┘
                    ▼
            ┌───────────────┐
            │   API (Flask) │
            │   + MySQL     │
            └───────┬───────┘
                    │
        ┌───────────┴───────────┐
        ▼                       ▼
┌───────────────┐       ┌───────────────┐
│   Servidor 1  │       │   Servidor N  │
│   + Docker    │       │   + Docker    │
└───────────────┘       └───────────────┘

Componentes

Componente Descrição
CLI Binário Rust (static musl, x86_64 + aarch64). Wizard de inputs, deploy local, auto-update.
API Backend Flask + MySQL. Catálogo de templates, manifests, multi-tenant.
Dashboard React. Visualização do catálogo, library de instalações.

Quick Start

# 1. Instalar o CLI
curl -fsSL https://get.deployally.com/init.sh | sudo bash

# 2. Deploy de um app com tudo automático
deployally deploy --species memos \
  --instance-uid memos-001 \
  --input WEB_HOSTNAME=memos.exemplo.com \
  --apply

Pronto. O container fica disponível em https://memos.exemplo.com com TLS automático.

Requisitos de Sistema

Servidor de Destino

  • Linux (Ubuntu 20.04+, Debian 11+, RHEL 8+)
  • Docker 20.10+
  • Traefik rodando (ou template traefik deploy-ado primeiro)
  • 1 GB RAM mínimo

CLI Local

  • Linux x86_64 ou aarch64 (binário static, zero dependências)

Próximos Passos

  1. Instalação e Primeiro Deploy — instale o CLI e suba memos em 5 minutos
  2. Reflang Reference — sintaxe completa da linguagem de template
  3. Referência CLI — todos os comandos
  4. Integração com API — uso programático (restrito)