Help with Decluttarr
-
[email protected]replied to [email protected] last edited by
This just tells me you must be trying to build a container instead of just running a ready made one. That's what I mean by the complete lack of understanding. And in response to your previous comment, I doubt you're stupid. You're just clearly misguided on this subject. Save yourself all the headache and learn how to launch a docker container. It's even easier than what you've just tackled. I believe in you.
-
[email protected]replied to [email protected] last edited by
I appreciate your confidence (and your docker evangelism), but I don't have the bandwidth to tackle a docker project right now. I don't believe I was ever building containers, as I was leveraging projects like DockStarter designed to make things more painless. I'm sure I'll try again sometime, but that time isn't right now.
-
[email protected]replied to [email protected] last edited by
Take it from someone who is a Linux noob and Googles for terminal commands every time, and whose most used keys are ctrl c, ctrl v...
- Go to official docker documentation, copy paste the commands to install docker.
- go to Portainer documentation, copy paste the commands to install Portainer Community Edition
- Find a service you want to install, copy the 'docker compose' text. (A good first service to install is Watchtower which takes care of updating other containers)
- go to Portainer, find the 'stacks' tab, paste, click 'deploy'
Don't do this on your main server. Use some old hardware or a cheap VPS to practise on.
The main skill I need is googling and asking AI. It's that easy.
-
[email protected]replied to [email protected] last edited by
My dude, I understand your unwillingness, but docker is just a fancy new way of saying "install apps without it being a major PITA". You just find the app you want on docker hub or some other docker repo, you pull the image, you run it, et voila, you have a container. No worrying about python suddenly breaking, or about running 5 commands in a row to spin up an app (I used to do this, including the whole python rain dance, to run home assistant. I feel stupid now).
Decluttarr actually has a section to set up their container:
https://github.com/ManiMatter/decluttarr#method-1-docker
It's step by step, all you have to do is get docker installed on your machine, then copy paste that text into a file, and run the docker command mentioned in the same directory as the file.
Trust me, you want to learn this, because after the first 15 minutes of confusion, you suddenly have the holy grail to self hosting right at your fingertips. It takes me all of 5 minutes to add a new service to my homelab all because it's so easy with docker. And it's so ubiquitous and popular! TrueNAS SCALE uses docker for all its apps, the idea of containers essentially reshaped Linux desktop to be what it is today, with flatpaks and all.
-
[email protected]replied to [email protected] last edited by
Homie, I have been there. I spent days. I found it confusing. I don't recall all the details, but I wasn't able to get it all working. I will try again some day.
-
[email protected]replied to [email protected] last edited by
I've been using Linux daily since 2007 (Ubuntu Feisty Fawn). I've learned a lot, and there's some things I've never learned. Docker is one of those things that has been a problem. I also don't do a bit of programming.
-
[email protected]replied to [email protected] last edited by
This is for Gentoo but very applicable to your case as well:
-
[email protected]replied to [email protected] last edited by
What is it you're struggling to understand? Like is there a concept or command or something that just isn't clicking?
-
[email protected]replied to [email protected] last edited by
I don't have the time right now to get back into it, and it's been a year since I last tried, so I don't recall the specifics.
-
[email protected]replied to [email protected] last edited by
Not OP. I'm willing to learn Docker, but I just can't get it going. My machine is permanently connected through nordvpn, I use meshnet to access it from other devices if I'm not on local wifi. The docker + VPN doesn't work. Docker fails to download anything from docker hub, every request times out. Any instructions to bypass it looked very difficult, manually editing subnets or something, I feel uncomfortable with. Disabling services, then disabling VPN, then installing docker stuff and then restarting services and VPN also seems silly. I got lots going throught dietpi (many nicely embedded services), though it's holding me back for example from running jellyseerr
-
[email protected]replied to [email protected] last edited by
Personally, I'm mostly struggling with what data is stored where and how persistence is achieved. I have no issues getting services up and running with docker, but I'm paranoid about messing up my data.
If the service plainly stores content to a database, I have no problem backing up the database. But the variety of services offered via "simply run this docker command" come, as diverse the contents are. Between stored content (e.g. photos, documents, ...), metadata and configuration, I feel lost on how to handle this, when it comes to updates.
In comparison, when I set up an LXC container, where I take care of each dependency and step of the setup myself, I'm more aware on what is stored where and can take care of my data.
-
[email protected]replied to [email protected] last edited by
Okay, so I think I can help with this a little.
The "secret sauce" of Docker / containers is that they're very good at essentially lying to the contents of the container and making it think it has a whole machine to itself. By that I mean the processes running in a container will write to say
/config
and be quite content to write to that directory but docker is secretly redirecting that write to somewhere else. Where that "somewhere else" is, is known as a "volume" in docker terminology and you can tell it exactly where you want that volume to be. When you see a command with-v
in it, that's a volume map - so if you see something like-v /mnt/some/directory:/config
in there - that's telling docker "when this container tries to write to/config
, redirect it to/mnt/some/directory
instead.That way you can have 10 containers all thinking they're each writing to their own special
/config
folder but actually they can all be writing to somewhere unique that you specify. That's how you get the container to read and write to files in specific locations you care about, that you can backup and access. That's how you get persistence.There's other ways of specifying "volumes", like named volumes and such but don't worry too much about those, the good ol' host path mapping is all you need in 99% of cases.
If you don't specify a volume, docker will create one for you so the data can be written somewhere but do not rely on this - that's how you lose data, because you'll invariably run some docker clean command to recover space and delete an unused unnamed volume that had some important data in it.
It's exactly the same way docker does networking, around port mapping - you can map any port on your host to the port the container cares about. So a container can be listening on port 80 but actually it's being silently redirected by the docker engine to port 8123 on your host using the
-p 8123:80
argument.Now, as for updates - once you've got your volumes mapped (and the number and location of them will depend on the container itself - but they're usually very well documented), the application running in the container will be writing whatever persistence data it needs to those folders. To update the application, you just need to pull a newer version of the docker container, then stop the old one and start it again - it'll start up using the "new" container. How well updates work really depends on the application itself at this point, it's not really something docker has any control over but the same would be if you were running via LXC or apt-get or whatever - the application will start up, read the files and hopefully handle whatever migrations and updates it needs to do.
It's worth knowing that with docker containers, they usually have labels and tags that let you specify a specific version if you don't want it updating. The default is an implied
:latest
tag but for something like postgress which has a slightly more involved update process you will want to use a specific tag likepostgres:14.3
or whatever.Hope that helps!
-
[email protected]replied to [email protected] last edited by
Ubuntu doesn't allow pip to install system wide stuff anymore. You can solve that by installing everything in a pyhton virtual environment.
But for real, use Docker/Podman instead. It's a lot easier, especially if you're managing several applications!