mirror of
https://github.com/marcogll/formbricks_form_manager.git
synced 2026-01-13 13:25:17 +00:00
feat: Initial release of Formbricks Vanity Server
This commit is contained in:
138
DOCKER.md
Normal file
138
DOCKER.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# Formbricks Vanity Server - Docker Deployment Guide
|
||||
|
||||
## Quick Start
|
||||
|
||||
### 1. Build the Docker Image
|
||||
|
||||
```bash
|
||||
docker build -t your-dockerhub-username/formbricks-vanity-server:latest .
|
||||
```
|
||||
|
||||
### 2. Run the Container
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
-p 3011:3011 \
|
||||
-e FORMBRICKS_SDK_URL=https://your-formbricks-instance.com \
|
||||
-e FORMBRICKS_API_KEY=your_api_key_here \
|
||||
-e ADMIN_API_TOKEN=your_admin_token_here \
|
||||
-v $(pwd)/data:/app/data \
|
||||
--name formbricks-vanity \
|
||||
your-dockerhub-username/formbricks-vanity-server:latest
|
||||
```
|
||||
|
||||
### 3. Using Docker Compose (Recommended)
|
||||
|
||||
Create a `docker-compose.yml` file:
|
||||
|
||||
```yaml
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
formbricks-vanity:
|
||||
image: your-dockerhub-username/formbricks-vanity-server:latest
|
||||
container_name: formbricks-vanity
|
||||
ports:
|
||||
- "3011:3011"
|
||||
environment:
|
||||
- PORT=3011
|
||||
- FORMBRICKS_SDK_URL=https://your-formbricks-instance.com
|
||||
- FORMBRICKS_API_KEY=your_api_key_here
|
||||
- ADMIN_API_TOKEN=your_admin_token_here
|
||||
- FORMBRICKS_ENV_ID=your_environment_id
|
||||
- BASE_DOMAIN=https://your-formbricks-instance.com
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
Then run:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
| -------------------- | -------- | ----------------------------------------------------- |
|
||||
| `PORT` | No | Server port (default: 3011) |
|
||||
| `FORMBRICKS_SDK_URL` | Yes | Your Formbricks instance URL |
|
||||
| `FORMBRICKS_API_KEY` | Yes | Formbricks API key |
|
||||
| `ADMIN_API_TOKEN` | Yes | Token for admin UI access |
|
||||
| `FORMBRICKS_ENV_ID` | No | Environment ID (optional, for backward compatibility) |
|
||||
| `BASE_DOMAIN` | No | Base domain for the application |
|
||||
| `SQLITE_DB_PATH` | No | Custom SQLite database path |
|
||||
|
||||
## Publishing to Docker Hub
|
||||
|
||||
### 1. Login to Docker Hub
|
||||
|
||||
```bash
|
||||
docker login
|
||||
```
|
||||
|
||||
### 2. Tag Your Image
|
||||
|
||||
```bash
|
||||
docker tag formbricks-vanity-server:latest your-dockerhub-username/formbricks-vanity-server:latest
|
||||
docker tag formbricks-vanity-server:latest your-dockerhub-username/formbricks-vanity-server:v1.0.0
|
||||
```
|
||||
|
||||
### 3. Push to Docker Hub
|
||||
|
||||
```bash
|
||||
docker push your-dockerhub-username/formbricks-vanity-server:latest
|
||||
docker push your-dockerhub-username/formbricks-vanity-server:v1.0.0
|
||||
```
|
||||
|
||||
## Data Persistence
|
||||
|
||||
The SQLite database is stored in `/app/data` inside the container. Make sure to mount a volume to persist data:
|
||||
|
||||
```bash
|
||||
-v $(pwd)/data:/app/data
|
||||
```
|
||||
|
||||
## Accessing the Application
|
||||
|
||||
- **Surveys**: `http://localhost:3011/{alias}/{survey_name}`
|
||||
- **Admin UI**: `http://localhost:3011/admin`
|
||||
|
||||
## Health Check
|
||||
|
||||
Add a health check to your docker-compose.yml:
|
||||
|
||||
```yaml
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--quiet",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:3011/admin",
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Container won't start
|
||||
|
||||
- Check logs: `docker logs formbricks-vanity`
|
||||
- Verify environment variables are set correctly
|
||||
- Ensure the data directory has proper permissions
|
||||
|
||||
### Database issues
|
||||
|
||||
- The database is created automatically on first run
|
||||
- If you need to reset, stop the container and delete the `data` directory
|
||||
|
||||
### Port conflicts
|
||||
|
||||
- Change the host port mapping: `-p 8080:3011` (maps host port 8080 to container port 3011)
|
||||
Reference in New Issue
Block a user