• 0 Posts
  • 28 Comments
Joined 1 year ago
cake
Cake day: June 5th, 2023

help-circle




  • You could sandbox it into a work profile that doesn’t have access to your main profile. Storage is completely segregated, and the work profile can be easily disabled when you’re not using it.

    The best solution is obviously to choose another platform and convince your girlfriend to use that, explaining how this little extra effort on her part to use another app goes a long way with you in terms of appreciation and understanding of a partner’s boundaries and comfort zone.




  • I use Clipious, an Android client for Invidious, on my phone. I selfhost my own Indivious instance so this is perfect in that my phone never connects to YouTube directly, and I can save all my subscriptions in one place without a YouTube account.

    On my Android TV I use Smart Tube Next. If I really need to cast, I also have YouTube ReVanced on my phone for just that, but I barely use it.

    As soon as Clipious gets a proper Android TV interface, I’ll be set, as both devices can just connect to Invidious and let it do all the work.





  • You’re seeing that toast about versions since backend version 0.18.0 switched away from using a websockets-based API to a REST API, and the Jerboa client app is (in a not-so-descriptive way) warning you that the backend you are connected to isn’t aligned with the app version in terms of what it expects of the backed. This should go away pretty soon as more servers update their backend version and the Jerboa app update hits more devices.


  • Oh yeah for sure, everyone should work on whatever they want without restriction or obligation to be focusing on what someone else wants. And more often than not a pet project is a way to learn a new language or framework with the goal of self-development. That’s a great thing.

    It’s just a thought I selfishly have sometimes when I see many apps in development for the same platform, I can’t help but wonder “if all of this effort were focused across fewer apps, could each of those be better than any of these current ones are individually today?” Of course the number of devs contributing to a project has no direct correlation when it comes to the quality or maturity of the product. That’s down to the management, skillset of the devs, etc. I’m well aware of all of that, and the pros and cons of the differences in scenarios.

    Just thought I’d share the thought out there. In any case, Lemmy getting all of this attention will no doubt lead to the rise of at least a few solid mobile apps that will stick around and not fizzle out into development neglect within a couple of months.


  • It’s awesome to see Lemmy getting lots of love, and choice in the mobile app space is great for everyone. But some part of me also kind of wishes that rather than spreading so much development effort out over so many mobile apps, that more developers would jump in and contribute to polishing up the official open source Lemmy mobile app, Jerboa. I can’t help but feel that it would be nice to see a focused effort somewhere in bringing that one in particular up to snuff, as a sort of “reference” app. And have a few others floating around out there just for some diversity and testing innovative ideas.

    Maybe it’s already that way, I don’t know. It kind of feels like there’s a new Lemmy mobile app announced every couple of days.


  • However, that’s come with other tradeoffs in useability, speed, and fediration experience.

    Like what? If properly configured none of the things listed should negatively impact hosting a Lemmy instance.

    sure I’ll be adding an exception/rule for that, but it’s not a straight forward task.

    It honestly should be to someone who would be hosting any public web application using Cloudflare. Cloudflare makes all of this quite easy, even to those with less experience.

    Heck, the removal of websockets will require quite a few changes in my Cloudflare config.

    What config are you referring to? In the Cloudflare console? For websockets changing to a REST API implementation there should be nothing at all you need to do.

    Sure, someone truly concerned with security knows to do this, but that’s definitely not going to be everyone

    And it shouldn’t have to be everyone, only those who take on the responsibility of hosting a public web application such as a Lemmy instance.

    No matter the capabilities inherent in what you choose to host, the onus rests on the owner of the infrastructure to secure it.

    Everyone should be free to host anything they want at whatever level of security (even none) if that’s what they want to do. But it’s not reasonable nor appropriate to expect it to be done for you by way of application code. It’s great if security is baked in, that’s wonderful. But it doesn’t replace other mitigations that according to best practices should rightfully be in place and configured in the surrounding infrastructure.

    In the case of the captcha issue we’re discussing here, there’s more than enough appropriate, free solutions that you can use to cover you appropriately.


  • There’s nothing stopping instance owners from incorporating their own security measures into their infrastructure as they see fit, such as a reverse proxy with a modern web application firewall, solutions such as Cloudflare and the free captcha capabilities they offer, or a combination of those and/or various other protective measures. If you’re hosting your own Lemmy instance and exposing it to the public, and you don’t understand what would be involved in the above examples or have no idea where to start, then you probably shouldn’t be hosting a public Lemmy instance in the first place.

    It’s generally not a good idea to rely primarily on security to be baked into application code and call it a day. I’m not up to date on this news and all of the nuances yet, I’ll look into it after I’ve posted this, but what I said above holds true regardless.

    The responsibility of security of any publicly hosted web application or service rests squarely on the owner of the instance. It’s up to you to secure your infrastructure, and there are very good and accepted best practice ways of doing that outside of application code. Something like losing baked in captcha in a web application should come as no big deal to those who have the appropriate level of knowledge to responsibly host their instance.

    From what this seems to be about, it seems like a non-issue, unless you’re someone who is relying on baked in security to cover for your lack of expertise in properly securing your instance and mitigating exploitation by bots yourself.

    I’m not trying to demean anyone or sound holier than thou, but honestly, please don’t rely on the devs for all of your security needs. There are ways to keep your instance secure that doesn’t require their involvement, and that are best practice anyways. Please seek to educate yourself if this applies to you, and shore up the security of your own instances by way of the surrounding infrastructure.




  • I have a single Nginx container that handles reverse proxying of all my selfhosted services, and I break every service out into its own configuration file, and use include directives to share common configuration across them. For anyone out there with Nginx experience, my Lemmy configuration file should make it fairly clear in terms of how I handle what I described above:

    server {
      include ssl_common.conf;
      server_name lm.williampuckering.com;
      set $backend_client lemmy-ui:1234;
      set $backend_server lemmy-server:8536;
      
      location / {
        set $authentication "Authentication Required";
        include /etc/nginx/proxy_nocache_backend.conf;
        
        if ($http_accept = "application/activity+json") {
          set $authentication off;
          set $backend_client $backend_server;
        }
        if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") {
          set $authentication off;
          set $backend_client $backend_server;
        }
        if ($request_method = POST) {
          set $authentication off;
          set $backend_client $backend_server;
        }
        
        auth_basic $authentication;
        auth_basic_user_file htpasswd;
        proxy_pass http://$backend_client;
      }
      
      location ~* ^/(api|feeds|nodeinfo|.well-known) {
        include /etc/nginx/proxy_nocache_backend.conf;
        proxy_pass http://$backend_server;
      }
      
      location ~* ^/pictrs {
        proxy_cache lemmy_cache;
        include /etc/nginx/proxy_cache_backend.conf;
        proxy_pass http://$backend_server;
      }
      
      location ~* ^/static {
        proxy_cache lemmy_cache;
        include /etc/nginx/proxy_cache_backend.conf;
        proxy_pass http://$backend_client;
      }
      
      location ~* ^/css {
        proxy_cache lemmy_cache;
        include /etc/nginx/proxy_cache_backend.conf;
        proxy_pass http://$backend_client;
      }
    }
    

    It’s definitely in need of some clean-up (for instance, there’s no need for multiple location blocks that do the same thing for caching, a single expression can handle all of the ones with identical configuration to reduce the number of lines required), but I’ve been a bit lazy to clean things up. However it should serve as a good example and communicate the general idea of what I’m doing.


  • The main advantage to me is that I can work with Invidious as a backend, and whatever I configure there will reflect in Clipious as a client. So as I subscribe to new channels in Invidious, add or update playlists, etc, Clipious will reflect these changes accordingly. Advantages of selfhosting Invidious that indirectly benefit Clipious are of course built-in adblocking by virtue of how Invidious works, SponsorBlock support, and the ability to cache static assets, such as video thumbnails for faster load times, using a reverse proxy (Nginx is what I use). There’s a lot more we could dive into beyond this, such as no Google account requirement (for enhanced privacy).

    One area where the SmartTubeNext and YouTube ReVanced combo has the advantage is the convenience of being able to cast from your handheld device to your TV. Clipious/Invidious has no casting ability. But I can totally live without that.