5 Commits

Author SHA1 Message Date
3bc6495383 chore: publish 2.0.0+8.7 release
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-05-21 16:41:44 +02:00
a404ff8935 bind to minor version
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-21 16:40:03 +02:00
4b26c51a66 fix typo
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-21 16:32:59 +02:00
c76dd45875 use a configfile, add webinterface
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-21 16:24:30 +02:00
6060f3f64e checking new settings 2026-05-21 15:52:45 +02:00
6 changed files with 184 additions and 18 deletions

View File

@ -13,4 +13,8 @@ LETS_ENCRYPT_ENV=production
#BAM_VERBOSE=
SECRET_BAM_CERTIFICATE_VERSION=v1
SECRET_MUMBLE_PASSWORD_VERSION=v1
SECRET_FLASK_SECRET_VERSION=v1
#SECRET_MUMBLE_PASSWORD_VERSION=v1
#COMPOSE=$COMPOSE:compose.password.yml

View File

@ -1 +1,2 @@
export ENTRYPOINT_CONF_VERSION=v7
export ENTRYPOINT_CONF_VERSION=v8
export CONFIGURATION_INI_VERSION=v1

13
compose.password.yml Normal file
View File

@ -0,0 +1,13 @@
version: '3.8'
services:
app:
secrets:
- mumble_password
environment:
- BAM_MUMBLE_PASSWORD_FILE=/run/secrets/mumble_password
secrets:
mumble_password:
external: true
name: ${STACK_NAME}_mumble_password_${SECRET_MUMBLE_PASSWORD_VERSION}

View File

@ -3,32 +3,35 @@ version: "3.8"
services:
app:
image: algielen/botamusique:8
image: algielen/botamusique:8.7
networks:
- proxy
user: 0:0
configs:
- source: configuration_ini
target: /botamusique/configuration.ini
mode: 0555
- source: entrypoint_conf
target: /docker-entrypoint.sh
mode: 0555
entrypoint: /docker-entrypoint.sh
environment:
BAM_CONFIG_FILE: /config/configuration.ini
BAM_CERTIFICATE: /run/secrets/bam_certificate
BAM_MUSIC_DB: /config/music.db
BAM_DB: /config/config.db
BAM_MUMBLE_SERVER:
# BAM_MUMBLE_PASSWORD_FILE: /run/secrets/mumble_password
BAM_USER:
BAM_MUMBLE_PORT:
BAM_CHANNEL:
BAM_VERBOSE:
- BAM_CONFIG_FILE=/botamusique/configuration.ini
- BAM_CERTIFICATE=/run/secrets/bam_certificate
- BAM_MUSIC_DB=/config/music.db
- BAM_DB=/config/config.db
- BAM_MUMBLE_SERVER
- BAM_USER
- BAM_MUMBLE_PORT
- BAM_CHANNEL
- BAM_VERBOSE
- DOMAIN
volumes:
- config:/config
- music_folder:/music
secrets:
- flask_secret
- bam_certificate
# - mumble_password
deploy:
restart_policy:
condition: any
@ -39,7 +42,7 @@ services:
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "coop-cloud.${STACK_NAME}.version=1.0.0"
- "coop-cloud.${STACK_NAME}.version=2.0.0+8.7"
## Redirect from EXTRA_DOMAINS to DOMAIN
#- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
#- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
@ -63,11 +66,16 @@ configs:
entrypoint_conf:
name: ${STACK_NAME}_entrypoint_conf_${ENTRYPOINT_CONF_VERSION}
file: entrypoint.sh
configuration_ini:
name: ${STACK_NAME}_configuration_ini_${CONFIGURATION_INI_VERSION}
file: configuration.ini.tmpl
template_driver: golang
secrets:
flask_secret:
external: true
name: ${STACK_NAME}_flask_secret_${SECRET_FLASK_SECRET_VERSION}
bam_certificate:
external: true
name: ${STACK_NAME}_bam_certificate_${SECRET_BAM_CERTIFICATE_VERSION}
mumble_password:
external: true
name: ${STACK_NAME}_mumble_password_${SECRET_MUMBLE_PASSWORD_VERSION}

