initial commit
This commit is contained in:
commit
4479a4491f
3 changed files with 248 additions and 0 deletions
51
botamusique/Dockerfile
Normal file
51
botamusique/Dockerfile
Normal file
|
@ -0,0 +1,51 @@
|
|||
ARG ARCH=
|
||||
|
||||
FROM ${ARCH}python:3-slim-buster AS source
|
||||
ARG VERSION=master
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
WORKDIR /botamusique
|
||||
RUN apt-get update && apt-get install -y git
|
||||
RUN git clone --recurse-submodules https://github.com/azlux/botamusique.git . && git checkout $VERSION
|
||||
|
||||
|
||||
FROM ${ARCH}python:3-slim-buster AS python-builder
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
WORKDIR /botamusique
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y gcc ffmpeg libjpeg-dev libmagic-dev opus-tools zlib1g-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=source /botamusique .
|
||||
RUN python3 -m venv venv \
|
||||
&& venv/bin/pip install wheel \
|
||||
&& venv/bin/pip install -r requirements.txt
|
||||
|
||||
|
||||
FROM ${ARCH}node:14-buster-slim AS node-builder
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
WORKDIR /botamusique/web
|
||||
COPY --from=source /botamusique/web .
|
||||
RUN npm install
|
||||
RUN npm run build
|
||||
|
||||
|
||||
FROM ${ARCH}python:3-slim-buster AS template-builder
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
WORKDIR /botamusique
|
||||
COPY --from=python-builder /botamusique .
|
||||
COPY --from=node-builder /botamusique/templates templates
|
||||
RUN venv/bin/python scripts/translate_templates.py --lang-dir /botamusique/lang --template-dir /botamusique/templates
|
||||
|
||||
|
||||
FROM ${ARCH}python:3-slim-buster
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
EXPOSE 8181
|
||||
WORKDIR /botamusique
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y ffmpeg libmagic-dev opus-tools zlib1g \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=python-builder /botamusique .
|
||||
COPY --from=node-builder /botamusique/static static
|
||||
COPY --from=template-builder /botamusique/templates templates
|
||||
RUN chmod +x entrypoint.sh
|
||||
ENTRYPOINT [ "/botamusique/entrypoint.sh" ]
|
||||
CMD ["/botamusique/venv/bin/python", "/botamusique/mumbleBot.py"]
|
184
botamusique/config/config.ini
Normal file
184
botamusique/config/config.ini
Normal file
|
@ -0,0 +1,184 @@
|
|||
# ========================================================
|
||||
# botamusique Example Configuration File
|
||||
# Version 6
|
||||
# ========================================================
|
||||
# Rename this file into configuration.ini after editing.
|
||||
# Uncomment lines you needed, and carefully follow the
|
||||
# instructions.
|
||||
# ========================================================
|
||||
|
||||
# [server] section tells the bot how to connect to your murmur server.
|
||||
# This section will be overridden by command line arguments.
|
||||
[server]
|
||||
host = mumble.zom.bi
|
||||
port = 64738
|
||||
#password =
|
||||
#channel =
|
||||
#tokens = token1,token2
|
||||
#certificate =
|
||||
|
||||
# [bot] section stores some basic settings of the behavior of the bot.
|
||||
[bot]
|
||||
# 'username' is the user name of the bot.
|
||||
# 'comment' is the comment displayed by the bot.
|
||||
username = testbot
|
||||
#comment = "Hi, I'm here to play radio, local music or youtube/soundcloud music. Have fun!"
|
||||
|
||||
# 'language': Available languages can be found inside lang/ folder.
|
||||
#language=en_US
|
||||
|
||||
# 'music_folder': Folder that stores your local songs.
|
||||
music_folder = /botamusique/music/zom.bi/
|
||||
|
||||
# 'database_path': The path of the database. The database will store things like your volume
|
||||
# set by command !volume, your playback mode and your playlist, banned URLs, etc.
|
||||
# This option will be overridden by command line arguments.
|
||||
# 'music_database_path': The path of database that stores the music library. Can be disabled by
|
||||
# setting 'save_music_library=False'
|
||||
database_path=/config/settings.db
|
||||
music_database_path=/config/music.db
|
||||
|
||||
# 'admin': Users allowed to kill the bot, or ban URLs. Separated by ';'
|
||||
#admin = User1;User2;
|
||||
|
||||
# 'stereo': After 1.4.0, mumble starts to support stereo stream. Enable this option for stereo
|
||||
# stream transmission. Otherwise the bot will down mix stereo sound into mono.
|
||||
#stereo = True
|
||||
|
||||
# 'volume' is default volume from 0 to 1.
|
||||
# This option will be overridden by value in the database.
|
||||
#volume = 0.1
|
||||
|
||||
# 'playback_mode' defined the playback mode of the bot.
|
||||
# it should be one of "one-shot" (remove item once played), "repeat" (looping through the playlist),
|
||||
# or "random" (randomize the playlist), "autoplay" (randomly grab something from the music library).
|
||||
# This option will be overridden by value in the database.
|
||||
# 'autoplay_length': how many songs the autoplay mode fills the playlist
|
||||
# 'clear_when_stop_in_oneshot': clear the playlist when stop the bot in one-shot mode.
|
||||
#playback_mode = one-shot
|
||||
#autoplay_length = 5
|
||||
#clear_when_stop_in_oneshot = False
|
||||
|
||||
# target version, stable or testing (testing need to be installed with git)
|
||||
# stable will use simple bash with curl command to get releases, testing will follow github master branch with git commands
|
||||
#target_version = stable
|
||||
|
||||
# 'tmp_folder': Folder that stores the downloaded music.
|
||||
# 'tmp_folder_max_size': in MB, 0 for no cache, -1 for unlimited size
|
||||
# 'ignored_folders', 'ignored_files': files and folders that would be ignored during scanning.
|
||||
tmp_folder = /tmp/
|
||||
tmp_folder_max_size = 200
|
||||
#ignored_folders = tmp
|
||||
#ignored_files = Thumbs.db
|
||||
|
||||
# 'download_attempts': how many times the bot will try to download an item
|
||||
#download_attempts = 2
|
||||
|
||||
# 'auto_check_update': check for updates every time the bot starts
|
||||
#auto_check_update = True
|
||||
#pip3_path = venv/bin/pip
|
||||
|
||||
# 'logfile': write logs into this file.
|
||||
#logfile =
|
||||
|
||||
#announce_current_music = True
|
||||
#allow_other_channel_message = False
|
||||
#allow_private_message = True
|
||||
|
||||
# 'save_music_library': If this is set True, the bot will save the metadata of music into the database.
|
||||
save_music_library = True
|
||||
|
||||
# 'refresh_cache_on_startup': If this is set true, the bot will refresh its music directory cache when starting up.
|
||||
# But it won't reload metadata from each files. If set to False, it will used the cache last time.
|
||||
refresh_cache_on_startup = False
|
||||
|
||||
# 'save_playlist': If save_playlist is set True, the bot will save current playlist before quitting
|
||||
# and reload it the next time it start. It requires save_music_library to be True to function.
|
||||
#save_playlist = True
|
||||
|
||||
# 'max_track_playlist': Maximum track played when a playlist is added.
|
||||
#max_track_playlist = 20
|
||||
|
||||
# 'max_track_duration': Maximum music duration (minutes)
|
||||
#max_track_duration = 60
|
||||
|
||||
# 'ducking': If ducking is enabled, the bot will automatically attenuate its
|
||||
# volume when someone is talking.
|
||||
#ducking = False
|
||||
#ducking_volume = 0.05
|
||||
#ducking_threshold = 3000
|
||||
|
||||
# 'when_nobody_in_channel': Specify what the bot should do if nobody is in the channel.
|
||||
# Possible value of this options are:
|
||||
# - "pause",
|
||||
# - "pause_resume" (pause and resume once somebody re-enters the channel)
|
||||
# - "stop" (also clears playlist)
|
||||
# - leave empty (do nothing)
|
||||
#when_nobody_in_channel =
|
||||
|
||||
# [webinterface] stores settings related to the web interface.
|
||||
[webinterface]
|
||||
# 'enable': Set 'enabled' to True if you'd like to use the web interface to manage
|
||||
# your playlist, upload files, etc.
|
||||
# The web interface is disable by default for security and performance reason.
|
||||
# 'access_address': Used when user are questing the address to access the web interface.
|
||||
enabled = True
|
||||
listening_addr = 0.0.0.0
|
||||
listening_port = 8181
|
||||
#is_web_proxified = True
|
||||
# This is the public URL
|
||||
#access_address = http://127.0.0.1:8181
|
||||
|
||||
# 'web_logfile': write access logs of the web server into this file.
|
||||
#web_logfile =
|
||||
|
||||
# 'auth_method': Method used to authenticate users accessing the web interface.
|
||||
# Options are 'none', 'password' or 'token' (use unique token, see
|
||||
# requests_webinterface_access command)
|
||||
# 'max_attempts': Bad access attempts before being banned. Regenerating a token or
|
||||
# rebooting the bot will reset this attempts tally.
|
||||
#auth_method = token
|
||||
#max_attempts = 10
|
||||
|
||||
# 'user', 'password': If auth_method set to 'password', you need to set the default
|
||||
# username and password. You can add more users by '!webadduser'
|
||||
#user = botamusique
|
||||
#password = mumble
|
||||
|
||||
# 'flask_secret': To use token, flask need a password to encrypt/sign cookies.
|
||||
# !! YOU NEED TO CHANGE IT IF auth_method IS 'token'!!
|
||||
# flask_secret = ChangeThisPassword
|
||||
|
||||
# 'upload_enabled': Enable the upload function of the web interface.
|
||||
# 'maximum_upload_file_size': Unit can be 'B', 'KB', 'MB', 'GB', 'TB'.
|
||||
# 'delete_allowed': Allow users to delete a file from the library(hard disk).
|
||||
upload_enabled = False
|
||||
#max_upload_file_size = 30MB
|
||||
delete_allowded = False
|
||||
|
||||
# [debug] stores some debug settings.
|
||||
[debug]
|
||||
# 'ffmpeg': Set ffmpeg to True if you want to display DEBUG level log of ffmpeg.
|
||||
#ffmpeg = False
|
||||
#mumbleConnection = False
|
||||
|
||||
# [radio] is a list of default radio stations.
|
||||
[radio]
|
||||
# List of radio you want to have by default
|
||||
# one line by entrie
|
||||
#jazz = http://jazz-wr04.ice.infomaniak.ch/jazz-wr04-128.mp3 "Jazz Yeah !"
|
||||
|
||||
|
||||
# [commands] is settings related to user command sent via mumble message.
|
||||
[commands]
|
||||
# 'command_symbol' is a list of characters the bot recognizes as command prefix.
|
||||
#command_symbol = !:!
|
||||
# 'split_username_at_space': This option split username, in case you use such kind of mumo plugins https://wiki.mumble.info/wiki/Mumo#Set_Status
|
||||
#split_username_at_space = False
|
||||
|
||||
|
||||
# You may also customize commands recognized by the bot. For a full list of commands,
|
||||
# see configuration.default.ini. Copy options you want to edit into this file.
|
||||
#play_file = file, f
|
||||
#play_file_match = filematch, fm
|
||||
|
13
botamusique/docker-compose.yml
Normal file
13
botamusique/docker-compose.yml
Normal file
|
@ -0,0 +1,13 @@
|
|||
version: '3.0'
|
||||
services:
|
||||
bot:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- VERSION=7.2
|
||||
ports:
|
||||
- 10.0.0.7:8181:8181
|
||||
environment:
|
||||
BAM_CONFIG_file: /config/config.ini
|
||||
volumes:
|
||||
- ./config:/config
|
Loading…
Reference in a new issue