👤 Criar conta admin
Na primeira vez que http://localhost:5000 abre, o Postiz mostra uma tela de signup e nada de login social. Isso é proposital: o primeiro usuário criado vira super-admin da instância. Não há "criar admin pelo CLI" — é literalmente quem chega primeiro.
Por isso, a primeira tela é a janela de ouro: crie já a conta admin com e-mail corporativo e senha forte. Se alguém da rede interna abrir antes de você, vira admin no seu lugar.
⚠️ Atenção: senha forte de verdade
O admin tem poder sobre organizações, integrações OAuth e tokens das redes sociais. Use pelo menos 16 caracteres, gerados por gerenciador de senhas. Nunca admin123, nunca a senha do e-mail. Considere ativar 2FA assim que disponível na sua versão.
Conceitos-chave
Conta com todos os privilégios da instância.
Estado inicial sem usuários — porta aberta uma única vez.
16+ caracteres aleatórios, gerados por password manager.
Processo de inicialização que prepara o sistema para uso.
🧭 UI do Postiz: tour
Logado, a interface do Postiz é dividida em quatro zonas. Conhecer cada uma antes de configurar evita perder tempo procurando opção.
📅 Calendar view
Eixo central do produto. Cada card é um post agendado; arrastar reagenda. Filtros por canal e status.
🧭 Sidebar
Navegação principal: Calendar, Analytics, Channels, Agent (AI), Settings, Billing. Recolhe em telas pequenas.
🔗 Channels
Lista de redes conectadas (X, LinkedIn, Instagram, etc.). Status, próximo refresh de token e estatísticas básicas.
⚙️ Settings
Storage, e-mail, organização, membros, providers OAuth, integrações. Tudo que não é "agendar post" mora aqui.
Conceitos-chave
Navegação vertical persistente entre telas.
Linha do tempo visual dos posts agendados.
Conexões OAuth ativas com cada rede social.
Painel de configuração de infraestrutura e time.
☁️ Configurar storage S3 na UI
O Postiz precisa guardar mídias (imagens, vídeos curtos) em algum lugar. Em dev, STORAGE_PROVIDER=local grava em volume. Em prod, você quer S3 ou compatível (Cloudflare R2, MinIO, Backblaze B2) — barato, durável e acessível pelas redes sociais via URL pública.
Em Settings → Storage, cinco campos: endpoint, access key, secret, bucket e região. Cloudflare R2 é a escolha mais comum: sem taxa de egress.
Se preferir configurar via .env (recomendado para reprodutibilidade), edite o arquivo e reinicie o container:
# ~/postiz/.env — bloco de storage S3/R2
STORAGE_PROVIDER=s3
CLOUDFLARE_ACCOUNT_ID=abc123def456
CLOUDFLARE_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx
CLOUDFLARE_SECRET_ACCESS_KEY=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
CLOUDFLARE_BUCKETNAME=postiz-media
CLOUDFLARE_BUCKET_URL=https://media.seudominio.com
CLOUDFLARE_REGION=auto
# Aplicar mudanças
docker compose up -d --force-recreate postiz
# Validar: subir uma imagem qualquer pela UI
# e conferir que a URL gerada aponta para o bucket
docker compose logs --tail=50 postiz | grep -i s3
💡 Dica prática
Configure CORS no bucket antes de testar — sem isso, o upload do navegador morre com erro silencioso. Permita PUT e POST do domínio do Postiz. No R2: aba Settings → CORS Policy.
Conceitos-chave
Padrão de object storage adotado por vários providers.
Container de objetos com namespace próprio.
URL base da API S3 do provider escolhido.
Permissão cross-origin para upload via browser.
📨 E-mail / SMTP
Convites de equipe, recuperação de senha e notificações de falha de post precisam sair por e-mail. O Postiz usa Resend por padrão (API simples, free tier de 3k/mês), mas aceita qualquer SMTP via variáveis equivalentes.
Três passos: criar API key no Resend, validar o domínio remetente (DKIM + SPF) e colar a key no .env.
# ~/postiz/.env — bloco de e-mail
EMAIL_FROM_NAME=MkBlogs
EMAIL_FROM_ADDRESS=no-reply@seudominio.com
EMAIL_PROVIDER=resend
RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Alternativa: SMTP genérico (Postmark, SendGrid, Amazon SES)
EMAIL_PROVIDER=smtp
SMTP_HOST=smtp.postmarkapp.com
SMTP_PORT=587
SMTP_USER=apikey
SMTP_PASSWORD=ZZZZZZZZ
SMTP_SECURE=false
⚠️ Domínio não verificado = caixa de spam
Sem SPF + DKIM + DMARC configurados no DNS do domínio remetente, Gmail e Outlook jogam tudo no spam. O painel do Resend mostra os registros TXT exatos — adicione no DNS antes de mandar o primeiro convite real.
Conceitos-chave
API moderna de e-mail transacional com SDK simples.
Protocolo padrão de envio, suportado por todo provider.
Registros DNS que provam autenticidade do remetente.
E-mail disparado por evento, não marketing em massa.
🏢 Criar primeira Organization
O Postiz é multi-tenant: uma instância pode atender várias marcas. A unidade que separa contas, canais e calendários é a Organization. Mesmo se você só tem um cliente hoje, crie uma org bem nomeada — migrar depois dá trabalho.
Cada organização tem branding próprio (nome, logo, cor de destaque) que aparece para os membros convidados. Para agências, é o ponto onde o cliente "se sente em casa".
✓ O que FAZER
- ✓Uma organização por marca/cliente, mesmo que pequena.
- ✓Slug curto, lowercase e estável (vira parte de URL e logs).
- ✓Logo SVG ou PNG transparente, com fundo neutro.
- ✓Documentar quem é o owner de cada organização.
✗ O que NÃO fazer
- ✗Misturar canais de duas marcas na mesma org.
- ✗Renomear o slug depois — quebra links e webhooks.
- ✗Usar "default" ou "teste" como nome real.
- ✗Subir logo JPG pesado (10MB+) — degrada a UI.
Conceitos-chave
Uma instância serve várias contas isoladas.
Unidade lógica que agrupa canais e membros.
Identificador legível usado em URLs.
Logo, cor e nome que personalizam a experiência.
👥 Convidar membros da equipe
Com e-mail funcionando e organização criada, convidar o time é instantâneo. Cada convite carrega uma role que define o que aquele usuário pode (e não pode) fazer dentro da organização.
Linha do tempo do convite
Admin preenche e-mail + role
Em Settings → Members → Invite. Cada e-mail é uma linha; role default = Editor.
Convidado recebe e-mail
Link com token único, válido por 7 dias. Sem e-mail SMTP configurado, este passo simplesmente não acontece.
Convidado cria senha
Clica no link → tela de signup pré-preenchida → escolhe senha → entra direto na organização certa.
Acesso ativo
Membro vê o calendar com as permissões da role. Admin pode trocar role ou revogar a qualquer momento.
Roles e permissões
👑 Admin
Configura organização, conecta canais, gerencia membros, vê faturamento.
Use para owners e gestores de conta.
✏️ Editor
Cria, edita, agenda e publica posts nos canais conectados. Não mexe em settings.
Default para social media e copywriters.
👀 Viewer
Vê o calendar, comentários e analytics. Não publica nada.
Stakeholders e aprovadores.
🔐 Dica prática
Convide cada pessoa com a menor role suficiente e suba se necessário. Promover é fácil; rebaixar depois de um incidente é constrangedor. Audite a lista de Admins trimestralmente — gente que saiu da empresa não pode continuar com acesso de admin.
Conceitos-chave
Conjunto pré-definido de permissões.
Token único e expirável que vincula e-mail à organização.
Princípio de dar o mínimo de acesso necessário.
Revisão periódica de quem ainda precisa de acesso.
🎯 Resumo do Módulo
Próximo Módulo:
2.4 — Conectando a primeira rede social via OAuth