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

help-circle
  • Why do you want to expose them? This might limit the solutions.

    The way I do this is in 2 different ways:

    1. Tailscale, my server connects to tailscale so all I have to do is connect to it from my phone and I can access things remotely easily. This is the best for most things, but has the downside that others can’t access it as easily

    2. I have a VPS (two actually at the moment as I’m switching providers from Vultr to IONOS) that also connects to tailscale so it can access my home server through it, then using Caddy I expose the services on a subdomain of the VPS. This is what I do for things that others might want to access, or things I don’t want to have to connect to tailscale to access.

    If you’re going down the second route do consider that you will need to:

    • Add something like fail2ban or crowdsec to the VPS as attacks will happen.
    • Same reason you should add a dedicated authentication on front of most things. While I don’t expect the auth on services to be weak, it might be more vulnerable than a dedicated authentication service. You should look into Authelia, Authentik, or similar to put on front of your services so any attacker would first have to pass that to even get to your services.

  • I’m not a law expert, but I think even in Germany you would need to prove a pattern not a one off banned a black/trans person to accuse of discrimination. Otherwise any negative repercussion to a black/trans person would generate a discrimination lawsuit, and that just seems absurd.

    I assume that if codeberg forces this it will do so with the most egregious offenders, because like you have pointed out it’s impossible to differentiate good code written with AI tools from good code written without them, but bad code written with AI tools is sometimes very differentiable from bad code written without them. And at the end of the day they’re trying to safe-guard against lawsuits over it (as the person uploading the code is not the owner) and becoming a slop repository.

    But also, here’s the thing, they’re not making money of you hosting your code there, so it’s much harder to force them to take someone’s data. You could force Google to host your photos if you were unjustly banned, you can’t force me to do so if you found a loophole to use my server for that.


  • How would it be legally challengeable? No one can be legally forced to host someone else’s data against their will, that sounds ludicrous, otherwise people could sue YouTube for removing their videos before they were legally required to.

    The TOS are essentially a way to let you know what they will consider, but legally they can remove your repo without any reason, they’re not legally required to host your data.




  • 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/


  • 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.



  • I don’t get how that output showcases anything, unless he had run that against a known instance of forgejo so the owners of that instance could confirm that he actually executed code. But he’s only showing a text file, that’s like saying look I hacked super_secure_self_hosted_service:

    python hack_it.py localhost:3000
    
    Hacked!
    

    For all we know chain_alpha.py is just a bunch of prints.

    Also, even if it is real (which I don’t really doubt, but I have seen no proof) holding the information instead of properly disclosing it is just childish. It’s not a carrot methodology, it’s a stick one, and one without a carrot. This is the sort of thing you do to big companies with no morals, doing it to a small open source project is just wrong, they don’t have the manpower or money to redo the investigation you already did. Release a CVE, talk to the devs, and/or push a PR, but saying “I found a vulnerability but I won’t tell you about it” is just dumb.


  • That article has lots of issues:

    17% of the most popular Rust packages contain code that virtually nobody knows what it does

    That’s not true at all, the article where he got that information from says:

    Only 8 crate versions straight up don’t match their upstream repositories. None of these were malicious: seven were updates from vendored upstreams (such as wrapped C libraries) that weren’t represented in their repository at the point the crate version was published, and the last was the inadvertent inclusion of .github files that hadn’t yet been pushed to the GitHub repository.

    So, of the 999 most popular crates analyzed 0% contains code nobody knows what it does.

    He then lists some ways packages can be maliciously compromised:

    1. Steal credentials and impersonate a dev
    2. Misleading package names
    3. Malicious macros (this one is interesting, had never considered it before)
    4. Malicious build script

    And his solutions are:

    1. Bigger std library (solves none of the above)
    2. Source dependencies (solves none of the issues he showed, only the issue that happens in 0% of packages where binary doesn’t match the source and is detectable)
    3. Decentralized packages (which worsens every security concern)
    4. Centralized Checksum database (so a centralized package manager is bad, but a centralized Checksum index is good? How does that work?)

    Honestly I can’t take that article seriously, it grossly misinterpreted another study, presents problems that exist on every single package manager ever, doesn’t propose ANY valid solution, and the only thing he points to as a solution suffers from ALL of the same issues and then some.



  • Hey, I’ve been using silverbullet for a year or so. The first thing that I will say is that if you don’t care for client/server I would suggest just keep markdown files in a folder, that’s very portable and there are tons of plugins for editors to track that, that’s what I was doing before Silverbullet, and way before that it was org-mode which I still miss a few features sometimes. I’ve never used LogSeq, for any extended period so can’t talk about specifics there.

    From my experience these are the things I like about Silverbullet:

    • It’s mostly markdown, this means that if I ever have an issue with SB I can just access the files directly
    • Client/Server means I can add quick things from my phone/tablet/different computer very easily
    • Sync mode means I can edit even when offline and have it sync later
    • It is extremely hackable, if you can program you can make it do what you want and it can be amazing at times

    And these are some things I dislike about it:

    • Syntax doesn’t seem to be stable. I have some old files that don’t draw tables anymore because something changed in the extra syntax they have for queries.
    • It is very bare-bones, it doesn’t have the bells and whistles of other larger products and it never will, it’s not what it’s about.

    At the end of the day I think it’s a great tool for what it does, but you should understand what it is. If you’re expecting charts, diagrams or similar you will be sorely disappointed. If you expect a solid note taking app I think you’ll be very happy with it.


  • I theoretically have Diun setup, but realistically I just run my Ansible playbook weekly and have most containers set to latest. The exceptions being things that sometimes need special steps when upgrading such as Immich or critical stuff I want special attention such as Athelia/Authentik, for those I subscribe to their releases via RSS so I can update them easily, which usually is just changing a value in my Ansible configuration, but if extra changes are needed I can adapt them.




  • But what is a trusted provider? How can you trust it? How sure are you that you’re not being MitM? Have you fully manually verified that there’s no funky flags in curl like -k, that the url is using SSL, that it’s a correct url and not pointing at something malicious, etc, etc, etc. There are a lot of manual steps you must verify using this approach, whereas using a package manager all of them get checked automatically, plus some extra checks like hundreds of people validating the content is secure.

    To do apt get from an unknown repo, you first need to convince the person to execute root commands they don’t understand on their machine to add that unknown repo, if you can convice someone to run an unsafe command with root credentials then the machine is already compromised.

    I get your point, random internet scripts are dangerous but random internet packages can also dangerous. But that’s a false equivalence because there are lots of safeguards to the packages in the usual way people install them, but less than 0 safeguards to the curl|bash. In a similar manner, if this was a post talking about the dangers of fireworks and how you can blow yourself up using them your answer is “but someone can plant a bomb in the mall I go to, or steal the codes for a nuclear missile and blow me up anyways”.


  • But those are two very different things, I can very easily give you a one liner using curl|bash that will compromise your system, to get the same level of compromise through a proper authenticated channel such as apt/pacman/etc you would need to compromise either their private keys and attack before they notice and change them or stick malicious code in an official package, either of those is orders of magnitude more difficult than writing a simple bash script.