Daily Invidious Restarts
from irmadlad@lemmy.world to selfhosted@lemmy.world on 24 Jul 17:02
https://lemmy.world/post/49846136

I was having some issues with Invidious the other day, which I resolved. However, I came across this tidbit of info that I’d never seen before when I first deployed it:

Post-install configuration:

Highly recommended

Because of various issues, Invidious must be restarted often, at least once a day, ideally every hour.

docs.invidious.io/installation/#windows

Anyone else observing this weird restart schedule?

#selfhosted

threaded - newest

TeaWithDani@lemmy.world on 24 Jul 18:04 next collapse

I haven’t used this tool specifically, but anything involving Youtube is always going to be an uphill battle. In the instance of a video downloader like Channeltube, you frequently need to feed it fresh cookies to make sure Youtube doesn’t flag it as a bot. I assume this is a similar situation.

The requirements also list ‘‘2gb if you restart frequently’’ so there might be a memory leak issue, or the way it’s setup means the RAM usage will increase in perpetuity.

I would just script a task to restart the docker container every hour. Shouldn’t be too much a hassle, you’re unlikely to ever notice since it shouldn’t take more than a few seconds. I would track its RAM usage over a few days too. See if there’s something fishy happening. Something like Beszel will let you track your docker socket, so usage per container. Preferably left on read only imo.

irmadlad@lemmy.world on 24 Jul 18:10 collapse

I would just script a task to restart the docker container every hour. Shouldn’t be too much a hassle.

Yeah, I was thinking about that. A script fired by a cron every hour. I do have the occasional, rare issue with Invidious. So, I’m wondering if indeed I need more restarts. It couldn’t hurt.

TeaWithDani@lemmy.world on 24 Jul 18:13 collapse

What kind of issues have you had? How did you resolve them?

irmadlad@lemmy.world on 24 Jul 18:20 collapse

Well, it was quite simple and I feel a bit embarrassed. LOL When I ran an update, I thought it updated all three components: Invideous itself, the companion app, and the database. However, only the Invidious and database updated leaving the companion app for whatever reason out of the loop. So after fumbling around and doing a little reading, I just so happened to look at Portainer which has a green checkmark beside the container signifying it’s the current version. The companion app had an orange checkmark. So I updated again, and Jack’s a doughnut, Bob’s your uncle. But during my reading I came across the ‘reboot hourly’ admonishment that I don’t believe I’ve seen before. Long story short, everything is fine now.

TeaWithDani@lemmy.world on 24 Jul 18:24 collapse

Oh, I’ve been there! lol Yeah, you sometimes don’t expect to have to update an entire stack, not just one thing. Possible the companion app image was just released later and it wasn’t on you either. :P

But yeah, give the cron job a try. I’d be curious to try it out myself! In theory your webinstance shouldn’t cut out unless you click on something the exact moment the container is resetting.

irmadlad@lemmy.world on 24 Jul 18:45 collapse

In theory your webinstance shouldn’t cut out unless you click on something the exact moment the container is resetting

Most of what I use Invidious for is inspiration and some tutorials such as this I’m trying to learn:

12-string BASS

The guy makes me want to snap the neck of my bass in half.

TeaWithDani@lemmy.world on 24 Jul 19:16 collapse

Fuck yeah! This slaps. Brb while I get my headphones to listen to it again.

irmadlad@lemmy.world on 24 Jul 19:24 collapse

Yeah, if that doesn’t move you then you’re dead. LOL

darcmage@lemmy.dbzer0.com on 24 Jul 18:05 next collapse

I’d be surprised if most people running invidious for private use are following that advice. I’ve been on the master branch for a while and it gets updated fairly often. For my instance, I haven’t seen any reason to restart the service more often.

irmadlad@lemmy.world on 24 Jul 18:11 collapse

I haven’t seen any reason to restart the service more often.

Alright. Cool.

Atelopus-zeteki@fedia.io on 24 Jul 20:57 next collapse

I stopped using Invidious a couple years ago, when I found out about FreeTube. I do have to update FreeT pretty often. I'll put Invidious back on my list. Thanks for bringing it back to my attention.

