• 0 Posts
  • 548 Comments
Joined 3 years ago
cake
Cake day: June 10th, 2023

help-circle

  • Glad you solved it yourself, but I’m still struggling to understand what happened, how did you have them all in a single folder if the filename for docker compose has to be one of a few predetermined things? I mean, you could have them all in a single file, which makes some things easier, but then you wouldn’t have been able to move them into individual folders. Would you mind explaining what happened there so that if someone else in the future has the same issue they might find the solution here?

    Also, note that even if someone had given you an example of a working docker file you would still have to configure the service. For future reference, this site is great and has working examples of docker compose files for a lot of services, e.g. https://hub.docker.com/r/linuxserver/radarr

    Finally, welcome to the club, sorry you had a bad experience the first time, it’s hard for us to know what’s obvious and what isn’t: https://xkcd.com/2501/


  • HTTP sends data in plain text, without any sort of verification. If you’re a malicious actor it’s a dream.

    While you need to understand a little bit of cryptography to fully understand it we can simplify a lot of you just accept public/private keys work. If you want to learn more about it you can read the wiki, but for the time being just accept that there’s a way to generate a pair of keys, a public one you share with the world, and a private one only you know, and that with these it’s possible for people to use the public key to send messages that only you can read, and for you to use the private keys to sign messages in a way that anyone can verify it’s you using the public key.

    So, HTTP is just a protocol to send text over the network, anyone can grab a package and read it. To make it secure there are some specific sites that contain a list of sites and their public keys. Your browser has an internal list of these sites. When you try to access, for example Google, your browser contacts one of these sites, and asks for Google’s public key, when it gets it it encrypts the message leaving only the header (which says this message is for Google) unencrypted and sends it. For everyone in the middle of the road they see a message for Google containing garbage, but when Google gets it they use their private keys to read it. Then whatever they reply they can sign it so that you can use the key to verify it came from them.

    With that in mind you might have noticed that what the server sends you back is plain text and publicly viewable. Therefore, every time you connect to a website there needs to be a handshake procedure, in short you send a message to the site (encrypted with his public key) telling it to reply to you using a public key you send them, now besides signing the message they also encrypt it using the key you gave them. And voila, no one can know what you said to the server because you encrypted it with its public key, and no one can know what the server told you because it encrypted it with your public key.

    This is a simplification of the protocol, but that’s the core idea on how it works. You also might have noticed that everyone can see who you’re talking too, and that there’s no way around that since your message has to reach the server other computers HAVE to know where to send it to. But, if you have access to another computer to use as a Hub, you can send messages to that computer encrypted with its public key where the content is an encrypted message to the site you’re actually trying to access, so no one knows where they go afterwards, and it can then send it to the site you’re trying to access. When it gets the response it can then encrypt it to send to you.

    That doesn’t really work if you’re the only one accessing that middle computer, but if lots of people do then it’s impossible to know what message is for who, because from the outside you see a bunch of messages directed to that computer, and a lot of messages from that computer to different sites. Some companies offer this service, its called Virtual Private Network, or VPN for short. Another reason why VPNs are important is that you have the public key on your system, so there’s less surface of attack.


  • Let’s get into very basic things.

    You have two computers you want to connect, you grab a cable, plug it in both and voila!

    You now need to connect a third computer, you could have a three way cable, but that makes it hard to replace things. Instead you have a box that has multiple connectors and internally it just connects all of them, essentially making a multi-end cable ok demand, this is what’s called a Hub because it’s just a centralized location where every package goes in/out.

    But now your machines need to know how to send messages to one or another, so you implement a protocol where each machine has a number, and every message sent you encapsulate in a header saying something like “For X”, and computers know their own number so they can discard messages that are not for them.

    Cool, but as you add more computers and longer cables the signal might become weak, you could add a very small chip to that box and some electricity so it can now act as a repeater. Most hubs were also repeaters, it was a small extra cost but a lot of extra functionality so it was an easy choice.

    As you add more computers you start to have an issue, whenever two computers send a message at the same time they collide and no one receives it. Now, this is silly, you have computer 1 sending a message to computer 2 and computer 3 sending a message to computer 4, there’s no reason these should collide, but because of the Hub they do (because both messages are actually sent to all computers and they just discard what’s not for them).

    It’s time to make your box a bit smarter. Instead of naively sending all messages everywhere, you add a computer there, it can understand the protocol we described before, and instead of just being a blind signal repeater. This box now knows which port each computer is plugged in, and so when 1 sends a message to 2 the signal only goes from the port 1 to the port 2, all other ports are free and can send messages at the same time. This is what’s called a Switch, because it switches what output the message goes to.

    Cool, but now we have two separate networks, which means there are two Computer 1. You can’t just put one cable between the two switches because they won’t know where computer 1 is. Each switch needs to have it’s own number, and you need to wrap the message twice, e.g. Computer 1 connected to switch 1 wants to send a message to computer 2 connected to switch 2. Switch 2 is connected on port 5 to switch 1, so you wrap your message with something like “For 5, For 2”. The first switch sends to 5, the second switch receives it, notices it’s for himself, discards the first wrapper, and sends to 2.

    Magic, right? Well, not quite, you need to know where computer 2 is located, and know all of the path to it. That’s not feasible for users to manage. What if we gave each computer a unique number across networks? It would be a sort of an Inter-Network Protocol address, or an Internet Protocol address for short, or even shorter IP. So now each computer has a unique number, and computer one can just send a message to computer 10 and not have to worry where it is.

    But how does the message actually get to computer 10? Well, it’s time to add some extra logic to our Switch, and have it store a table of routes, so it knows that computer 10 is on port 5. Because they now not only know what’s on their ports but what route a package needs to take to reach its destination between networks this device is called a Router.

    And there you go. A short introduction to network to explain what a router is and how it works. Obviously I simplified a lot of stuff and the real thing is a lot more complex, but this should give you a good ELI5 version of routers and networking.


  • One thing that helped shift my perspective was to use it for its intended purpose. I have it enabled on my code editor to use for auto-complete instead of traditional code parser or snippet library, it’s honestly very good at that, it still makes a few mistakes and suggests shitty code, but overall I think it mostly works and it’s easier to hit tab and have the full for loop or small function written and correct the variable access it got wrong when it does.

    Another thing that has made it very useful to me was in situations where I need to write code using libraries or languages I’m not used to. Having a copilot or Claude tab opened and asking it how to do certain stuff is a lot faster than reading the documentation to figure out the API or syntax. If something doesn’t work you feed it the error and it usually spots the problem. This has made me a lot more productive with for example Jenkins, since it’s a different language from what I use for everything else, and to properly test it you have to commit the code and let the pipeline run, before LLMs this was a very tedious work of reading docs, stack overflow, extrapolating responses, etc. Now it’s still tedious work, but at least I have my first draft much quicker and can then deal with the hallucinations or obsolete APIs it told me to use.



  • Pros

    I get to own my system. I get to do what I want, if something is not to my liking there’s likely a way to make it work like how I want.

    Cons

    I have to own my system. If something breaks I have to fix it, if something doesn’t work I need to figure it out.

    and what if any do you miss from windows?

    Expect things to work. Linux is a minority of users, any manufacturer or dev HAS to make their products work for Windows, so much so that Windows users don’t even consider the possibility that something is not made for Windows.




  • What? So in your head Valve has to be okay with companies using their infrastructure for everything while selling the main access elsewhere just because it’s a bad idea not to have your game in Steam?

    Look, if this had been a “you can’t sell the same thing cheaper elsewhere or we delist you” kind of deal I would agree it’s using their power to dictate price. But from what that other commenter said this was the other company selling a cheap launcher on Steam and then selling in-game content for everything inside it. So try were making Valve pay the price to host the full game but only selling some content of it on their store. It’s like saying Epic launcher were to be sold on Steam (except even worse, because it’s a launcher that contains the full game thus forcing Valve to foot the bill for hosting/downloads while the other company takes the profit for the game sale).







  • I mean, no one ever doubted Valve was a for profit company.

    They aren’t going to sell a product if they don’t make a profit.

    Obvious

    They want to make more profit.

    O don’t think that’s what’s happening here, RAM prices are ridiculously high, and the Deck has RAM and SSD. We also know they’re selling it close to cost so they wouldn’t have been able to take the hit on those increases, and the price increase seems to be exactly what the components have increased in price.

    They have the potential to enshitify at any moment.

    That’s also true, and something we should be weary of, but I don’t think it’s warranted on this case.

    how is it different than Apple locking its customers in a walled garden?

    Because their hardware is not locked. You can do whatever you want with your Deck. Wanna pirate games? Go ahead, wanna install windows in it? Be my guest. That’s part of the reason why Valve can’t sell these cheaper than manufacturing cost like most consoles are, because it’s an open architecture people would just buy it in bulk to do servers and shit like they did with the PS3 before it was locked down for this exact reason.

    What happens if they decide to make all the games you bought unavailable for licensing reasons? What happens if they shut down and suddenly all your games are gone What happens if they lock their hardware?

    What happens if the government starts abducting children for their secret brainwashing institution? What happens if they shut down all personal own property? What happens if they lock all of the frontier?.. Don’t you think you’re overreacting a little bit to RAM being more expensive and a product that has RAM becoming more expensive too?


  • The short version is imagine the world has a production capability of X sticks of RAM per day. Up until now it consumed X sticks of RAM and all was good. Suddenly a new player enters the market that requires Y sticks of RAM and is willing to pay a lot more than everyone else, now the total amount of RAM is X-Y (and just to give you an idea of the size of the problem Y is approximately 40% of X). Factories might start working more and try to produce more, and they might increase productivity by Z, but if Z<Y we’re still in a deficit so we have over demand and lack of production. RAM factories are not made overnight, so it takes months if not years to open new ones and bump the amount that’s actually able to be produced.

    It will pass, lots of companies are rushing to open more factories, China has started producing RAM too, plus the new player that was buying Y before and signed to do so for months to come is trying to buy less now.


  • Plex server doesn’t need to be “portable”

    Strongly disagree, I’ve switched my media server several times in the past decade for a multitude of reasons, having things in docker has allowed me to do this seamlessly.

    Also you’re ignoring all of the other benefits of running in docker, from isolation to automation.

    and running it in docker definitely doesn’t make it easier.

    Plex is the only self-hosted service that is purposefully trying to block you from being ran in docker. All other things are just much easier to run in docker, that’s part of the appeal, reproducible builds eliminate the “it works on my machine” errors.

    There absolutely are programs that make sense to run in docker, but Plex server isn’t one of them.

    Why do you think it doesn’t make sense? Does Jellyfin make sense to you to run in docker? Why are they different?

    Also, Plex only supports Ubuntu and CentOS, none of which I run on my server, so the only OFFICIAL way to run Plex is Docker.



  • What Plex does is closer to having an embedded tailscale client, you can access Jellyfin remotely with tailscale for free, but OP specifically asked for no VPN.

    That being said, I’m not opposed to Plex charging for that service, even a tailscale like server costs something to maintain. My gripe with Plex is that it purposefully shoots itself in the foot to force you into their paid service, i.e. it actively tries to isolate itself so you can’t access it remotely, which means that it can’t run inside a docker container unless you give it network host access, otherwise it only considers other docker containers locals and doesn’t let you watch your own content from another machine in the same network.