Como publiquei meu portfólio com apenas dois comandos

Veja como um site de portfólio saiu do template para uma URL no ar usando só azion init e azion deploy, rodando de graça no plano Hobby da Azion.

Patrick Menoti - undefined

Ficou parado no meu backlog por muito tempo, principalmente porque eu esperava que a parte de infraestrutura fosse ser bem complexa. A parte que eu tava evitando (hospedagem, cache, DNS) acabou sendo basicamente dois comandos.

Meu portfólio era aquele projeto de “próximo fim de semana” fazia tempo. Mas finalmente publiquei, e o processo todo levou bem menos tempo do que, por exemplo, escolher uma fonte.

azion init
azion deploy

Essa é a história completa do deploy.

E aqui está exatamente o que aconteceu no meio do caminho.

A configuração

Eu não queria desenhar nada do zero. Queria um site de currículo que parecesse decente, funcionasse no celular e imprimisse um PDF limpo.

A Azion tem um template pra isso: o DevsCard. É um projeto Astro que monta seu currículo online e em papel a partir de alguns arquivos de dados em TypeScript. Nenhum componente pra escrever, nenhum CSS pra brigar.

Primeiro, instale a Azion CLI:

curl -fsSL https://raw.githubusercontent.com/aziontech/azion/refs/heads/main/scripts/install.sh | bash

Também está disponível no Homebrew, WinGet e Chocolatey, além de pacotes deb, rpm e apk.

Depois, faça login uma vez com azion login.

01 — azion init: escolha um template, ganhe um projeto

Essa era a parte que eu esperava ser chata. Não foi. A CLI só pergunta três coisas:

? Your application's name: devscard-my-portfolio
? Choose a preset: Astro
? Choose a template: Devscard
Template successfully fetched
Installing application dependencies
Template successfully configured

Astro, Next.js, Vue, React, Angular, Vite, Hexo e sites estáticos simples estão todos na lista de presets.

A partir daí, ela clona o template, instala as dependências com o gerenciador de pacotes que detectar e gera a configuração da plataforma pra você.

Essa configuração fica em um arquivo azion.config, e vale a pena abrir: é a parte que a maioria espera ter que escrever na mão.

module.exports = {
build: { preset: 'astro', polyfills: true },
storage: [
{ name: 'devscard-my-portfolio', dir: './dist', workloadsAccess: 'read_only' }
],
applications: [
{
name: 'devscard-my-portfolio',
cache: [
{ browser: { maxAgeSeconds: 7200 }, edge: { maxAgeSeconds: 7200 } }
],
rules: { /* static delivery + index.html fallbacks */ }
}
]
}

Storage, política de cache e regras de roteamento: tudo já escrito. Eu não mexi em nada disso.

Quando o init termina, ele oferece pra subir um servidor de desenvolvimento local ou fazer o deploy na hora. Eu disse não pras duas coisas, porque queria colocar meu próprio nome antes.

Deixando com a sua cara

Tudo o que você edita fica em src/data/. Cada arquivo é um objeto simples:

ArquivoO que tem dentro
src/data/config.tsTítulo da página, meta description, idioma, formato de data, favicon
src/data/sections/main-section.data.tsNome, cargo, dados de contato, redes sociais, bio
src/data/sections/experience-section.data.tsHistórico profissional, com datas e descrição de cada cargo
src/data/sections/skills-section.data.tsGrupos de habilidades e níveis de proficiência
src/data/sections/portfolio-section.data.tsProjetos, screenshots e links

O template vem com um nome fictício — troque pelo seu:

const mainSectionData = {
fullName: 'Mark Freeman',
role: 'Senior React Developer',
details: [
{ label: 'Email', value: 'mark.freeman.dev@gmail.com' },
{ label: 'From', value: 'Warsaw, Poland' },
],
tags: [{ name: 'Open for freelance' }],
}

As imagens ficam em src/assets/. Troque o my-image.jpeg pela sua foto, substitua os screenshots dos projetos, e pronto. Coloque visible: false em qualquer seção que não quiser mostrar.

02 — azion dev: confira antes de publicar

azion dev

Isso builda o projeto e roda no mesmo runtime que vai servir em produção. O que você vê localmente é o que vai pro ar. Passe --port se algo já estiver usando a porta padrão.

Fiquei ajustando algumas coisas nessa etapa: corrigi um cargo, cortei um screenshot, escondi a seção “Favorites”. Editar, recarregar, seguir em frente.

03 — azion deploy: um comando, todos os recursos

A CLI builda o projeto e depois provisiona tudo que o site precisa:

$ azion deploy
Created Bucket devscard-my-portfolio
Uploading source files
Upload completed successfully!
Created Application devscard-my-portfolio with ID 111111111
Created Cache Settings for Application
Created Rules Engine for Application
Created Workload devscard-my-portfolio with ID 1111111111
Your application is being deployed to all Azion Locations and it might take a few minutes.
Your Application was deployed successfully
To visualize your application access the Domain: https://myportfoliodomain.map.azionedge.net

