Skip to main content

Self hosting

For an easy setup and deployment, you can use Docker containers for the frontend and backend. Additionally, a Docker Compose file for convenient startup is provided.

Start with docker-compose file


Recommended system spec: at least 1-core CPU and 2 GB RAM.


In your working directory, run the following commands to make a directory named waveditor and download docker-compose and .env.example files:

mkdir waveditor && cd waveditor
curl -O -O{docker-compose.yml,.env.example}


Afterward edit .env.example file. And rename it to .env

Here are some specific details regarding the variables in the .env file:

  • NX_BACKEND_URL: This is the URL of the backend. If you're using the default docker-compose.yml, you can leave it untouched.

  • NX_GOOGLE_OAUTH_CLIENT: Adding support for Google Auth requires this. You can generate it in the Google Console.

  • POSTGRES_: These credentials are for the PostgreSQL database. By default, it will create a 'waveditor' database in a separate Docker container.

  • JWT_SECRET: This is required for JWT Token generation. It's recommended to use a 64-character hexadecimal string. If you have Node.js installed, you can use the following command:
    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
    and use the result as your secret.

  • ADMIN_EMAILS: This is a list of users' emails, separated by commas, who will be granted the Admin role.

  • DEMO_MATERIALS: Set this to 0 if you don't want to see demo templates.


You can start the entire application using the following command:

docker compose --profile with-frontend up

After starting the application, you can access it at http://localhost:4000 and the GraphQL explorer at http://localhost:5555.