Home

Awesome

EchoML

Play, visualize, and annotate your audio files

Screenshot

List of containers and files

Play, visualize, and annotate your audio files

Supported storage providers

Run

Set variables

Variables can either be set in environment (appropriate for production docker deployments) or in one of the appropriate [environment].json file in /config (ie; development.json or production.json)

Required Environment Variables

The following variables are REQURED and can be either set in one of the config json files or in your environment

VariableTypeDescription
HOSTNAMEstringThe hostname for http.createServer to listen on
PORTstringThe port for http.createServer to listen on; must be 4000 when in dev so local port forwarding works
AUTH_KEYstringRandom string which will be used to hash your user sessions
MONGO_HOSTstringHost of your MongoDB database; usually in mongodb://your.host.name:port/collection format; note username and password not passed here
MONGO_USERNAMEstringMongoDB Username
MONGO_PASSWORDstringMongoDB Password
STORAGE_ACCOUNTstringAzure storage account name
STORAGE_ACCESS_KEYstringAzure storage access key

Optional Configs

These variables are optional and can be set in one of the config json files

VariabletypeDescription
corsbooleanIf true, cors is enabled to allow different clients to ping server
logobjectSettings for the logger; refer to the default setup for example

Development

To start both back and front ends in one command:

yarn run dev

Or you can start both indvidually if you want some quieter logs

Start back-end node server.

yarn run server

Start the frontend dev server with

yarn run start

Open your browser and connect to http://localhost:3000.

Production Build

Build bundle.

yarn run build

Start server.

yarn run prod

Open your browser and connect to http://localhost.

Run with Docker

To update the code and rebuild the image:

Build the docker image

docker build -t echoml .

To run the image, either pull my image from docker hub or use your own.

Run the docker image

docker run -p 80:80 -it --rm -e PORT='80' -e MONGO_HOST='<your mongo host>' -e MONGO_USERNAME='<your mongo username>' -e MONGO_PASSWORD='your mongo password' -e STORAGE_ACCOUNT='your azure storage name' -e STORAGE_ACCESS_KEY='your azure storage access key' ritazh/echoml:latest

Acknowledgement

Leverages the awesome waveform.js

License

MIT License