Um bucket de storage, uma aplicação com política de cache e regras de roteamento, e um workload com uma URL no ar. Sem clicar em dashboard, sem aprender YAML antes.

Os IDs dos recursos vão pro azion/azion.json, então o próximo azion deploy atualiza esses mesmos recursos em vez de criar novos. Os deploys seguintes também limpam o cache automaticamente.

Pra colocar meu próprio domínio:

azion update workloads \
--workload-id 1111111111 \
--domains portfolio.mydomain.com

Aponte o DNS e está no ar.

Prefere o Console? Mesmo template, sem terminal.

Abra o Azion Console, vá até a biblioteca de templates e inicie o DevsCard. O Console conecta com a sua conta do GitHub, cria um repositório a partir do template e faz o deploy. Todo push pra main reimplanta automaticamente.

O DevsCard também vem com um botão de deploy, que é o caminho mais curto de todos.

Caminho via CLI — iteração local. O azion dev te dá um loop rápido de editar e recarregar antes de qualquer coisa ir pro ar, e os deploys são um comando que dá pra colocar direto na sua esteira de CI.

Caminho via Console — deploys via Git. Nada pra instalar. Dá push pra main e reimplanta. Bom se você prefere editar pelo navegador ou na máquina de outra pessoa.

Os dois caminhos chegam no mesmo lugar. A CLI e o Console operam sobre os mesmos recursos, então dá pra começar em um e continuar no outro.

Alguns flags que vale conhecer

ComandoO que faz
azion init --name my-sitePula a pergunta do nome
azion init --autoRoda o fluxo inteiro sem perguntas, deploy incluído
azion deploy --syncSincroniza o azion.json local com o que realmente está na plataforma
azion deploy --dry-runSimula o deploy sem mudar nada
azion logs httpAcompanha os logs de eventos HTTP assim que o tráfego começa a chegar

O que eu diria pro meu eu do passado

O atrito nunca foi escrever o conteúdo. Foi a hora configurando hospedagem, cache e DNS antes de qualquer página ficar visível.

O azion init tirou a parte de configuração do caminho. O azion dev manteve o loop de iteração local e rápido. O azion deploy cuidou do provisionamento, upload e distribuição em uma única passada.

Dois comandos, uma tarde de fim de semana, e o site roda em uma arquitetura distribuída, servido a partir de data centers perto de quem estiver acessando.

Escolha um template e vá. Referência da Azion CLI · Guia do DevsCard


Nada disso custou nada pro Patrick. O DevsCard, a CLI, o Console: tudo rodou no Hobby, o plano gratuito da Azion. Veja o que mais esse mesmo plano cobre.

Construa de graça no plano Hobby da Azion

O Hobby é o plano gratuito da Azion pra projetos pessoais, POCs e experimentação. Você tem acesso aos produtos e recursos GA incluídos na oferta da Azion Platform, dentro dos limites do plano, sem precisar configurar infraestrutura.

O que está incluído

  • Functions pra lógica de aplicação, sem cold starts
  • Object Storage pra arquivos e dados não estruturados
  • Image Processor pra otimizar imagens automaticamente
  • DDoS Protection e WAF pra proteger seus projetos
  • A infraestrutura distribuída da Azion, com mais de 100 data centers, pra rodar e entregar suas aplicações

SQL Database, KV Store e AI Inference estão disponíveis em Preview — peça acesso por um ticket de suporte, sujeito a aprovação.

Jeito mais rápido de começar: templates

Escolha um template no Marketplace (currículo, blog, portfólio, agente de IA, protótipo de e-commerce), conecte sua conta do GitHub e faça o deploy em minutos. Prefere começar do zero? Use a Azion CLI.

Como funciona

  1. Crie sua conta gratuita
  2. Escolha um template e conecte o GitHub, ou comece seu próprio projeto com a CLI
  3. Faça o deploy pelo Console ou rode azion deploy
  4. Acompanhe os logs até a aplicação ficar no ar

Nenhuma região pra escolher, nenhum servidor pra provisionar.

Quando o projeto cresce além do Hobby

Quando a aplicação estiver pronta pra produção, ou atingir os limites do plano com frequência, o Pro é o próximo passo: a mesma plataforma, com limites maiores e cobrança sob demanda. Pra operações de maior escala, o Enterprise oferece condições comerciais personalizadas, capacidade reservada e níveis de suporte adicionais.

Comece de graça →

Perguntas frequentes

Por quanto tempo posso usar o Hobby? Durante as etapas de aprendizado, experimentação e validação — incluindo o desenvolvimento de POCs — desde que a aplicação não esteja em produção e permaneça dentro dos limites do plano.

O que acontece se eu ultrapassar os limites do Hobby? Você vai precisar fazer upgrade pro Pro, ou sua conta pode sofrer restrições.

Preciso construir minha aplicação do zero? Não. Os templates disponíveis na plataforma cobrem diferentes tipos de projeto e reduzem o trabalho inicial de configuração.

fique atualizado

Inscreva-se na nossa Newsletter

Receba as últimas atualizações de produtos, destaques de eventos e insights da indústria de tecnologia diretamente no seu e-mail.