elestio/typebot-viewer
Typebot-viewer, verified and packaged by Elestio
50K+
Typebot is an open-source alternative to Landbot. It allows you to create conversational apps/forms (Lead qualification, Product launch, User onboarding, Customer support), embed them anywhere on your web/mobile apps, and collect results in real-time.
Deploy a fully managed typebot on elest.io if you want automated backups, reverse proxy with SSL termination, firewall, automated OS & Software updates, and a team of Linux experts and open source enthusiasts to ensure your services are always safe, and functional.
You can deploy it easily with the following command:
git clone https://github.com/elestio-examples/typebot.git
Copy the .env file from tests folder to the project directory
cp ./tests/.env ./.env
Edit the .env file with your own values.
Create data folders with correct permissions
mkdir -p ./s3_data;
chown -R 1001:1001 ./s3_data;
mkdir -p ./db_data;
chown -R 1001:1001 ./db_data;
Run the project with the following command
docker-compose up -d
You can access the Web UI at: http://your-domain:8484
Here are some example snippets to help you get started creating a container.
version: "3.3"
services:
minio:
image: minio/minio
command: server /data
ports:
- "172.17.0.1:9000:9000"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: ${ADMIN_PASSWORD}
volumes:
- ./s3_data:/data
# This service just makes sure a bucket with the right policies is created
createbuckets:
image: minio/mc
depends_on:
- minio
entrypoint: >
/bin/sh -c "
sleep 10;
/usr/bin/mc config host add minio http://minio:9000 minio ${ADMIN_PASSWORD};
/usr/bin/mc mb minio/typebot;
/usr/bin/mc anonymous set public minio/typebot/public;
exit 0;
"
typebot-db:
image: elestio/postgres:latest
restart: always
volumes:
- ./db_data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=typebot
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_HOST_AUTH_METHOD=trust
typebot-builder:
image: elestio/typebot-builder:${SOFTWARE_VERSION_TAG}
restart: always
depends_on:
- typebot-db
ports:
- "172.17.0.1:8484:3000"
# extra_hosts:
# - 'host.docker.internal:host-gateway'
# See https://docs.typebot.io/self-hosting/configuration/builder for more configuration options
environment:
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@typebot-db:5432/typebot
- NEXTAUTH_URL=${NEXTAUTH_URL}
- NEXT_PUBLIC_VIEWER_URL=${NEXT_PUBLIC_VIEWER_URL}
- ENCRYPTION_SECRET=SECRET_TO_CHANGE
- ADMIN_EMAIL=${ADMIN_EMAIL}
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- NEXT_PUBLIC_SMTP_FROM=${NEXT_PUBLIC_SMTP_FROM}
- SMTP_SECURE=${SMTP_SECURE}
- SMTP_AUTH_DISABLED=${SMTP_AUTH_DISABLED}
- S3_ACCESS_KEY=minio
- S3_SECRET_KEY=${ADMIN_PASSWORD}
- S3_BUCKET=typebot
- S3_PORT=${MINIO_PORT}
- S3_ENDPOINT=${MINIO_ENDPOINT}
- S3_SSL=true
typebot-viewer:
image: elestio/typebot-viewer:${SOFTWARE_VERSION_TAG}
restart: always
ports:
- "172.17.0.1:8585:3000"
# See https://docs.typebot.io/self-hosting/configuration/viewer for more configuration options
environment:
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@typebot-db:5432/typebot
- NEXT_PUBLIC_VIEWER_URL=${NEXT_PUBLIC_VIEWER_URL}
- ENCRYPTION_SECRET=SECRET_TO_CHANGE
- NEXTAUTH_URL=${NEXTAUTH_URL}
- ADMIN_EMAIL=${ADMIN_EMAIL}
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- NEXT_PUBLIC_SMTP_FROM=${NEXT_PUBLIC_SMTP_FROM}
- SMTP_SECURE=${SMTP_SECURE}
- SMTP_AUTH_DISABLED=${SMTP_AUTH_DISABLED}
- S3_ACCESS_KEY=minio
- S3_SECRET_KEY=${ADMIN_PASSWORD}
- S3_BUCKET=typebot
- S3_PORT=${MINIO_PORT}
- S3_ENDPOINT=${MINIO_ENDPOINT}
- S3_SSL=true
Variable | Value (example) |
---|---|
NEXTAUTH_URL | http://yourdomain:8484 |
NEXT_PUBLIC_VIEWER_URL | http://yourdomain:8485 |
ADMIN_EMAIL | admin@gmail.com |
ADMIN_PASSWORD | your-password |
POSTGRES_PASSWORD | your-password |
SOFTWARE_VERSION_TAG | latest |
SMTP_HOST | your.host |
SMTP_PORT | 25 |
NEXT_PUBLIC_SMTP_FROM | sender@mail.com |
SMTP_SECURE | false |
SMTP_AUTH_DISABLED | false |
MINIO_PORT | 39533 |
MINIO_ENDPOINT | http://minio:9000 |
The Elestio Typebot Docker image sends the container logs to stdout. To view the logs, you can use the following command:
docker-compose logs -f
To stop the stack you can use the following command:
docker-compose down
To make backup and restore operations easier, we are using folder volume mounts. You can simply stop your stack with docker-compose down, then backup all the files and subfolders in the folder near the docker-compose.yml file.
Creating a ZIP Archive For example, if you want to create a ZIP archive, navigate to the folder where you have your docker-compose.yml file and use this command:
zip -r myarchive.zip .
Restoring from ZIP Archive To restore from a ZIP archive, unzip the archive into the original folder using the following command:
unzip myarchive.zip -d /path/to/original/folder
Starting Your Stack Once your backup is complete, you can start your stack again with the following command:
docker-compose up -d
That's it! With these simple steps, you can easily backup and restore your data volumes using Docker Compose.
docker pull elestio/typebot-viewer