BandwidthXML web ui editor
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Build Status


Build and Deploy

How to get Auth0 account data

  • Go to Auth0 Dashboard, login (if required) and press "New client"
  • Enter app name and choose client type "Regular Web Applications". Press "Create".

  • Switch to tab "Settings" of created client and copy domain name, Client ID and Client Secret

  • Scroll to bottom of setting and set "Allowed Callback URLs" with https://YOUR-HOST/callback where YOUR-HOST is name of host where this application is located.

  • Press "Save".

  • Scroll bellow and press link "Show Advanced Settings"

  • Uncheck flag "OIDC Conforman t" on tab OAuth (otherwise you can't use simple user/password login). Press "Save Changes".

Quick install on VPS

docker and docker-compose should be preinstalled on your VPS. Don't use VPS based on OpenVZ (to avoid troubles with docker).

Configure receiving of SSL certificates (via Lets Encrypt)

  • Install curl, openssl and socat

  • Install by

curl | sh
  • Log out an log in again

  • Receive SSL certificate files for your domain --standalone --issue -d YOUR_DOMAIN

Runing the app

  • Create a directory for the app settings (for example /var/bxml-editor) and open it in the terminal

  • Install SSL certificates to ./certs (make links to existing files)

mkdir ./certs && --install-cert -d YOUR_DOMAIN --key-file ./certs/key.pem --fullchain-file ./certs/cert.pem --reloadcmd  "cd /var/bxml-editor && docker-compose restart" # ignore any errors related to missing docker-compose file for now

After that will renew certificates and restart the application itself

  • Download docker-compose.yml
curl -o docker-compose.yml
  • Download .env
curl -o .env
  • Fill .env with right settings (Auth0 auth data and base url (like https://YOUR_DOMAIN) of this web app)

  • Run the app

docker-compose up -d
  • Open in firewall ports 80 and 443. (port 80 is required at least to renew ssl certificates, don't close it)


Extract sources

git clone
cd simple-text-messenger

Using Docker

# create .env
cp ./envdemo ./.env

# fill .env (set Auth0 auth data and base url (like https://YOUR_DOMAIN) of this web app)
vim ./.env

Run PORT=8080 docker-compose up -d. After that the app will be available on port 8080.

If you need to use SSL certificates make subdirectory certs and copy your certificate files there: cert.pem (with full chain) and key.pem. Use docker-compose.https.yml to start the app. Fo http/2 support use docker-compose.http2.yml.


Prepare the application

# Install dependencies
yarn install

# create .env
cp ./envdemo ./.env

# fill .env (set Auth0 auth data and base url (like https://YOUR_DOMAIN) of this web app)
vim ./.env

Start Mongo instance

Install and start mongod. Set environment variable DATABASE_URL to mongodb://MONGO_HOST/MONGO_COLLECTION

Start the app

PORT=8080 yarn start

# if you would like to see more detailed log output run as
PORT=8080 LOG_LEVEL=debug yarn start


Login to the app and enter your Bandwidth auth data (user id, api token and api secret) on profile page. Return to projects and create new project there A Bandwidth phone number should be assigned to each project. Call to this number to test created BXML. By default you create BXML to handle event answer. To handle other event select it in list on the top right side of page. Add required verbs and fill their options. Also you can use calbback event query parameters as verbs options in format {parameterName}. For example {to} will return target phone number in event handler of answer. Look at other query parameters here.

Go back to projects list to save changes (or wait 15 seconds for autosave).

Call to phone number assigned to the project to test your BXML.