Este projeto configura uma instância do Cal.com com Traefik como proxy reverso e PostgreSQL como banco de dados.
- Docker
- Docker Compose
- Git
- Domínio configurado com DNS apontando para o servidor
- Clone o repositório:
git clone [URL_DO_REPOSITÓRIO]
cd [NOME_DO_DIRETÓRIO]
- Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
- Crie o diretório para os certificados SSL:
mkdir -p letsencrypt
- Inicie os serviços:
docker compose up -d
- Acesse o Google Cloud Console
- Crie um novo projeto
- Ative as APIs do Google Calendar e Google Meet
- Configure as credenciais OAuth2:
- Tipo: Aplicativo Web
- URIs de redirecionamento autorizados:
https://[SEU_DOMINIO]/api/integrations/googlecalendar/callback
- Copie o Client ID e Client Secret para o arquivo
.env
.
├── docker-compose.yml # Configuração dos serviços Docker
├── .env # Variáveis de ambiente
├── .env.example # Exemplo de variáveis de ambiente
├── letsencrypt/ # Diretório para certificados SSL
└── README.md # Este arquivo
- Traefik: Proxy reverso com SSL automático
- PostgreSQL: Banco de dados
- Cal.com: Aplicação principal
- 80: HTTP (redireciona para HTTPS)
- 443: HTTPS
- 3000: Cal.com (interno)
O banco de dados PostgreSQL é persistido em um volume Docker. Para fazer backup:
docker compose exec postgres pg_dump -U postgres calcom > backup.sql
cat backup.sql | docker compose exec -T postgres psql -U postgres calcom
Para atualizar os serviços:
docker compose pull
docker compose up -d
- Verifique os logs:
docker compose logs -f
- Verifique o status dos containers:
docker compose ps
- Reinicie um serviço específico:
docker compose restart [NOME_DO_SERVIÇO]