This commit is contained in:
Henning Bocklage
2021-06-28 21:46:48 +02:00
parent d296d58936
commit 2e2179390c
8 changed files with 78 additions and 72 deletions

View File

@ -1,4 +1,7 @@
# Changelog
## 2021-06-28
- Full rework of the latest by promoting the next gen version to current after the python version is permanently broken now
- Aside from the serverwide-arl, everything should work for now. As soon as that feature is available in the source, I will update the container with that functionality again.
## 2021-05-30
- Added next gen version of deemix as container variant
## 2021-04-12

View File

@ -13,16 +13,14 @@ LABEL \
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash && \
apt-get -y --no-install-recommends install >/dev/null \
nodejs \
jq \
iputils-ping \
curl \
git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
npm install --global yarn
#RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
#ENV NVM_DIR=/root/.nvm
#ENV NODE_VERSION=16.2.0
#RUN . $HOME/.nvm/nvm.sh && nvm install $NODE_VERSION && nvm alias default $NODE_VERSION && nvm use default
RUN git clone https://gitlab.com/RemixDev/deemix-gui.git --recursive && \
rm -R /config && \
mkdir /deemix-gui/server/music && \

View File

@ -12,74 +12,61 @@ Deemix in a Docker container.
## How to run this
Deemix will work out of the box, but you should at least set a fixed port for the web interface and mount a folder to the container for where your downloads will go.
You can also map a folder on the host for the config file (mount a local folder to /config/), but that's optional. If they add or rework settings in the future, there is no guarantee that your old configs will work, so beware.
> If using a config folder and global ARL, make sure to set it is in /path/config/.arl and that the file is the plaintext token
Run the container either via commandline or via docker-compose (see the provided example file).
Check the parameter explanation below to see which ones are mandatory.
### Example for Docker:
```
$ docker run -d --name Deemix \
-v /your/storage/path/:/downloads \
-v /your/config/location:/config \
-e PUID=1000 \
-e PGID=1000 \
-e ARL=1234567 \
-e UMASK_SET=022 \
-e DEEZUI=false \
-p 6595:6595 \
registry.gitlab.com/bockiii/deemix-docker
-v /your/storage/path/:/downloads \
-v /your/config/location:/config \
-e PUID=1000 \
-e PGID=1000 \
-e UMASK_SET=022 \
-p 6595:6595 \
registry.gitlab.com/bockiii/deemix-docker
```
### Example for Docker Compose:
```
version: '3.3'
services:
deemix:
image: registry.gitlab.com/bockiii/deemix-docker
container_name: Deemix
volumes:
- /your/storage/path/:/downloads
- /your/config/location:/config
environment:
- PUID=1000
- PGID=1000
- ARL=1234567
- UMASK_SET=022
- DEEZUI=false
ports:
- 6595:6595
deemix:
image: registry.gitlab.com/bockiii/deemix-docker
container_name: Deemix
volumes:
- /your/storage/path/:/downloads
- /your/config/location:/config
environment:
- PUID=1000
- PGID=1000
- UMASK_SET=022
ports:
- 6595:6595
```
### Updating Deemix
The container will look for a new update in the Deemix repo on every start and will update itself. So if you want to update Deemix, just stop and start the Container. Also works with docker-compose stop.
Pull the latest container for the latest Deemix version
### Explanation:
`-v /your/storage/path/:/downloads` - Path for your music downloads.
`-v /your/config/location:/config` - OPTIONAL: Path to your local configuration.
`-e PUID=1000` - OPTIONAL: User ID of the user you want the container to run as in order to fix folder permission issues.
`-e PGID=1000` - OPTIONAL: Group ID, see above.
`-e ARL=1234567` - OPTIONAL: If you want Deemix to automatically log in for everyone who opens the website, provide your ARL token via this Environment variable.
`-e UMASK_SET=022 - OPTIONAL: Setting UMASK for file permissions Default is 022
`-e DEEZUI=false - OPTIONAL: Setting DEEZUI to true will change your GUI to the legacy Deezloader UI.
`-p 6595:6595` - Port opened for the web interface.
`registry.gitlab.com/bockiii/deemix-docker` - This container.
| Parameter | Function |
| :----: | --- |
| `-v /your/storage/path/:/downloads` | Path for your music downloads |
| `-v /your/config/location:/config` | Path to your local configuration |
| `-e PUID=1000` | OPTIONAL: User ID of the user you want the container to run as in order to fix folder permission issues |
| `-e PGID=1000` | OPTIONAL: Group ID, see PUID |
| `-e UMASK_SET=022` | OPTIONAL: Setting UMASK for file permissions Default is 022 |
| `-p 6595:6595` | Port opened for the web interface |
| `-e INTPORT=3333` | EXTRA OPTIONAL: This changes the internal port of deemix. DON'T CHANGE THIS IF YOU DONT KNOW WHY YOU WOULD DO IT |
| `registry.gitlab.com/bockiii/deemix-docker` | This container |
To access the web interface, go to http://YOURSERVERIP:6595
## Tags
`latest` : Latest state of the master branch. Can be considered "working" but Deemix is under heavy development.
`latest` : Latest state of the main branch.
Tag includes `amd64`, `arm32v7` and `arm64v8` architectures.
@ -95,5 +82,4 @@ Gitlab link for this container: https://gitlab.com/Bockiii/deemix-docker
Issue Tracker for this Docker: https://gitlab.com/Bockiii/deemix-docker/-/issues
Feel free to open an issue that is Docker related, and not related to Deemix development. Go to the Deemix repository for that.

