Had already installed navidrome here: 8 Music
So now it just a matter of moving it over to proxmox
The previous install did not use docker, it installed itself with a systemd service.
We will use docker this time.
They have a tutorial for this here: https://www.navidrome.org/docs/installation/docker/
They give this docker compose file:
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000 # should be owner of volumes
ports:
- "4533:4533"
restart: unless-stopped
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
volumes:
- "/path/to/data:/data"
- "/path/to/your/music/folder:/music:ro"we will lose all our users this way, but it is fine. I can recreate users.
We need to move over the music, and set a real path for our music and options
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000 # should be owner of volumes
ports:
- "4533:4533"
restart: unless-stopped
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
volumes:
- "/home/tommy/navidrome/data:/data"
- "/home/tommy/slskd/data/downloads:/music:ro"both those folders are just empty right now, so let’s copy over music.
from the old device i went to my slskd downloads ( /home/tommy/.local/share/slskd/downloads ) and scp’d over * to /home/tommy/slskd/downloads.
scp -r /home/tommy/.local/share/slskd/downloads/* [email protected]:/home/tommy/slskd/data/downloadsonce that finished, i ran docker compose up -d
navidrome is now running on port 4533
so I went to 192.168.2.6:4533 and made an admin user
Then I needed to setup lastfm like I did last time, except docker this time
the two relevant environment variables are ND_LASTFM_APIKEY and ND_LASTFM_SECRET as listed here : https://www.navidrome.org/docs/usage/external-integrations/
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000 # should be owner of volumes
ports:
- "4533:4533"
restart: unless-stopped
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
ND_LASTFM_APIKEY: ""
ND_LASTFM_SECRET: ""
volumes:
- "/home/tommy/navidrome/data:/data"
- "/home/tommy/slskd/data/downloads:/music:ro"to get that apikey and that secret, i tried to find them in the old server, and failed, so i just re-did the setup process. They should be in your old config.toml, but they werent for me.
You just go to https://www.last.fm/api/account/create, login, leave everything blank except the application name and your email, hit submit. then you are given the apikey and secret.
put those in the docker compose in the relevant locations
then re run docker compose up -d
go to the webui at 192.168.2.6:4533 and play a song. make sure the playing of the song shows up on your lastfm account.
I want to setup gluetun, so that when I setup slskd, all soulseek connections are routed through mullvad
it says for mullvad openvpn you do :
docker run -it --rm --cap-add=NET_ADMIN --device /dev/net/tun \
-e VPN_SERVICE_PROVIDER=mullvad \
-e VPN_TYPE=openvpn -e OPENVPN_USER=1355131650462193 \
-e SERVER_CITIES=amsterdam qmcgaw/gluetun
which converts to this as a docker-compose.yml
version: "3"
services:
gluetun:
image: qmcgaw/gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=mullvad
- VPN_TYPE=openvpn
- OPENVPN_USER=1355131650462193
- SERVER_CITIES=AmsterdamChange OPENVPN_USER to be your mullavd id Change SERVER_CITIES to be the city you want to target
then run docker compose up -d
you can test this connection with
docker run --rm --network=container:gluetun-gluetun-1 alpine:3.20 sh -c "apk add wget && wget -qO- https://ipinfo.io"
now it is time to setup slskd
I did this the non docker way last time. That was silly of me. I am doing the docker way this time.
They have a quick setup info here: https://github.com/slskd/slskd/?tab=readme-ov-file#quick-start
I will be using docker compose, so, a valid docker compose for slskd would be
version: "2"
services:
slskd:
image: slskd/slskd
container_name: slskd
ports:
- "5030:5030"
- "5031:5031"
- "50300:50300"
environment:
- SLSKD_REMOTE_CONFIGURATION=true
volumes:
- /home/tommy/slskd/data:/app
restart: alwaysalso youd have to make the directory /home/tommy/slskd and /home/tommy/slskd/data
but we want it to route through gluetun, so we combine the two docker compose files into one
# version: "2"
services:
gluetun:
image: qmcgaw/gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- "5030:5030"
- "5031:5031"
- "50300:50300"
environment:
- VPN_SERVICE_PROVIDER=mullvad
- VPN_TYPE=openvpn
- OPENVPN_USER=yourid
- SERVER_CITIES=Chicago IL
restart: always
slskd:
depends_on:
- gluetun
network_mode: "service:gluetun"
image: slskd/slskd
container_name: slskd
environment:
- SLSKD_REMOTE_CONFIGURATION=true
volumes:
- /home/tommy/slskd/data:/app
restart: alwaysnow we need to grab my old config and transfer that over
scp slskd.yml [email protected]:/home/tommy/slskd/data/
then run docker compose up -d
we can test the networking by getting container id from docker ps for a given container ( e.g. slskd ) then running docker exec -it 4a882c1bb22d sh to get a shell on that container. Then, from there, you can wget -qO- https://ipinfo.io. See if the ip is the same as your normal public ip ( it should not be )
now that we have that setup, check out slskd at 192.168.2.6:5030. Login should be whatever is defined in /home/tommy/slskd/data/slskd.yml
Then I setup cloudflare tunnels to replace the old vncwin tunnels to slskd and navidrome. I also moved these tunnels from my old domain which will soon expire to my new domain.