Giter VIP home page Giter VIP logo

mediacrush's Introduction

MediaCrush

A website for serving media super fast, by SirCmpwn and jdiez, and several other contributors.

https://mediacru.sh

What is this? It's a website you can upload images, audio, and video to, and receive a link to share it with your friends. This readme documents contributor guidelines and installation instructions. For information on the official MediaCrush instance, see https://mediacru.sh/about

Developer Docs

If you aren't looking to contribute, but just want to do some cool stuff with the site, you might be interested in our developer documentation, which documents our API and a few other nice things.

Contributing

See CONTRIBUTING.md. To get started, join our our IRC channel (#mediacrush on irc.freenode.net) to listen in on dev chatter. We can help you sort out your ideas and we'll work with you directly to fine tune your pull requests.

Installation

Here's a quick overview of installation:

  1. Install Python 2, redis, ffmpeg, tidy, jhead, and optipng.
  2. Clone the MediaCrush git repository.
  3. Activate the virtualenv.
  4. Install pip requirements.
  5. Configure MediaCrush.
  6. Start the services and you're done!

Here it is again, in more detail.

Install the requirements

Our servers run on Ubuntu, and you install the deps with sudo apt-get install jhead redis-server tidy optipng. The Ubuntu repos have a poor distribution of ffmpeg, so you'll need to build that from source. Our dev machines run Arch Linux: sudo pacman -S redis jhead tidy optipng ffmpeg. Make sure you enable libtheora, libx264, and libvpx when you build ffmpeg.

Clone the repository

git clone http://github.com/MediaCrush/MediaCrush && cd MediaCrush

Create a virtual environment

Note: you'll need to use Python 2. If Python 3 is your default python interpreter (python --version), add "--python=python2" to the virtualenv command.

virtualenv . --no-site-packages

Activate the virtualenv

source bin/activate

Install pip requirements

pip install -r requirements.txt

Configure MediaCrush

cp config.ini.sample config.ini

Review config.ini and change any details you like. The default place to store uploaded files is ./storage, which you'll need to create (mkdir storage) if you don't change this in the config.

Start the services

You'll want to make sure Redis is running at this point. It's probably best to set it up to run when you boot up the server (systemctl enable redis.service on Arch).

MediaCrush requires the daemon and the website to be running concurently to work correctly. The website is app.py, and the daemon is daemon.py. The daemon is responsible for handling media processing. Run the daemon, then the website:

python daemon.py &
python app.py

This runs the site in debug mode. If you want to run this on a production server, you'll probably want to run it with gunicorn, and probably behind an nginx proxy like we do.

gunicorn -w 4 app:app

mediacrush's People

Contributors

ddevault avatar jdiez17 avatar aznn avatar burntsushi avatar exec64 avatar yasoob avatar

Watchers

James Cloos avatar Jie Bao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.