139
configuration.ini.tmpl Normal file
View File

@ -0,0 +1,139 @@
[server]
certificate =
channel = {{ env "BAM_CHANNEL" }}
host = {{ env "BAM_MUMBLE_SERVER" }}
password = {{ env "BAM_MUMBLE_PASSWORD" }}
port = {{ env "BAM_MUMBLE_PORT" }}
tokens =
[bot]
admin =
allow_other_channel_message = False
allow_private_message = True
announce_current_music = True
auto_check_update = True
autoplay_length = 5
avatar =
bandwidth = 96000
clear_when_stop_in_oneshot = False
comment = "Hi, I'm here to play radio, local music or youtube/soundcloud music. Have fun!"
database_path =
delete_allowed = True
download_attempts = 2
ducking = False
ducking_threshold = 3000
ducking_volume = 0.05
ignored_files = Thumbs.db
ignored_folders = tmp
language = en_US
logfile =
max_track_duration = 60
max_track_playlist = 20
max_volume = 1.0
music_database_path = music.db
music_folder = music_folder/
pip3_path = venv/bin/pip
playback_mode = one-shot
redirect_stderr = True
refresh_cache_on_startup = True
save_music_library = True
save_playlist = True
stereo = True
target_version = git
tmp_folder = /tmp/
tmp_folder_max_size = 10
username = botamusique
volume = 0.8
when_nobody_in_channel = nothing
when_nobody_in_channel_ignore =
[webinterface]
access_address = https://{{ env "DOMAIN" }}
auth_method = token
enabled = True
flask_secret = {{ secret "flask_secret" }}
is_web_proxified = True
listening_addr = 0.0.0.0
listening_port = 8181
max_attempts = 10
max_upload_file_size = 30M
password =
upload_enabled = True
user =
web_logfile =
[debug]
ffmpeg = False
mumble_connection = False
redirect_ffmpeg_log = False
web_access_log_level = INFO
youtube_dl = False
[radio]
jazz = http://jazz-wr04.ice.infomaniak.ch/jazz-wr04-128.mp3 "Jazz Yeah !"
[youtube_dl]
cookie_file =
source_address =
user_agent =
[commands]
add_from_shortlist = shortlist, sl
add_tag = addtag
add_webinterface_user = webuseradd
change_user_password = password
clear = clear
command_symbol = !:
current_music = np, now
delete_from_library = delete
drop_database = dropdatabase
ducking = duck
ducking_threshold = duckthres
ducking_volume = duckv
find_tagged = findtagged, ft
help = help
joinme = joinme
kill = kill
last = last
list_file = listfile
list_webinterface_user = webuserlist
max_volume = maxvolume
mode = mode
pause = pause
play = p, play
play_file = file, f
play_file_match = filematch, fm
play_playlist = playlist
play_radio = radio
play_tag = tag
play_url = url
queue = queue
random = random
rb_play = rbplay
rb_query = rbquery
remove = rm
remove_tag = untag
remove_webinterface_user = webuserdel
repeat = repeat
requests_webinterface_access = web
rescan = rescan
search = search
skip = skip
split_username_at_space = False
stop = stop
stop_and_getout = oust
update = update
url_ban = urlban
url_ban_list = urlbanlist
url_unban = urlunban
url_unwhitelist = urlunwhitelist, urlunw
url_whitelist = urlwhitelist, urlw
url_whitelist_list = urlwhitelistlist, urlwls
user_ban = userban
user_unban = userunban
version = version
volume = volume
yt_play = yplay
yt_search = ysearch

1
release/2.0.0+8.7 Normal file
View File

@ -0,0 +1 @@
MANUAL MIGRATION NEEDED! We're fully migrated to a maintained version of botamusique from azlux. However, preserving data from the old one was not a consideration. Probably you can manually move over the downloaded files to the new volume but you're on your own! If someone actually does this pls add it to release notes :3 - knoflook