Ferramentas e operações

Auto-hospedagem

Execute o Ephemeral na sua própria conta da AWS.

Uma instalação auto-hospedada executa o mecanismo do Ephemeral e o painel de execução em um host que você controla, com workers em microVMs na sua própria conta da AWS e o seu próprio provedor de modelos. Você recebe uma imagem Docker e a sua documentação; a imagem exporta todos os outros arquivos de que você precisa. Ela exige uma licença de implantação do Ephemeral.

O que você executa

ComponenteOnde
API do mecanismo e painel de execuçãoContêiner app de ephemer.al/ephemeral/self-hosted no seu host
PostgreSQLUm contêiner no mesmo host, acessível apenas pela aplicação
CaddyServe HTTPS nas portas 80 e 443 e roteia /v1 para o mecanismo
WorkersmicroVMs do AWS Lambda na sua conta da AWS, uma por execução, sem acesso à internet
Chamadas ao modeloSeu endpoint de inferência compatível com a OpenAI
Validação da licençahttps://ephemer.al, na inicialização e enquanto as execuções são iniciadas

O site do cliente, as contas e o faturamento não fazem parte de uma instalação auto-hospedada, nem o código-fonte. As pessoas entram no painel com uma chave de API do mecanismo.

A imagem contém o guia completo do operador. As etapas abaixo o resumem; siga o guia para ver os comandos exatos, a saída esperada, as atualizações, os backups e a solução de problemas:

Terminal
docker run --rm ephemer.al/ephemeral/self-hosted:VERSION setup docs > SELF-HOSTING.md

Antes de começar

  • Docker com Docker Compose 2.24 ou mais recente, e AWS CLI v2 com o plugin Session Manager.
  • Uma conta da AWS em uma região com microVMs do Lambda e permissão para criar uma stack do CloudFormation com funções do IAM.
  • Um nome de domínio que você possa apontar para o host.
  • Um endpoint de inferência compatível com a OpenAI e a respectiva chave de API.
  • Um direito de uso (entitlement) para a sua organização. O Ephemeral o concede após um acordo; veja as licenças de implantação.

