Free and Open-source video streaming suite.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.7 KiB


A Streaming Suite

Server part of MiracleTV Suite

Support Server

Running requirements

  • NodeJS 14>
  • Yarn
  • RethinkDB 2.4.1>

Development Requirements

  • Nix (Strongly encouraged, but optional)
  • NodeJS 14>
  • Yarn
  • RethinkDB 2.4.1>

Building and running


  • yarn
  • ./bin/
  • nodejs -r ts-node/register/transpile-only -r tsconfig-paths/register dist/server.js


  • nix-env -f default.nix
  • miracle-tv



  • yarn
  • yarn dev


  • nix-shell
  • yarn-dev

GraphQL schemas, resolvers and mutations can be found in src/graphql. GraphiQL for testing is available over at http://localhost:4000/graphql for testing.

Before commit

Before commiting, if you have altered packages installed for the project, please regenerate nix/yarn.nix using yarn2nix and copy package.json and yarn.lock to /nix folder as well. This is to make sure changes to the code and not the dependecies do not trigger extra rebuilds. If you don't use nix, please reach out to somebody who can do that for you.

Deploying in Production with nix

! Software does not include migrations and is definetely not production ready, deploy at your own risk !

Download one of our module-releases files and import it in your configuration.nix, and then configure it like so

sudo wget -P /etc/nixos/miracle-module.nix
# configuration.nix
    imports = [
        # ... your other imports

    # ... your configration.nix

    services.miracle-tv = {
        enable = true;
        settings = {
            name = "My MiracleTV instance";
            server = {
                port = "8080";
  • (Optionally) proxy pass http://localhost:4000 via web server of your choice. GraphQL Playground will be available at ${yourdomain}/graphql.

nixos-rebuild switch should download and compile everything. Look for full list of options inside the module file.

Docker setup

A docker-compose.yml file is provided for those who would prefer to use Docker. If you've got a working Docker setup, all you need to do is run:

$ docker-compose up

and it should be ready to go after building. This is largely intended for development purposes, but all that's stopping this flow from being production-ready is the ability to add a custom config.