irmadlad@lemmy.world on 24 Jul 22:56 collapse

Thanks for bringing it back to my attention.

You’re welcome. I think they’ve made pretty decent strides especially with the companion app and the fact that YT is relentless in trying to circumvent frontends.

Atelopus-zeteki@fedia.io on 26 Jul 13:49 collapse

Seems like there's a FreeTube update every week or so. Cat and Mouse games, but what YT doesn't realize is that Invidious and Freetube are the Cats and YT is the mouse to be consumed.

irmadlad@lemmy.world on 26 Jul 15:45 collapse

A friend of mine a while back was showing me some drums he was thinking about getting, and he had a YT video pulled up on his phone to show me of the drum kit in action. Two unskipable pre-rolls, one skippable pre-roll, the actual video, halfway through the video, another skippable ad. Jebus, how does anyone even put up with that? The ads were absolute bullshit too. One, as I remember, was this nurse advocating the use of Vicks Vapor Rub on your member to enhance the girth and length. I shit you not. I was like, who sees this and slathers Vicks Vapo Rub on your twigs n’ berries? Wow! That’s gotta burn. Damn sure would make mine run hide.

Atelopus-zeteki@fedia.io on 26 Jul 20:31 collapse

I wouldn't want to 'yuck someone else's yum'. AND please please please NO VICK'S on DICKS! I haven't used YT direct in quite some time. Thanks for the anecdote encouraging us all to continue avoidance.

mike_wooskey@lemmy.thewooskeys.com on 24 Jul 22:39 next collapse

I haven’t had to adjust or look at my invidious instance configs in a long time, but I do remember that in their docker instructions and I think I configured my container to restart hourly (or maybe I made it every other hour? Daily?). I’ve had no problems with my invidious instance in a long time, but that may have nothing to do with frequent restarts.

irmadlad@lemmy.world on 24 Jul 22:55 collapse

I think thats what I’ll do. Write a script, fired by a cron, to restart all three containers hourly and see how that goes. As I said further down, or up where ever this comment lands, that I do, on rare occasions, have issues with it. So, restarting couldn’t really hurt I wouldn’t think.

deviceshelf@lemmy.world on 26 Jul 21:53 collapse

That line predates invidious-companion. When the player and signature handling still lived in the main process, a periodic kick was the honest workaround, and the docs never really caught up after companion split it out.

What I’d push back on is the blind hourly restart, because it hides exactly the failure you just had. A companion image sitting a version behind shows up as things half-working, and a scheduled restart makes that go away for an hour at a time, so you never trace it. If you’re going to script something, script a check instead: hit an endpoint that actually plays a video, restart only when that fails, and log it when it does. Then a restart tells you something happened.

Small thing that would have caught your case: docker compose pull with no service name pulls all three, and docker compose images prints the digests you’re actually running.

irmadlad@lemmy.world on 26 Jul 22:07 collapse

That makes sense. I’ll see what I can come up with. Thanks for the guidance.

deviceshelf@lemmy.world on 27 Jul 12:31 collapse

Here’s the shape, if it saves you the fiddling. Put it in the compose file rather than a cron:

healthcheck:
  test: ["CMD-SHELL", "wget -qO- http://localhost:3000/api/v1/trending >/dev/null || exit 1"]
  interval: 5m
  timeout: 10s
  retries: 3
restart: unless-stopped

Port and path to match your setup, and use wget rather than curl unless you know the image ships curl, since a healthcheck that fails because the binary is missing looks exactly like a service that is down.

One catch: Docker marks a container unhealthy but won’t restart it for you. Either pair it with something like autoheal, which watches for that state, or keep your cron and have it check first and restart only on failure.

Either way you get the thing the blind hourly restart can’t give you: a log of how often it actually fired. Never, and you didn’t need the restarts. Constantly, and there’s a real bug worth chasing rather than a schedule papering over it.

irmadlad@lemmy.world on 27 Jul 12:39 next collapse

Aww shit man. Thanks for that. I’m going to do this today! Thank you. You are very generous with your time.

irmadlad@lemmy.world on 31 Jul 21:19 collapse

Hey bro, forgot to come back and thank you. That worked. I appreciate it greatly.