View File

@ -1,16 +0,0 @@
version: '3.3'
services:
deemix:
image: registry.gitlab.com/bockiii/deemix-docker
container_name: Deemix
volumes:
- /your/storage/path/:/downloads
- /your/config/location:/config
environment:
- PUID=1000
- PGID=1000
- ARL=1234567
- UMASK_SET=022
- DEEZUI=false
ports:
- 6595:6595

View File

@ -0,0 +1,14 @@
version: '3.3'
services:
deemix:
image: registry.gitlab.com/bockiii/deemix-docker
container_name: Deemix
volumes:
- /your/storage/path/:/downloads
- /your/config/location:/config
environment:
- PUID=1000
- PGID=1000
- UMASK_SET=022
ports:
- 6595:6595

View File

@ -6,4 +6,11 @@ printf '[cont-init.d] Fixing Folder Permissions\n'
chown abc:abc /deemix-gui/server
chown -R abc:abc /deem
chown -R abc:abc /config
chown -R abc:abc /deemix-gui/server/music
chown -R abc:abc /deemix-gui/server/music
# Fix misconfigured download locations. The container's download map is always /downloads.
if [ -f "/config/config.json" ]; then
jq '.downloadLocation = "/downloads"' /config/config.json > tmp.$$.json && mv tmp.$$.json /config/config.json
chown abc:abc /config/config.json
fi

View File

@ -0,0 +1,9 @@
#!/usr/bin/with-contenv bash
# test write access to download and config folder and test internet connectivity
printf '[cont-init.d] Testing Access\n' && \
printf '%-50s %2s %-5s \n' "[cont-init.d] Container Builddate" ":" "$BUILDDATEENV" && \
if [ -w "/downloads" ]; then printf '%-50s %2s %-5s \n' "[cont-init.d] Download Folder Write Access" ":" "Success"; else printf '%-50s %2s %-5s \n' "[cont-init.d] Download Folder Write Access" ":" "Failure"; fi && \
if [ -w "/config" ]; then printf '%-50s %2s %-5s \n' "[cont-init.d] Config Folder Write Access" ":" "Success"; else printf '%-50s %2s %-5s \n' "[cont-init.d] Config Folder Write Access" ":" "Failure"; fi && \
until ping -c 1 www.deezer.com &> /dev/null; do printf '%-50s %2s %-5s \n' "[cont-init.d] Internet Access" ":" "Failure. Trying again in 5 seconds"; sleep 5; done
printf '%-50s %2s %-5s \n' "[cont-init.d] Internet Access" ":" "Success"

View File

@ -1,7 +1,5 @@
#!/usr/bin/with-contenv bash
#printf '%-50s %2s %-5s \n' "[services.d] Package Build Date" ":" "$(cat /deemix/packagedate)"
UMASK_SET=${UMASK_SET:-022}
umask "$UMASK_SET"
@ -9,5 +7,12 @@ cd /deemix-gui/server
HOME=/deem
if [ ! -z ${INTPORT} ]; then
port=$INTPORT
else
port=6595
fi
echo "[services.d] Starting Deemix"
s6-setuidgid abc yarn start
s6-setuidgid abc yarn start-build --host 0.0.0.0 --port $port