Instalar

  1. Registre a instalação

    No portal do cliente, abra Implantações e registre esta instalação com um nome, como production-eu. O Ephemeral cria o ID de máquina e o token da licença. Escolha Baixar arquivo da licença para guardar o token, o ID de máquina e o ID da implantação; o token é exibido uma única vez.

  2. Baixe a imagem

    Entre no registry com o ID da implantação como nome de usuário e o token da licença como senha e depois baixe uma versão. As versões não têm o v inicial.

    Terminal
    export EPHEMERAL_VERSION=0.1.0
    read -rs LICENSE_TOKEN
    printf '%s' "$LICENSE_TOKEN" | docker login ephemer.al -u dep_YOUR_DEPLOYMENT_ID --password-stdin
    docker pull ephemer.al/ephemeral/self-hosted:$EPHEMERAL_VERSION
  3. Exporte os arquivos da instalação

    Terminal
    mkdir -p ephemeral && cd ephemeral
    docker run --rm --user "$(id -u):$(id -g)" -v "$PWD:/out" \
      ephemer.al/ephemeral/self-hosted:$EPHEMERAL_VERSION setup all /out
    ArquivoFinalidade
    compose.yamlPostgreSQL, a aplicação e o Caddy, fixados nesta versão
    compose.evaluation.yamlOverride para testar em um computador, sem a AWS
    CaddyfileRotas de entrada
    .envConfiguração com segredos recém-gerados. Uma exportação posterior nunca a sobrescreve
    ephemeral-aws.yamlTemplate do CloudFormation para os recursos da AWS
    ephemeral-worker-VERSION.zipO worker compilado que a AWS incorpora à imagem da microVM
    SELF-HOSTING.mdO guia do operador
  4. Crie os recursos da AWS

    Envie o ZIP do worker para um bucket S3 privado na sua conta e depois crie a stack. Ela cria uma VPC com uma sub-rede isolada para os workers, um firewall de DNS, a imagem da microVM e o conector de rede, um bucket de armazenamento criptografado, a função do IAM de privilégio mínimo do host e, por padrão, um host Amazon Linux t4g.small com um Elastic IP e um volume de dados criptografado. A criação da imagem do worker leva de 15 a 30 minutos, e a stack cria recursos cobrados.

    Terminal
    aws s3 cp "ephemeral-worker-$EPHEMERAL_VERSION.zip" "s3://YOUR_ARTIFACT_BUCKET/"
    aws cloudformation create-stack --stack-name ephemeral \
      --template-body file://ephemeral-aws.yaml --capabilities CAPABILITY_IAM \
      --parameters ParameterKey=Domain,ParameterValue=ephemeral.example.com \
        ParameterKey=WorkerArtifactBucket,ParameterValue=YOUR_ARTIFACT_BUCKET \
        ParameterKey=WorkerArtifactKey,ParameterValue="ephemeral-worker-$EPHEMERAL_VERSION.zip" \
        ParameterKey=HostImageId,ParameterValue=AL2023_ARM64_AMI
    aws cloudformation wait stack-create-complete --stack-name ephemeral
    aws cloudformation describe-stacks --stack-name ephemeral \
      --query "Stacks[0].Outputs[?OutputKey=='EngineEnvironment'].OutputValue" --output text | tr ' ' '\n'

    O último comando exibe as configurações da AWS para o mecanismo. Aponte o registro DNS A do seu domínio para a saída da stack HostPublicIp.

  5. Configure o host

    Conecte-se com aws ssm start-session --target e a saída da stack HostInstanceId, depois repita o login no registry e a exportação em /srv/ephemeral/install. Edite estas entradas em .env:

    ConfiguraçãoValor
    EPHEMERAL_DOMAINSeu hostname, como ephemeral.example.com
    EPHEMERAL_LICENSE_TOKENO token da primeira etapa
    EPHEMERAL_MACHINE_IDO ID de máquina da primeira etapa, exatamente como foi registrado
    INFERENCE_BASE_URLSeu endpoint compatível com a OpenAI
    INFERENCE_API_KEYA chave de API dele
    EPHEMERAL_DEFAULT_MODELO modelo que as execuções usam quando não indicam nenhum
    Configurações da AWSAs cinco linhas que a stack exibiu: AWS_REGION, EPHEMERAL_S3_BUCKET e três valores EPHEMERAL_MICROVM_…

    A exportação gerou a chave mestra de criptografia, a chave de administrador de bootstrap e a senha do banco de dados. Guarde uma cópia do .env no seu gerenciador de segredos; sem a chave mestra, as credenciais armazenadas e os payloads de execução não podem ser lidos. O instance profile do host fornece as credenciais da AWS.

  6. Inicie a instalação

    O Caddy obtém o certificado HTTPS. O PostgreSQL e as APIs internas não são publicados.

    Terminal
    docker compose pull
    docker compose up -d

    O mecanismo valida a licença na inicialização e se recusa a iniciar se ela for inválida ou se a concorrência configurada a exceder.

  7. Crie a primeira organização

    Uma instalação nova não tem chaves de API. Execute isto uma vez no diretório da instalação, substituindo my-organization por um ID de organização à sua escolha. O comando lê a chave de bootstrap dentro do contêiner, de modo que a chave não fica no histórico do seu shell.

    Terminal
    docker compose exec -T app node --input-type=module - <<'NODE'
    if (process.env.EPHEMERAL_MODE !== 'self-hosted') {
      throw new Error('Bootstrap requires EPHEMERAL_MODE=self-hosted');
    }
    const adminKey = process.env.EPHEMERAL_ADMIN_KEY;
    if (!adminKey) throw new Error('EPHEMERAL_ADMIN_KEY is not configured');
    const response = await fetch('http://127.0.0.1:8080/admin/organizations', {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${adminKey}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({id: 'my-organization'}),
    });
    const result = await response.json();
    if (!response.ok) throw new Error(result.error || `Bootstrap failed (${response.status})`);
    console.log(JSON.stringify(result, null, 2));
    NODE

    A resposta contém o id da organização, o key_id e o role da nova chave de proprietário e a própria key, que começa com eph_. Guarde a chave agora; ela não pode ser recuperada depois. Executar o comando de novo para uma organização que tem uma chave ativa retorna 409.

  8. Entre

    Abra o seu endereço HTTPS e informe a chave em Chave de API da organização. Crie outras chaves de membro e de administrador em Chaves de API. A chave de administrador de bootstrap do arquivo de configuração apenas cria organizações; ela não pode entrar nem chamar a API.

