Files
formbricks_form_manager/README.md

190 lines
6.1 KiB
Markdown

<div align="center">
![Formbricks Vanity Server](./assets/banner.png)
# Formbricks Vanity Server
**Servidor de URLs personalizadas para encuestas de Formbricks con gestión inteligente de redirecciones**
[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker&logoColor=white)](https://www.docker.com/)
[![Coolify](https://img.shields.io/badge/Coolify-Compatible-6C47FF?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMiAxMkwxMiAyMkwyMiAxMkwxMiAyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+)](https://coolify.io/)
[![Node.js](https://img.shields.io/badge/Node.js-20-339933?logo=node.js&logoColor=white)](https://nodejs.org/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
[Características](#características) •
[Instalación](#instalación-rápida) •
[Deployment](#deployment) •
[Documentación](#documentación)
</div>
---
## 🎯 Características
- **🔗 URLs Personalizadas**: Crea URLs amigables para tus encuestas de Formbricks
- **🎨 Admin UI**: Interfaz visual para gestionar aliases de proyectos
- **🔀 Redirección Inteligente**:
- Encuestas tipo "link" → Redirigen automáticamente a Formbricks
- Encuestas tipo "app" → Se embeben en tu servidor
- **🏢 Multi-Proyecto**: Soporte para múltiples ambientes de Formbricks
- **🐳 Docker Ready**: Listo para desplegar en Coolify, Docker, o cualquier plataforma de contenedores
- **💾 Persistencia**: Base de datos SQLite con sincronización automática desde Formbricks API
## 🚀 Instalación Rápida
### Opción 1: Docker (Recomendado)
```bash
docker run -d \
-p 3011:3011 \
-e FORMBRICKS_SDK_URL=https://your-formbricks-instance.com \
-e FORMBRICKS_API_KEY=your_api_key \
-e ADMIN_API_TOKEN=your_admin_token \
-e BASE_DOMAIN=https://your-vanity-server.com \
-v ./data:/app/data \
--name formbricks-vanity \
marcogll/soul23_form_mgr:latest
```
### Opción 2: Desarrollo Local
```bash
# Clonar repositorio
git clone https://github.com/your-username/formbricks-vanity-server.git
cd formbricks-vanity-server
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales
# Iniciar servidor
npm start
```
## 📦 Deployment
### Coolify (VPS)
Deployment en un solo click con Coolify. Ver [COOLIFY.md](./COOLIFY.md) para instrucciones detalladas.
**Configuración:**
- **Dominio**: `forms.soul23.cloud`
- **Puerto**: 3011
- **SSL**: Automático con Let's Encrypt
### Docker Hub
```bash
# Construir imagen
docker build -t marcogll/soul23_form_mgr:latest .
# Publicar a Docker Hub
docker push marcogll/soul23_form_mgr:latest
```
## 🎮 Uso
### 1. Configurar Admin UI
Accede a `https://your-vanity-server.com/admin` (o `http://localhost:3011/admin` en local)
1. Ingresa tu Admin Token
2. Configura aliases para tus proyectos:
- `socias` → Environment de Formbricks
- `vanity` → Otro environment
### 2. Acceder a Encuestas
Tus encuestas estarán disponibles en:
```
https://your-vanity-server.com/{alias}/{nombre-encuesta}
```
**Ejemplos:**
- `https://your-vanity-server.com/socias/Contratos` → Redirige a Formbricks
- `https://your-vanity-server.com/vanity/test` → Embebida en el servidor
## ⚙️ Configuración
### Variables de Entorno
| Variable | Requerida | Descripción |
| -------------------- | --------- | ----------------------------------- |
| `FORMBRICKS_SDK_URL` | ✅ | URL de tu instancia de Formbricks |
| `FORMBRICKS_API_KEY` | ✅ | API Key de Formbricks |
| `ADMIN_API_TOKEN` | ✅ | Token para acceder al Admin UI |
| `PORT` | ❌ | Puerto del servidor (default: 3011) |
| `FORMBRICKS_ENV_ID` | ❌ | ID de ambiente (opcional) |
Ver [.env.example](./.env.example) para más detalles.
## 📚 Documentación
- **[COOLIFY.md](./COOLIFY.md)** - Guía completa de deployment en Coolify
- **[DOCKER.md](./DOCKER.md)** - Guía general de Docker y Docker Compose
- **[.env.example](./.env.example)** - Plantilla de variables de entorno
## 🛠️ Tecnologías
<div align="center">
| Tecnología | Uso |
| ---------------------------------------------------------------------------------------- | ---------------- |
| ![Node.js](https://img.shields.io/badge/Node.js-20-339933?logo=node.js&logoColor=white) | Runtime |
| ![Express](https://img.shields.io/badge/Express-4.x-000000?logo=express&logoColor=white) | Framework Web |
| ![SQLite](https://img.shields.io/badge/SQLite-3-003B57?logo=sqlite&logoColor=white) | Base de Datos |
| ![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker&logoColor=white) | Containerización |
</div>
## 🏗️ Arquitectura
```
┌─────────────────┐
│ forms.soul23 │ ← URLs Personalizadas
│ .cloud │
└────────┬────────┘
├─ /socias/Contratos ──→ 302 Redirect ──→ feedback.soul23.cloud/s/{id}
│ (Encuestas tipo "link")
└─ /vanity/test ──→ Embedded Survey
(Encuestas tipo "app")
```
## 🤝 Contribuir
Las contribuciones son bienvenidas. Por favor:
1. Fork el proyecto
2. Crea una rama para tu feature (`git checkout -b feature/AmazingFeature`)
3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)
4. Push a la rama (`git push origin feature/AmazingFeature`)
5. Abre un Pull Request
## 📝 Licencia
Este proyecto está bajo la Licencia MIT. Ver [LICENSE](LICENSE) para más detalles.
## 🙏 Agradecimientos
- [Formbricks](https://formbricks.com/) - Plataforma de encuestas open-source
- [Coolify](https://coolify.io/) - Plataforma de deployment self-hosted
---
<div align="center">
**Hecho con ❤️ para la comunidad de Formbricks**
[⬆ Volver arriba](#formbricks-vanity-server)
</div>