obsolete.computer

multistream/README.md

File Type: text/plain

# Multistream

*The best way to watch multiple Twitch streams at one time.*

Well, maybe not any more, but I still like it. Simplicity is sometimes the greatest asset a project can have.

This is the code (a Django project) that powers [Multistre.am](https://multistre.am). Please if you find any bugs, [contact me](/who.html) before you hack into the site.

##Setting up your own instance
As of right now Multistream runs on Linux.

### Dependencies
You'll need `pipenv` and `nodejs-less` along with `nodejs-less-plugin-clean-css` (annoyingly, hoping to change this soon)... and I think that's it, since Pipenv will handle the installation of Django & some other Python dependencies.

### Install Pipenv
(via pip, pacman, apt, etc)
`pip install pipenv`

### Pull down the code
`git clone https://obsolete.computer/static/code/multistream/.git`
`cd multistream`

### Build the Pipenv environment and grab dependencies
`pipenv install`

### Edit the .env file with info for your environment
The Twitch API client ID and client secret can be obtained through their [dev console](https://dev.twitch.tv).
`cp env.sample .env && nano .env`

### Create a Sqlite database
`pipenv run ./manage.py migrate`

### Build the frontend CSS
Right now this is the step that requires `nodejs-less` and `nodejs-less-plugin-clean-css` (both in the AUR).
`cd frontend/static`
`lessc --math=strict --clean-css="advanced" multistream.less > multistream.css`
`cd ../..`

### Fire up the dev server
`pipenv run ./manage.py runserver`

## Test/Use/Build!
Point your browser to `http://localhost:8000`. You should be greeted by the familiar stream-picker form. If you try to build a multistream layout, you won't initially see the players & chats load... this is for development. To test out the real thing, set `USE_LIVE_EMBEDS` to `True` in your `.env` file.

The admin url by default is `http://localhost:8000/ms-admin/`. You can create an admin account for your instance with the command `pipenv run ./manage.py createsuperuser`.

Meta