O que é

O Postiz é um agendador de posts para redes sociais: Instagram, Facebook, YouTube, LinkedIn, TikTok, X e mais de vinte outras. Você monta o post uma vez, escolhe as redes, vê a prévia e ele publica na data marcada. No GW Server ele roda em Docker, com o seu domínio, instalado pelo menu Aplicações.

Além da tela, ele tem API pública e MCP: dá para um fluxo do n8n ou um agente de IA (como o Claude Code) criar os posts como rascunho, e você só revisa e agenda. Eu uso exatamente assim, como mesa de aprovação.

Requisitos

O Postiz é a aplicação mais pesada do painel. O mínimo é 2 núcleos e cerca de 4 GB de RAM (o painel e o instalador conferem 3.584 MB, que é o que um servidor de 4 GB mostra), e o painel bloqueia a instalação abaixo disso. No disco, ele precisa de 12 GB livres antes de instalar: a imagem tem ~1,8 GB compactada e a primeira instalação ocupa ~7,6 GB.

O peso vem do que ele roda: três processos Node (a tela, a API e o orquestrador), mais o Temporal (que dispara cada post na hora certa), um Redis e um banco só do Temporal. Parado, o contêiner principal usa ~1,35 GB de RAM.

Também é obrigatório HTTPS: sem certificado o login não funciona, porque o Postiz guarda a sessão em cookie seguro. Instale com SSL ou ative depois na aba SSL (ver Gerenciando uma aplicação).

O que a instalação monta

Uma instalação são quatro contêineres num mesmo serviço:

Contêiner Para quê
postiz a tela, a API, o MCP e o orquestrador; publicado pelo nginx do servidor
postiz-redis fila e cache, só do Postiz
postiz-temporal o agendador que dispara cada post na hora certa
postiz-temporal-db o banco do Temporal

O banco do Postiz (posts, contas, canais) fica no PostgreSQL compartilhado do servidor (gws-postgres). Redis e Temporal ficam numa rede interna, sem saída para a internet e fora da rede das outras aplicações: o Temporal não tem senha, e nenhuma outra aplicação consegue agendar ou apagar os seus posts por ele.

A primeira subida leva alguns minutos: o Temporal cria o próprio banco antes de o Postiz ficar no ar.

Instalando

No formulário de instalação (ver Instalando uma aplicação), dois campos são do Postiz:

  • Versão: o botão Mostrar versao latest atual busca a última versão publicada e Usar esta fixa esse número. Com a versão fixa, a atualização é uma decisão sua.
  • E-mail / SMTP: opcional. Com SMTP, o Postiz pede a confirmação do cadastro por e-mail e a recuperação de senha funciona. Sem SMTP, a conta é ativada direto, mas não há recuperação de senha por e-mail.

Primeiro acesso: o primeiro cadastro é o dono

Abra https://seu-dominio/auth e crie a conta. O primeiro cadastro vira o dono da instância e, depois dele, o cadastro fecha: ninguém mais consegue criar conta no seu Postiz, nem usar os apps de rede social que você configurar nele. Por isso, crie a sua conta logo depois de instalar.

Para convidar a equipe, abra o cadastro na aba Ambiente (DISABLE_REGISTRATION=false), deixe as pessoas se cadastrarem e feche de novo (true). Enquanto estiver aberto, qualquer pessoa com o endereço pode criar conta.

Instalou com SMTP e o e-mail de ativação não chegou? Ative a conta direto no banco, pela aba Banco (Adminer): UPDATE "User" SET activated = true WHERE email = 'voce@exemplo.com';. O comando também está no CREDENCIAIS.txt da instalação.

As chaves das redes sociais (aba Ambiente)

Para publicar numa rede, o Postiz precisa de um app seu no painel de desenvolvedor daquela rede (Meta para Facebook e Instagram, Google para YouTube, LinkedIn, TikTok…). O ID e a chave de cada app vão na aba Ambiente da aplicação, nas linhas que já vêm no arquivo:

Rede Variáveis
Facebook (Página) e Instagram pelo Facebook FACEBOOK_APP_ID, FACEBOOK_APP_SECRET
Instagram sem Página (Standalone) INSTAGRAM_APP_ID, INSTAGRAM_APP_SECRET
YouTube YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET
Threads, LinkedIn, X, TikTok, Pinterest… as linhas THREADS_…, LINKEDIN_…, X_…, TIKTOK_…

Cole o valor logo depois do =, sem espaço e sem aspas, e clique em Salvar e reiniciar: o painel recria os contêineres para o Postiz ler as chaves novas, e ele fica cerca de 30 segundos fora do ar. Sem esse passo, as chaves ficam só no arquivo.