Teste em um computador

Sem a AWS, adicione o override de avaliação. Os agentes passam a ser executados dentro do contêiner da aplicação com o runner local, e o painel é servido por HTTP simples apenas em http://localhost:8000. Ainda é necessária uma licença; registre uma implantação separada para ela.

Terminal
docker compose -f compose.yaml -f compose.evaluation.yaml up -d
O runner local não é um sandbox
As ferramentas de shell e de arquivos de um agente atuam dentro do contêiner da aplicação. Use-o apenas com prompts e conexões confiáveis e nunca exponha a porta dele além do seu computador.

Diferenças em relação ao serviço hospedado

Comportamento auto-hospedado
FaturamentoSem carteira e sem cobranças do Ephemeral. max_cost_micros é validado, mas não limita os gastos com o modelo, então defina limites no seu provedor.
ModelosAs execuções podem indicar qualquer ID de modelo que o seu endpoint aceite. O catálogo lista apenas o padrão.
Chaves de APIAs chaves começam com eph_. As chaves de administrador gerenciam chaves por meio de /v1/keys e do painel.
ContasNão há contas de usuário, membros nem convites. O acesso é por chave de API.
ConcorrênciaDuas execuções por vez por padrão. Defina EPHEMERAL_CONCURRENCY de 1 a 32, dentro da sua licença.
RetençãoAs execuções concluídas são mantidas por 30 dias. Defina EPHEMERAL_RETENTION_DAYS para alterar.
Retenção zero de dadosAs execuções com zero_data_retention guardam seus eventos e a saída não lida apenas em tabelas sem registro, apagadas minutos depois da execução. Os backups devem usar pg_dump --no-unlogged-table-data; o backup diário do host usa. EPHEMERAL_ZDR_EVENT_WINDOW_SECONDS (padrão 300) e EPHEMERAL_ZDR_OUTPUT_WINDOW_SECONDS (padrão 3600) definem quanto tempo elas podem esperar.

Atualizações e backups

Para atualizar, envie o ZIP do worker da nova versão e atualize a stack com a chave dele. Depois, no host, exporte os arquivos da nova versão, defina EPHEMERAL_VERSION e o novo EPHEMERAL_MICROVM_IMAGE_VERSION no .env e execute docker compose up -d. As execuções em andamento têm até cinco minutos para terminar; as que ainda estiverem ativas depois disso são marcadas como interrupted e não são reexecutadas, então ações externas nunca se repetem. As migrações do banco de dados são executadas automaticamente.

Faça backup tanto do banco de dados quanto da chave mestra de criptografia. Perder a chave mestra torna ilegíveis as credenciais de conexão e os payloads de execução armazenados. O host criado pela stack faz backup do banco de dados no seu bucket S3 todos os dias.

O guia do operador na imagem traz os comandos exatos de atualização, backup e restauração, as etapas de verificação com a saída esperada e uma tabela de solução de problemas.
Um único host não tem alta disponibilidade
Esta arquitetura tem indisponibilidade enquanto o host é substituído ou se ele falhar. Cancele as execuções ativas e deixe a limpeza das microVMs terminar antes de excluir a stack da AWS.
© 2026 EphemeralProduzido por erni.works
esc

Nada corresponde a “”.