Something something like soundcloud but not like soundcloud.
Log in, upload records, done.
Simple, easy, KISS.
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.
Dashie der otter 6844d38ee1
Bump sqlalchemy-utils from 0.34.1 to 0.34.2 (#97)
3 days ago
.circleci Switch CI to CircleCI (#90) 2 weeks ago
.gitea Add ISSUE TEMPLATE 1 year ago
.github Create pull_request_template.md 1 month ago
activitypub Reformat 2 months ago
assets/logo We have a logo ! 1 month ago
controllers Fix tombstones 2 months ago
docs Add description 2 months ago
migrations reformat 2 months ago
static Add map files 9 months ago
templates Move from MIT to AGPL3 2 months ago
tests Switch CI to CircleCI (#90) 2 weeks ago
tmp That's ugly 2 years ago
translations Move from MIT to AGPL3 2 months ago
uploads Can upload 2 years ago
.coveragerc Switch CI to CircleCI (#90) 2 weeks ago
.dockerignore Add dockerfiles 1 year ago
.drone.yml Switch CI to CircleCI (#90) 2 weeks ago
.gitignore Switch CI to CircleCI (#90) 2 weeks ago
.isort.cfg Can show the right follow link; Formatting 1 year ago
.pre-commit-config.yaml Add some things for dev 1 year ago
.python-version Add .python-version; Switch to own fork of little-boxes until PR got merged 7 months ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 1 month ago
COPYING We have a logo ! 1 month ago
Dockerfile-web Move from MIT to AGPL3 2 months ago
Dockerfile-worker Move from MIT to AGPL3 2 months ago
LICENSE Move from MIT to AGPL3 2 months ago
README.md Switch CI to CircleCI (#90) 2 weeks ago
TODO.md Ugly workaround but it works 2 months ago
TRANSLATION-NOTES.txt Add a bunch of gettext; Update catalogs and French translation 1 year ago
app.py Remove debug line; Fix gettext 2 months ago
babel.cfg Update french translation 2 years ago
config.py.sample Switch CI to CircleCI (#90) 2 weeks ago
dbseed.py Can show the right follow link; Formatting 1 year ago
entrypoint.sh Add dockerfiles 1 year ago
forms.py Fix some things 2 months ago
messages.pot Move from MIT to AGPL3 2 months ago
models.py Still not working update 2 months ago
pyproject.toml Switch CI to CircleCI (#90) 2 weeks ago
requirements.txt Bump redis from 3.3.7 to 3.3.8 4 days ago
setup.cfg Switch CI to CircleCI (#90) 2 weeks ago
setup.py Bump sqlalchemy-utils from 0.34.1 to 0.34.2 (#97) 3 days ago
shelltools.py User now have an actor; Returns Actor json via Accept: header 1 year ago
tasks.py Reformat 2 months ago
transcoding_utils.py Audio waveform and png are now generated from a temp dat file to avoid processing it twice 4 months ago
utils.py Use right path for png waveforms, without double extension 4 months ago
version.py Fix VERSION 1 year ago

README.md

reel2bits logo
reel2bits

Build Status

Example single user instanceMatrix room: #reel2bits:otter.sh

Reel2bits is a soundcloud-like self-hosted application. You can upload audio files and they get transcoded, and also compile them into albums.

ActivityPub federation is still a work in progress, everything else works.

Versions requirement

  • Python >= 3.6 (all under 3.6 are not supported)

Installation

Install PostgreSQL first for the database. MySQL or SQLITE3 are unsupported as we use PostgreSQL specific extensions.
Makes sure that encoding is/will be in UNICODE/UTF-8
git clone http://dev.sigpipe.me/dashie/reel2bits
cd reel2bits
pip3 install --requirement requirements.txt
python3 setup.py install
# Install Pydub dependencies: https://github.com/jiaaro/pydub#dependencies
cp config.py.sample config.py
$EDITOR config.py
export FLASK_ENV=<development or production>
$ create your postgresql database, like 'reel2bits'
$ with the postgresql shell, run using superuser on the reel2bits database:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
flask db upgrade
flask seed
flask run
Don't forget to update default Config by getting to "Your user" (top right) then "Config"

Also install this tool : https://github.com/bbc/audiowaveform
And adapt the path to it in config.py

Creating an user

If you have enabled registration in config, the first user registered will be ADMIN !

Or if you have disabled registration, use the flask createuser command to create an user.

Production running

sudo easy_install3 virtualenv
sudo su - reel2bits
cd reel2bits

>> install -> git part

virtualenv -p /usr/bin/python3 venv
or if python 3.6 from github repo:
virtualenv -ppython3.6 venv

source venv/bin/activate
>> get back to install part

pip install waitress

# If you want SENTRY support (also add related things in config)
pip install sentry-sdk[flask]

Copy systemd services files docs/reel2bits-*.service to /etc/systemd/system/ and adapt them to your setup.

systemctl enable reel2bits-web reel2bits-worker
systemctl start reel2bits-web reel2bits-worker

Use docs/reel2bits.nginx as vhost template for X-Accel-Redirect part.

Docker

TODO

Default config

  • App Name: My reel2bits instance

Workers

Run the workers using:

$ celery worker -A tasks.celery --loglevel=error

Licensing

  • AGPL v3

Others projects inspired from