Linux is a slightly different way of thinking. There are any number of ways that you can solve any problem you have. In Windows there are usually only one or two that work. This is largely a result of the hacker mentality from which linux and Unix came from. “If you don’t like how it works, rewrite it your way” and “Read the F***ing Manual” were frequent refrains when I started playing with linux.
Mint is a fine distro which is based off of Ubuntu, if I remember correctly. Most documentation that applies to Ubuntu will also apply to you.
Not sure what exactly you installed, but I’m guessing that you did something along the lines of sudo apt-get install docker.
If you did that without doing anything ahead of time, what you probably got was a slightly out of date version of docker only from Mint’s repositories. Follow the instructions here to uninstall whatever you installed and install docker from docker’s own repositories.
The Docker Desktop that you may be used to from Windows is available for linux, however it is not part of the default install usually. You might look at this documentation.
I don’t use it, as I prefer ctop combined with docker-compose.
Towards that end, here is my docker-compose.yaml for my instance of Audiobookshelf. I have it connected to my Tailscale tailnet, but if you comment out the tailscale service stuff and uncomment the port section in the audiobookshelf service, you can run it directly. Assuming your not making any changes,
Create a directory somewhere,
mkdir ~/docker
mkdir ~/docker/audiobookshelf
This creates a directory in your home directory called docker and then a directory within that one called audiobookshelf. Now we want to enter that directory.
cd ~/docker/audiobookshelf
Then create your docker compose file
touch docker-compose.yaml
You can edit this file with whatever text editor you like, but I prefer micro which you may not have installed.
micro docker-compose.yaml
and then paste the contents into the file and change whatever setting you need to for your system. At a minimum you will need to change the volumes section so that the podcast and audiobook paths point to the correct location on your system. it follows the format <system path>:<container path>.
Once you’ve made all the needed changes, save and exit the editor and start the the instance by typing
sudo docker compose up -d
Now, add the service directly to your tailnet by opening a shell in the tailscale container
copy the link it gives you into your browser to authenticate the instance. Assuming that neither you or I made any typos you should now be able to access audiobookshelf from booksIf you chose to comment out all the tailscale stuff you would find it at localhost:13378
docker-compose.yaml
<span style="color:#323232;">version: "3.7"
</span><span style="color:#323232;">services:
</span><span style="color:#323232;"> tailscale:
</span><span style="color:#323232;"> container_name: audiobookshelf-tailscale
</span><span style="color:#323232;"> hostname: books # This will become the tailscale device name
</span><span style="color:#323232;"> image: ghcr.io/tailscale/tailscale:latest
</span><span style="color:#323232;"> volumes:
</span><span style="color:#323232;"> - "./tailscale_var_lib:/var/lib" # State data will be stored in this directory
</span><span style="color:#323232;"> - "/dev/net/tun:/dev/net/tun" # Required for tailscale to work
</span><span style="color:#323232;"> cap_add: # Required for tailscale to work
</span><span style="color:#323232;"> - net_admin
</span><span style="color:#323232;"> - sys_module
</span><span style="color:#323232;"> command: tailscaled
</span><span style="color:#323232;"> restart: unless-stopped
</span><span style="color:#323232;"> audiobookshelf:
</span><span style="color:#323232;"> container_name: audiobookshelf
</span><span style="color:#323232;"> image: ghcr.io/advplyr/audiobookshelf:latest
</span><span style="color:#323232;"> restart: unless-stopped
</span><span style="color:#323232;"># ports: # Not needed due to tailscale
</span><span style="color:#323232;"># - 13378:80
</span><span style="color:#323232;"> volumes:
</span><span style="color:#323232;"> - '/mnt/nas/old_media_server/media/books/Audio Books:/audiobooks' # This line has quotes because there is a space that needed to be escaped.
</span><span style="color:#323232;"> - /mnt/nas/old_media_server/media/podcasts:/podcasts # See, no quotes needed here, better to have them though.
</span><span style="color:#323232;"> - /opt/audiobookshelf/config:/config # I store my docker services in the /opt directory. You may want to change this to './config' and './metadata' while your playing around
</span><span style="color:#323232;"> - /opt/audiobookshelf/metadata:/metadata
</span><span style="color:#323232;"> network_mode: service:tailscale # This line tells the audiobookshelf container to send all traffic to tailscale container
</span>
I’ve left my docker-compose file as-is so you can see how it works in my setup.