ffcom Entrar

Em testes · acesso por convite

Sua comunidade, no seu servidor.

O FFCom organiza a conversa do jeito que você já conhece: servidores, categorias e canais de texto, voz e fórum. A diferença está em quem guarda tudo isso, porque cada servidor roda na máquina de quem cria a comunidade, e nenhuma empresa pode desligar, vender ou mudar as regras dele por você.

O que já funciona

Tudo abaixo já está implementado e no ar na instância de testes.

Texto em tempo real

Canais de texto com histórico, anexos, edição e exclusão de mensagens, e indicador de não lidas em todos os servidores ao mesmo tempo.

Voz, vídeo e tela

Canais de voz com câmera, compartilhamento de tela, push-to-talk e atalho para mutar, rodando num LiveKit que fica no seu próprio servidor.

Fórum

Para o que não pode se perder no meio do chat: tópicos com respostas, organizados como qualquer outro canal.

Cargos e permissões

Cargos com permissões por servidor e ajustes por canal, além de convites, expulsão e banimento de membros.

Amigos e mensagens diretas

Lista de amigos com presença, e mensagens diretas cifradas de ponta a ponta: nem o servidor que entrega a mensagem consegue lê-la.

No navegador ou instalado

Funciona no navegador e pode ser instalado como aplicativo (PWA). A versão desktop em Electron está em preparação.

Como funciona

São três peças, e só uma delas é central, a que guarda a sua conta.

server-central · uma instância oficial

Sua conta

Login, perfil, amigos, mensagens diretas cifradas e a lista dos servidores em que você entrou. Não guarda as conversas dos servidores.

client · web e desktop

O aplicativo

Um só aplicativo conversa com quantos servidores você quiser, cada um no endereço de quem o hospeda.

server-channel

A casa da família

server-channel

O grupo do RPG

server-channel

A sua comunidade

Cada server-channel guarda os próprios canais, mensagens, arquivos e chamadas de voz. Se um deles sair do ar, os outros seguem funcionando, e ninguém de fora decide quem entra: só se chega a um servidor por convite ou pelo endereço dele.

Hospede o seu

Um servidor FFCom é um diretório com um docker-compose.yml e um arquivo .env. Ele sobe o serviço, o banco Postgres, o LiveKit para voz e vídeo e um servidor TURN para atravessar NAT, sem compilar nada na sua máquina.

Depois de instalado, o servidor se atualiza sozinho: ele consulta um índice de versões assinado, confere a assinatura e o hash de cada binário e volta para a versão anterior se a nova não subir.

Hoje a imagem é publicada para linux/amd64. Na frente do servidor vai um proxy reverso com HTTPS; o guia recomenda o Caddy, que emite o certificado sozinho.

Guia completo de hospedagem

# no diretório server-channel do repositório
$ cp .env.example .env
$ nano .env  # senhas, chaves do LiveKit, IP público
$ docker compose up -d
[+] Running 4/4
 ✔ Container server-channel-postgres-1  Healthy
 ✔ Container server-channel-livekit-1   Started
 ✔ Container server-channel-coturn-1    Started
 ✔ Container server-channel-app-1       Started
$ curl -s localhost:8080/healthz
{"status":"ok","version":"0.7.1"}
Logo do FFCom: dois f minúsculos unidos pela mesma barra, dentro de um balão de conversa

Por que FFCom

FFCom quer dizer Friends & Family Communication.

A turma para quem você liga sem avisar merece um lugar para conversar que seja de vocês, e não um espaço alugado de uma empresa que pode mudar as regras amanhã. O FFCom nasceu daí: para conversar com quem importa, num servidor que você controla.

O logo conta a mesma história. São dois f que dividem a mesma barra, como na ligadura clássica da tipografia, dentro de um balão de conversa: a barra que atravessa os dois é o laço entre as pessoas.

Onde estamos

O FFCom está em testes com usuários reais na instância oficial, e o acesso ainda é por convite. O código é público no GitHub, e o que falta fazer está no TODO do projeto. As decisões técnicas, com as alternativas consideradas e o motivo de cada escolha, ficam em docs/architecture.md.

Histórico de versões

O que cada versão publicada trouxe. App, servidor central e servidor de comunidade têm versões independentes.

  1. O histórico fica no CHANGELOG.md do projeto no GitHub.