mirror of
https://github.com/linuxserver/docker-beets
synced 2025-12-06 16:34:31 +01:00
test up new build dependencies and app from pip
This commit is contained in:
commit
44688b81ed
8 changed files with 200 additions and 0 deletions
25
Dockerfile
Normal file
25
Dockerfile
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
FROM linuxserver/baseimage.python
|
||||||
|
MAINTAINER smdion <me@seandion.com> ,Sparklyballs <sparklyballs@linuxserver.io>
|
||||||
|
|
||||||
|
ENV BEETSDIR /config
|
||||||
|
ENV APTLIST="ffmpeg lame libav-tools libchromaprint-tools libyaml-dev mp3gain wget"
|
||||||
|
|
||||||
|
RUN add-apt-repository ppa:kirillshkrogalev/ffmpeg-next && \
|
||||||
|
apt-get update -q && \
|
||||||
|
apt-get install $APTLIST -qy && \
|
||||||
|
pip install -U pyacoustid && \
|
||||||
|
pip install -U pylast && \
|
||||||
|
pip install -U flask && \
|
||||||
|
pip install -U beets && \
|
||||||
|
apt-get clean && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
|
||||||
|
|
||||||
|
#Adding Custom files
|
||||||
|
ADD init/ /etc/my_init.d/
|
||||||
|
ADD services/ /etc/service/
|
||||||
|
ADD defaults/ /defaults/
|
||||||
|
RUN chmod -v +x /etc/service/*/run /etc/my_init.d/*.sh
|
||||||
|
|
||||||
|
# Volumes and Ports
|
||||||
|
VOLUME /config /music
|
||||||
|
EXPOSE 8337
|
||||||
|
|
||||||
8
README.md
Normal file
8
README.md
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|

|
||||||
|
|
||||||
|
## This is a Container in active development, and should not be used by the general public.
|
||||||
|
If you are curious about the current progress or want to comment\contribute to this work, feel free to join us at out irc channel:
|
||||||
|
[IRC](https://www.linuxserver.io/index.php/irc/) on freenode at `#linuxserver.io`.
|
||||||
|
|
||||||
|
or visit our website at [https://linuxserver.io](https://www.linuxserver.io/)
|
||||||
|
|
||||||
46
READMETEMPLATE.md
Normal file
46
READMETEMPLATE.md
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|

|
||||||
|
|
||||||
|
The [LinuxServer.io](https://www.linuxserver.io/) team brings you another quality container release featuring auto-update on startup, easy user mapping and community support. Be sure to checkout our [forums](https://forum.linuxserver.io/index.php) or for real-time support our [IRC](https://www.linuxserver.io/index.php/irc/) on freenode at `#linuxserver.io`.
|
||||||
|
|
||||||
|
# linuxserver/<container-name>
|
||||||
|
|
||||||
|
<Provide a short, concise description of the application. No more than two SHORT paragraphs. Link to sources where possible and include an image illustrating your point if necessary. Point users to the original applications website, as that's the best place to get support - not here.>
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
docker create --name=<container-name> -v /etc/localtime:/etc/localtime:ro -v <path to data>:/config -e PGID=<gid> -e PUID=<uid> -p 1234:1234 linuxserver/<container-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Parameters**
|
||||||
|
|
||||||
|
* `-p 4242` - the port(s)
|
||||||
|
* `-v /etc/localtime` for timesync - *optional*
|
||||||
|
* `-v /config` -
|
||||||
|
* `-e PGID` for GroupID - see below for explanation
|
||||||
|
* `-e PUID` for UserID - see below for explanation
|
||||||
|
|
||||||
|
It is based on phusion-baseimage with ssh removed, for shell access whilst the container is running do `docker exec -it <container-name> /bin/bash`.
|
||||||
|
|
||||||
|
### User / Group Identifiers
|
||||||
|
|
||||||
|
**TL;DR** - The `PGID` and `PUID` values set the user / group you'd like your container to 'run as' to the host OS. This can be a user you've created or even root (not recommended).
|
||||||
|
|
||||||
|
Part of what makes our containers work so well is by allowing you to specify your own `PUID` and `PGID`. This avoids nasty permissions errors with relation to data volumes (`-v` flags). When an application is installed on the host OS it is normally added to the common group called users, Docker apps due to the nature of the technology can't be added to this group. So we added this feature to let you easily choose when running your containers.
|
||||||
|
|
||||||
|
## Setting up the application
|
||||||
|
|
||||||
|
<Insert a basic user guide here to get a n00b up and running with the software inside the container.> DELETE ME
|
||||||
|
|
||||||
|
|
||||||
|
## Updates
|
||||||
|
|
||||||
|
* Upgrade to the latest version simply `docker restart <container-name>`.
|
||||||
|
* To monitor the logs of the container in realtime `docker logs -f <container-name>`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
|
||||||
|
+ **dd.MM.yyyy:** This is the standard Version type now.
|
||||||
|
|
||||||
26
defaults/beets.sh
Normal file
26
defaults/beets.sh
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# beets music tagger - post-processing script
|
||||||
|
#
|
||||||
|
# Author: Rich Manton (overbyrn)
|
||||||
|
# Date: 29-04-13
|
||||||
|
#
|
||||||
|
# $1 - Fullpath of directory to be processed. eg./mnt/user/downloads/some.artist_some.album
|
||||||
|
|
||||||
|
# $7 - Status of post processing. 0 = OK, 1 = failed verification, 2 = failed unpack, 3 = 1+2
|
||||||
|
if [ ! -z $7 ] && [ $7 -gt 0 ]; then
|
||||||
|
echo "post-processing failed, bypassing script"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# process files
|
||||||
|
echo "--------------------------"
|
||||||
|
echo $(date)
|
||||||
|
echo "Starting beets.sh for $(basename $1)"
|
||||||
|
|
||||||
|
BEETSDIR=/config
|
||||||
|
export BEETSDIR
|
||||||
|
FPCALC=/usr/bin/fpcalc
|
||||||
|
export FPCALC
|
||||||
|
/usr/local/bin/beet -v import -q "$1"
|
||||||
|
|
||||||
63
defaults/config.yaml
Normal file
63
defaults/config.yaml
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
plugins: fetchart embedart convert scrub replaygain lastgenre chroma web
|
||||||
|
directory: /music
|
||||||
|
library: /config/musiclibrary.blb
|
||||||
|
art_filename: albumart
|
||||||
|
threaded: yes
|
||||||
|
original_date: no
|
||||||
|
per_disc_numbering: no
|
||||||
|
|
||||||
|
convert:
|
||||||
|
auto: no
|
||||||
|
ffmpeg: /usr/bin/ffmpeg
|
||||||
|
opts: -ab 320k -ac 2 -ar 48000
|
||||||
|
max_bitrate: 320
|
||||||
|
threads: 1
|
||||||
|
|
||||||
|
paths:
|
||||||
|
default: $albumartist/$album%aunique{}/$track - $title
|
||||||
|
singleton: Non-Album/$artist - $title
|
||||||
|
comp: Compilations/$album%aunique{}/$track - $title
|
||||||
|
albumtype_soundtrack: Soundtracks/$album/$track $title
|
||||||
|
|
||||||
|
import:
|
||||||
|
write: yes
|
||||||
|
copy: no
|
||||||
|
move: yes
|
||||||
|
resume: ask
|
||||||
|
incremental: yes
|
||||||
|
quiet_fallback: skip
|
||||||
|
timid: no
|
||||||
|
log: /config/beet.log
|
||||||
|
|
||||||
|
lastgenre:
|
||||||
|
auto: yes
|
||||||
|
source: album
|
||||||
|
|
||||||
|
embedart:
|
||||||
|
auto: yes
|
||||||
|
|
||||||
|
fetchart:
|
||||||
|
auto: yes
|
||||||
|
|
||||||
|
replaygain:
|
||||||
|
auto: no
|
||||||
|
|
||||||
|
scrub:
|
||||||
|
auto: yes
|
||||||
|
|
||||||
|
replace:
|
||||||
|
'^\.': _
|
||||||
|
'[\x00-\x1f]': _
|
||||||
|
'[<>:"\?\*\|]': _
|
||||||
|
'[\xE8-\xEB]': e
|
||||||
|
'[\xEC-\xEF]': i
|
||||||
|
'[\xE2-\xE6]': a
|
||||||
|
'[\xF2-\xF6]': o
|
||||||
|
'[\xF8]': o
|
||||||
|
'\.$': _
|
||||||
|
'\s+$': ''
|
||||||
|
|
||||||
|
web:
|
||||||
|
host: 0.0.0.0
|
||||||
|
port: 8337
|
||||||
|
|
||||||
6
init/30_update.sh
Normal file
6
init/30_update.sh
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pip install -U pyacoustid
|
||||||
|
pip install -U pylast
|
||||||
|
pip install -U flask
|
||||||
|
pip install -U beets
|
||||||
22
init/40_set_config.sh
Normal file
22
init/40_set_config.sh
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if beets.sh exists. If not, copy in
|
||||||
|
if [ -f /config/beets.sh ]; then
|
||||||
|
echo "Using existing config file."
|
||||||
|
else
|
||||||
|
echo "Creating beets.sh from template."
|
||||||
|
cp -v /defaults/beets.sh /config/beets.sh
|
||||||
|
chown abc:abc /config/beets.sh
|
||||||
|
chmod +x /config/beets.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Check if config.yaml exists. If not, copy in
|
||||||
|
if [ -f /config/config.yaml ]; then
|
||||||
|
echo "Using existing config file."
|
||||||
|
else
|
||||||
|
echo "Creating config.yaml from template."
|
||||||
|
cp /defaults/config.yaml /config/config.yaml
|
||||||
|
chown abc:abc /config/config.yaml
|
||||||
|
fi
|
||||||
|
|
||||||
4
services/beets/run
Normal file
4
services/beets/run
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
umask 002
|
||||||
|
|
||||||
|
/sbin/setuser abc beet web
|
||||||
Loading…
Reference in a new issue