Free and Open-source video streaming suite. https://miracle-tv.live
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.
 
 
 
Dale cd018fbbf6
feat: New channels should be unshelved by default
1 day ago
docker-compose misc: Try "veryfast" preset 4 days ago
module-releases misc: New module release 5 months ago
public feat: Improved OBS guide 4 days ago
src feat: New channels should be unshelved by default 1 day ago
.dockerignore feat: docker 5 months ago
.env.development feat: File upload, front 6 months ago
.env.docker feat: docker 5 months ago
.env.local feat: User form refactor + Working user form, image uploader, user info 6 months ago
.env.production feat: File upload, front 6 months ago
.gitignore misc: Format gitignore 5 months ago
.graphqlrc feat: Disable & Shelve channels, extra ACL chekc on frontend 2 days ago
.prettierignore feat: Added prettier 8 months ago
.prettierrc.json feat: Added prettier 8 months ago
LICENSE fix: Correct copyright year 2 weeks ago
README.md feat: docker 5 months ago
backend.Dockerfile fix: update node version 2 weeks ago
codegen.yml feat: File upload, front 6 months ago
default.nix feat: New docker setup 3 weeks ago
docker-compose.yml feat: Persist docker after reboot 4 days ago
frontend.Dockerfile fix: bump node version for frontend 2 weeks ago
graphql.schema.json feat: Markdown in user profile 2 days ago
module.nix feat: User profile settings (again) 5 months ago
next-env.d.ts fix: Update apollo, regenerate package.json 5 months ago
next-production.config.js feat: File upload, front 6 months ago
next.config.js fix: more socketio fixes 3 weeks ago
package.json feat: Channel description in markdown 2 days ago
shell.nix feat: Disable & Shelve channels, extra ACL chekc on frontend 2 days ago
tsconfig.json feat: File upload, front 6 months ago
wait-for feat: Wait for BE before running FE in docker 3 weeks ago
yarn.lock feat: Channel description in markdown 2 days ago

README.md

MiracleTV

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

Non-nix

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

Nix

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

Development

Non-nix

  • yarn
  • yarn dev

Nix

  • 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 https://code.gensokyo.social/Gensokyo.social/miracle-tv/raw/branch/develop/module-releases/0-1-0-2.nix -P /etc/nixos/miracle-module.nix
# configuration.nix
{
    imports = [
        # ... your other imports
        ./miracle-module.nix
    ];

    # ... 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.