Lidarr to download music, has Spotify playlist integration, only problem is it pulls by alblum not by song.
LMS to play music, it supports selecting tags to use.
Picard to tag the music. Kinda optional, but using plugins it can pull genre, moods, and BPM, which I liked using to make a smart playlist to get songs I like the sound of without 100% hand picking out of thousands.
There are forejo runners and they seem compatible with a bunch of github actions. I created one that builds a docker image and publishes it on the repo.