O endereço de retorno (redirect/callback) que cada rede pede é sempre https://seu-dominio/integrations/social/<rede>. O passo a passo completo do Facebook, do Instagram e do YouTube está em Postiz: conectando Facebook, Instagram e YouTube.

As chaves que você põe na aba Ambiente sobrevivem a atualização, troca de SSL e reinstalação: o painel só reescreve as variáveis que ele mesmo gera. Já o JWT_SECRET assina as sessões e cifra os tokens das redes conectadas: se ele mudar, todas as contas precisam ser reconectadas. Ele fica no CREDENCIAIS.txt; guarde.

API e MCP para automação

Gere a API key no próprio Postiz, em Configurações → Public API. Com ela:

  • API pública: https://seu-dominio/api/public/v1 (criar posts, enviar mídia, listar).
  • MCP: https://seu-dominio/api/mcp/<SUA_API_KEY>, para conectar um agente de IA (Claude Code, n8n com agente) e deixar ele criar os rascunhos.

A API pública tem um limite de criação de posts por hora (API_LIMIT na aba Ambiente, 90 por padrão), por organização. É folga para um lote semanal enviado por automação; se o seu fluxo manda mais que isso de uma vez, aumente.

Imagens e vídeos enviados

As mídias ficam no servidor, em /var/www/seu-dominio/data/uploads, e são servidas em https://seu-dominio/uploads/…. É desse endereço que as redes buscam a mídia na hora de publicar, então ele é público para quem tiver o link. O envio aceita arquivos de até 1 GB.

Os vídeos (.mp4) tocam direto no navegador ao abrir o link, o que serve para assistir antes de agendar. Os demais arquivos continuam com a proteção do próprio Postiz contra arquivo malicioso (isolamento, sem execução de script), que não deixa um arquivo enviado agir com a sua sessão.

Backup

Pela aba Backup, como as outras aplicações, para o destino S3 global (ver Backup global). Entram:

  • o banco do Postiz (posts, contas e configurações);
  • as mídias (/var/www/seu-dominio/data/uploads);
  • o ambiente da aba Ambiente: as chaves das redes e o JWT_SECRET, que cifra as contas conectadas (sem ele, cada conta teria de ser conectada de novo).

Ficam de fora, de propósito, o estado do Temporal e o cache do Redis: os dois se refazem sozinhos. O Postiz tem uma varredura de hora em hora que agenda de novo o que tiver perdido o agendamento.

Ao restaurar

Restaurar volta o banco para o momento do backup. Posts que estavam na fila nesse momento e já foram publicados depois voltam para a fila, e a varredura de hora em hora publica o que estiver na fila com horário vencido há até 2 dias. Logo depois de restaurar, confira o calendário e remova da fila o que já foi publicado.

Na migração para outro servidor

O Postiz entra no snapshot de recuperação e é recriado no servidor novo na mesma versão. Os posts agendados para o futuro são agendados de novo pela varredura: cada um sai na primeira passada depois do horário, com até 1 hora de atraso. Faça o snapshot perto do corte: o que o servidor antigo publicar depois dele volta para a fila no novo, como no aviso acima.

Atualizando

Pela aba Atualizar, como as outras aplicações (ver Gerenciando uma aplicação). Antes, faça um backup pela aba Backup: ao subir a versão nova, o Postiz aplica sozinho as mudanças na estrutura do banco. As chaves da aba Ambiente, a senha do banco e o JWT_SECRET são preservados.

Segurança

  • Cadastro fechado depois do primeiro, por padrão.
  • Login, cadastro e recuperação de senha com limite de tentativas no nginx, e uma jail de fail2ban (postiz-auth): 5 senhas erradas em 60 segundos bloqueiam o IP por 1 hora.
  • Redis e Temporal sem acesso externo, numa rede só do Postiz.
  • Nenhum segredo no docker-compose.yml: as chaves ficam no arquivo da aba Ambiente, e as senhas internas do Redis e do Temporal num arquivo que só o root lê.

Problemas comuns

  • O login volta sempre para a tela de entrada: o site está sem HTTPS. Ative o SSL na aba SSL.
  • “Registration is disabled” ao criar conta: o cadastro fechou depois do primeiro. Abra temporariamente com DISABLE_REGISTRATION=false na aba Ambiente.
  • Colei a chave de uma rede e nada mudou: faltou Salvar e reiniciar. Um jeito rápido de conferir: no endereço que abre ao conectar a rede, o client_id= não pode estar vazio.
  • O Postiz não abre logo depois de instalar: espere alguns minutos na primeira subida, enquanto o Temporal cria o banco dele.
  • Erro ao conectar Facebook, Instagram ou YouTube: os erros e as soluções estão em Postiz: conectando Facebook, Instagram e YouTube.

Veja também