Skip to content

Latest commit

 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aesiron Logo

Aesiron

O Ferreiro de Apps Streamlit Standalone

Forgue, gerencie e orquestre múltiplos aplicativos Streamlit em containers Docker com uma única ferramenta.


⚡ Plug-and-Play (Instalação Rápida)

Você não precisa clonar este repositório para usar o Aesiron. Escolha uma das formas abaixo:

A. Via Python (Pip)

Instale diretamente do GitHub no seu ambiente Python:

pip install git+https://github.com/victorradael/aesiron.git

Agora o comando aesiron (ou seu alias mais curto, iron) estará disponível globalmente (ou no seu venv).

B. Via Docker (Sem Python local)

Se você tem Docker, pode usar a CLI sem instalar nada no seu host. (Recomendamos usar uma tag de versão específica, ex: :0.1.0, para maior estabilidade):

# Crie um alias para facilitar o uso (você pode escolher aesiron ou iron)
alias iron='docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/armory -e HOST_PWD=$(pwd) -e HOST_UID=$(id -u) -e HOST_GID=$(id -g) victorradael/aesiron:latest'

# Forjando um app
iron forge meu-app --port 8501

🚀 Como Funciona

O Aesiron gerencia um Arsenal (Armory): diretório atual (cwd) onde seus apps independentes são criados.

  1. Forjando um App:

    aesiron forge meu-dashboard --port 8501

    Isso cria a pasta ./meu-dashboard com tudo que o app precisa (Dockerfile, Compose, Makefile local).

  2. Orquestração Massiva:

    aesiron run          # Sobe TODOS os apps encontrados na pasta
    aesiron list         # Mostra quais apps estão rodando
    aesiron urls         # Exibe as URLs de acesso de todos os apps
    aesiron dns-setup    # Configura apenas esta maquina para resolver *.iron via /etc/hosts
    aesiron dns-reset    # Remove as entradas locais do Aesiron do /etc/hosts
  3. DNS da Rede Local: O Aesiron pode expor os apps por hostnames como http://meu-app.iron, desde que os dispositivos da sua rede usem o DNS da maquina onde o Aesiron esta rodando.

    Para configurar apenas a maquina atual sem alterar o DNS global do sistema:

    aesiron dns-setup

Arquitetura da Rede Interna

flowchart LR
    Cliente[Cliente na LAN]
    DNSLocal[Resolvedor local ou cliente configurado]
    DNS[Aesiron DNS\ndnsmasq :53]
    Gateway[Aesiron Gateway\nnginx :80]
    App1[app-aesiron-xpto\nStreamlit :8501]
    App2[app-aesiron-xpto2\nStreamlit :8502]

    Cliente -->|consulta xpto.iron| DNSLocal
    DNSLocal -->|usa DNS configurado| DNS
    DNS -->|responde IP LAN do host| Cliente
    Cliente -->|HTTP Host: xpto.iron| Gateway
    Gateway -->|proxy reverso| App1
    Cliente -->|HTTP Host: xpto2.iron| Gateway
    Gateway -->|proxy reverso| App2
Loading
  • dnsmasq responde qualquer *.iron com o IP LAN da maquina onde o Aesiron roda para clientes da rede que apontarem para esse DNS.
  • nginx recebe a requisicao HTTP e escolhe o app certo pelo hostname.
  • aesiron dns-setup nao troca o DNS global da maquina; ele escreve apenas entradas gerenciadas no /etc/hosts para os apps ativos.
  • os containers de DNS e gateway sao efemeros e so existem quando ha apps ativos para expor.
  • os arquivos em .aesiron-infra/ sao gerados dinamicamente e nao devem ser versionados.

🎯 Comandos da CLI

A CLI é auto-documentada. Para ver todos os comandos e opções disponíveis, basta rodar:

iron --help
iron <comando> --help

📁 Estrutura do Ecossistema

  • Ferreiro (CLI): A ferramenta que você instala para gerar e comandar.
  • Arsenal (Armory): Sua pasta de trabalho onde os apps gerados residem.
  • Apps Forjados: Cada app é autossuficiente (Docker + Makefile local).

🛠️ Desenvolvimento (Para Contribuidores)

Se você quer modificar a CLI do Aesiron:

  1. Clone o repositório: git clone ...
  2. Configure o ambiente de dev: make setup-dev
  3. Teste suas mudanças: source .venv/bin/activate && aesiron help

🕸️ Rede & Comunicação

Todos os apps compartilham a rede aesiron-net, permitindo comunicação direta entre eles e outros serviços Docker.

About

aesiron is a tool that helps developers rapidly build and iterate on application prototypes while applying modern software engineering practices.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages