Port from monorepo
This commit is contained in:
commit
e931310141
5 changed files with 172 additions and 0 deletions
67
Dockerfile
Normal file
67
Dockerfile
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
FROM debian:buster
|
||||||
|
EXPOSE 6600
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
apt-get clean \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install --no-install-recommends -qy \
|
||||||
|
mpd mpc tmux bzip2 patch curl libyaml-dev git libopus-dev \
|
||||||
|
build-essential zlib1g zlib1g-dev libssl-dev ruby \
|
||||||
|
ruby-dev rubygems automake autoconf libtool psmisc \
|
||||||
|
util-linux supervisor ca-certificates libogg-dev python-pip \
|
||||||
|
ffmpeg cron \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
WORKDIR /opt/musicbot/src
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
git clone https://github.com/dafoxia/mumble-ruby.git \
|
||||||
|
&& git clone https://github.com/dafoxia/celt-ruby.git \
|
||||||
|
&& git clone https://github.com/dafoxia/opus-ruby.git \
|
||||||
|
&& git clone https://github.com/mumble-voip/celt-0.7.0.git celt \
|
||||||
|
&& git clone https://github.com/dafoxia/mumble-ruby-pluginbot.git \
|
||||||
|
&& (cd mumble-ruby-pluginbot && git checkout -b devel --track origin/devel)
|
||||||
|
|
||||||
|
RUN rm /opt/musicbot/src/mumble-ruby-pluginbot/plugins/radiostream.rb
|
||||||
|
|
||||||
|
WORKDIR /opt/musicbot/src/mumble-ruby
|
||||||
|
|
||||||
|
RUN gem build mumble-ruby.gemspec
|
||||||
|
RUN gem install mumble-ruby-*.gem
|
||||||
|
RUN gem install ruby-mpd
|
||||||
|
RUN gem install crack
|
||||||
|
|
||||||
|
WORKDIR /opt/musicbot/src/celt-ruby
|
||||||
|
|
||||||
|
RUN gem build celt-ruby.gemspec
|
||||||
|
RUN gem install celt-ruby
|
||||||
|
|
||||||
|
WORKDIR /opt/musicbot/src/celt
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
./autogen.sh &&\
|
||||||
|
./configure --prefix=/opt/musicbot/src/celt &&\
|
||||||
|
make &&\
|
||||||
|
make install
|
||||||
|
|
||||||
|
WORKDIR /opt/musicbot/src/opus-ruby
|
||||||
|
RUN gem build opus-ruby.gemspec
|
||||||
|
RUN gem install opus-ruby
|
||||||
|
RUN pip install youtube-dl
|
||||||
|
|
||||||
|
WORKDIR /opt/musicbot
|
||||||
|
|
||||||
|
ADD conf/config.yml /opt/musicbot/src/mumble-ruby-pluginbot/config/config.yml
|
||||||
|
ADD conf/supervisord.conf /etc/supervisor/conf.d/
|
||||||
|
ADD conf/mpd.conf /opt/musicbot/src/mumble-ruby-pluginbot/plugins/mpd.conf
|
||||||
|
ADD conf/crontab.txt /tmp/crontab.txt
|
||||||
|
|
||||||
|
RUN chown -R daemon: /opt/musicbot
|
||||||
|
RUN chown daemon: /var/lib/mpd/music
|
||||||
|
|
||||||
|
RUN crontab /tmp/crontab.txt
|
||||||
|
|
||||||
|
ENTRYPOINT [ "supervisord" ]
|
||||||
|
|
60
conf/config.yml
Normal file
60
conf/config.yml
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
---
|
||||||
|
config:
|
||||||
|
version: 2.2
|
||||||
|
|
||||||
|
debug: false
|
||||||
|
language: en
|
||||||
|
|
||||||
|
main:
|
||||||
|
remoteui: false
|
||||||
|
tempdir: "/opt/musicbot/temp/"
|
||||||
|
ducking: false
|
||||||
|
automute_if_alone: false
|
||||||
|
stop_on_unregistered: false
|
||||||
|
channel_notify: 0
|
||||||
|
controllable: true
|
||||||
|
control:
|
||||||
|
string: "."
|
||||||
|
message:
|
||||||
|
private_only: false
|
||||||
|
registered_only: true
|
||||||
|
historysize: 20
|
||||||
|
display:
|
||||||
|
comment:
|
||||||
|
set: true
|
||||||
|
user:
|
||||||
|
whitelisted:
|
||||||
|
superuser:
|
||||||
|
banned:
|
||||||
|
bound:
|
||||||
|
certfolder: "/opt/musicbot/certs/"
|
||||||
|
fifo: "/opt/musicbot/mpd.fifo"
|
||||||
|
logo: "../config/logo/logo.html"
|
||||||
|
timer:
|
||||||
|
ticks: 3600
|
||||||
|
blacklisted_commands: "settings bind unbind reset restart blacklist ducking duckvol bitrate framesize debug gotobed wakeup follow unfollow stick unstick history automute file"
|
||||||
|
|
||||||
|
mumble:
|
||||||
|
use_vbr: true
|
||||||
|
bitrate: 96000
|
||||||
|
host: mumble.zom.bi
|
||||||
|
port: 64738
|
||||||
|
name: musicbot
|
||||||
|
password: ''
|
||||||
|
channel: "Bots"
|
||||||
|
|
||||||
|
plugin:
|
||||||
|
mpd:
|
||||||
|
volume: 40
|
||||||
|
host: localhost
|
||||||
|
port: 6600
|
||||||
|
musicfolder: "/var/lib/mpd/music/"
|
||||||
|
youtube:
|
||||||
|
youtube_dl:
|
||||||
|
path: "youtube-dl"
|
||||||
|
soundcloud:
|
||||||
|
youtube_dl:
|
||||||
|
path: "youtube-dl"
|
||||||
|
bandcamp:
|
||||||
|
youtube_dl:
|
||||||
|
path: "youtube-dl"
|
1
conf/crontab.txt
Normal file
1
conf/crontab.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
0 9 * * * pip install -U youtube-dl >/dev/null 2>&1
|
27
conf/mpd.conf
Normal file
27
conf/mpd.conf
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
music_directory "/var/lib/mpd/music"
|
||||||
|
playlist_directory "/var/lib/mpd/playlists"
|
||||||
|
db_file "/opt/musicbot/tag_cache"
|
||||||
|
log_file "/opt/musicbot/mpd.log"
|
||||||
|
pid_file "/opt/musicbot/pid"
|
||||||
|
state_file "/opt/musicbot/state"
|
||||||
|
sticker_file "/opt/musicbot/sticker.sql"
|
||||||
|
user "daemon"
|
||||||
|
bind_to_address "0.0.0.0"
|
||||||
|
port "6600"
|
||||||
|
|
||||||
|
input {
|
||||||
|
plugin "curl"
|
||||||
|
}
|
||||||
|
|
||||||
|
audio_output {
|
||||||
|
type "fifo"
|
||||||
|
name "FIFO-Bot1"
|
||||||
|
path "/opt/musicbot/mpd.fifo"
|
||||||
|
format "48000:16:2"
|
||||||
|
mixer_type "software"
|
||||||
|
}
|
||||||
|
filesystem_charset "UTF-8"
|
||||||
|
id3v1_encoding "UTF-8"
|
||||||
|
buffer_before_play "20%"
|
||||||
|
audio_buffer_size "20480"
|
||||||
|
max_output_buffer_size "32768"
|
17
conf/supervisord.conf
Normal file
17
conf/supervisord.conf
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
|
||||||
|
[program:mpd]
|
||||||
|
user = daemon
|
||||||
|
command = mpd --no-daemon /opt/musicbot/mpd.conf
|
||||||
|
|
||||||
|
[program:ruby]
|
||||||
|
user = daemon
|
||||||
|
command = ruby pluginbot.rb --config=/opt/musicbot/config.yml
|
||||||
|
environment = LD_LIBRARY_PATH=/opt/musicbot/src/celt/lib/
|
||||||
|
directory = /opt/musicbot/src/mumble-ruby-pluginbot/core
|
||||||
|
|
||||||
|
[program:cron]
|
||||||
|
command = cron -f -L 1
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
Loading…
Reference in a new issue