• ohwhatfollyisman@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    8 months ago

    lichess.org is a fantastic online chess platform for players of all skill levels. it’s free and—what’s more–it’s ad-free (unlike the parasitic organisation that’s squatting on the chess.com domain).

    it has one-on-one on-demand match-ups, tournaments, puzzles, user-published training courses, multiple chess variants, and so much more.

    it’s one of only two online resources to which i deem donating regularly worthwhile (the other being wikipedia).

    do check it out. chess is one really healthy mental habit to inculcate.

  • ElectroVagrant@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    8 months ago

    In terms of fully free, obligatory mention:
    Your library may offer more than books alone, depending on how well supported they are. Borrow music, movies, sometimes even video games. For music and movies they may also offer these to borrow digitally as well via online services they coordinate with.

      • dependencyinjection@discuss.tchncs.de
        link
        fedilink
        arrow-up
        0
        ·
        8 months ago

        Before you start can I ask what experience you have with computers, command line, and have you ever done any programming.

        Programming isn’t necessary but it helps me see if you’ve been exposed to the kind of syntax you will see in docker.

        Happy to help you learn this though.

        • P1nkman@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          8 months ago

          I’m on a course to become full stack developer, and I know the command line (basics), have an old laptop running Linux Mint that I want to test to use as a docker, but I have no idea where to start.

          • dependencyinjection@discuss.tchncs.de
            link
            fedilink
            arrow-up
            0
            ·
            edit-2
            8 months ago

            I am going to be pasting a set of commands to get docker and docker compose set up, but please be wary of people giving commands to run in the terminal. You could use the information I’ve provided to help you find guides to confirm that no weird commands, but I copied this from my guide I use whenever I set up a new VM to use docker.

            So the commands below add any dependencies for docker, adds the GPG key to verify and then installs docker and docker compose. I also set up a docker user add them to the docker group so I don’t need to use sudo to run.

            I then use docker to create a portainer instance. Portainer allows you to use a webUi to see what you have running and stop start any of your services from there.

            After this I have provided a docker compose file which would be named docker-compose.yml. Yaml sucks as it constantly moans about spacing, but essentially you want to use spaces and not tabs and each new line would be indented two spaces unless it’s a sub part of the section above then it would be two more spaces etc.

            This docker compose might or might not be what you need, this one first sets up gluetun, which is a VPN layer which I can route other services through as you don’t want to torrent from your IP.

            So gluetun is set up using ProtonVPN and you pass the username and password. Username has +pmp for port forwarding.

            Then each service under here can choose to use the service:gluetun or bridge network. The former is for the VPN the latter is routed through regular network. Notice how anything routed through the VPN has the ports defined in the VPN service.

            The others things you would need to be conscious of is the paths I have used for /mnt/vault/* as these are network attached storage from TrueNAS. Depending on how you want to store things you’ll need to just add the paths to these. The paths look weird but the part before the colon is where it is on your machine and the part after is what it is called inside that container.

            You’ll notice that Plex requires a claim key but you can google how to find that.

            This isn’t going to get you up and running and you will likely run in to permission errors and other errors along the way. I would suggest coming back here with your errors or giving them to ChatGPT, just don’t blindly copy commands if you don’t know what they do.

            Once your docker compose is complete you can run docker compose up -d to spin it up. Then in portainer you can see all the containers and then login to each and do the setup. Docker compose down to stop them all.

            When I set this up I did the gluetun and then Radarr. Get that working and then add your next thing and then the next and so on until you have what you want.

            As I said this isn’t a complete solution and you will run into roadblocks, but that’s the fun for me and I am happy to help when you get stuck along the way.

            Edit: A few more things you should know. The volumes section. The ones starting with ./ means they’re in the directory where the docker compose file is. And as I have perms to 1001 you would need to ensure that is the PUID of the docker user and then for each folder, plex for instance you can run “sudo chown -R 1001:1001 ./plex” and “sudo chmod-R 755 ./plex” which is change ownership and changes permissions for that directory.

            ### Docker

            Install dependencies

            `sudo apt install apt-transport-https ca-certificates curl software-properties-common -y`

            Add the Docker GPG key to the server’s keyring

            `sudo curl -fsSL https://download.docker.com/%E2%80%8Blinux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc`

            Add the latest Docker repository to the APT sources

            `echo “deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/​docker.asc] https://download.docker.com/%E2%80%8Blinux/ubuntu $(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | sudo tee /etc/apt/sources.list.d/​docker.list > /dev/null`

            Update the server package index.

            `sudo apt update`

            Install Docker

            `sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin`

            Verify

            `sudo docker --version`

            Enable the Docker system service to start automatically at boot time.

            `sudo systemctl enable docker`

            View the Docker service status and verify that it’s running

            `sudo systemctl status docker`

            #### Install docker compose

            `sudo apt install docker-compose-plugin -y`

            Verifiy the installation

            `docker compose version`

            #### Portainer

            Create a Volume for Portainer Data

            `docker volume create portainer_data`

            Deploy Portainer as a Container

            ```

            docker run -d \

            –name=portainer \

            –restart=always \

            -p 8000:8000 \

            -p 9443:9443 \

            -v /var/run/docker.sock:/var/run/​docker.sock \

            -v portainer_data:/data \

            portainer/portainer-ce:latest

            ```

            Acess Portainer

            `https://your-server-ip:9443`

            #### Running Docker without Sudo

            Add your user to the docker group:

            `sudo usermod -aG docker $USER`

            Log out and log back in, or restart your system.

            Verify by running:

            `docker ps`

            Below is the docker-compose.yml file.

            services:
              gluetun:
                image: qmcgaw/gluetun
                container_name: protonvpn
                cap_add:
                  - NET_ADMIN
                devices:
                  - /dev/net/tun:/dev/net/tun
                ports: # These are the qBittorrent ports, I like to use random ports and not the default ports 49152
                  - 49893:49893 # This is for the qBittorrent WebUI Port
                  - 6881:6881 # Listening port for TCP
                  - 6881:6881/udp # Listening port for UDP
                  - 7878:7878 # Listening port for Radarr
                  - 8989:8989 # Listening port for Sonarr
                  - 9696:9696 # Listening port for Proxlarr
                environment:
                  - VPN_SERVICE_PROVIDER=protonvpn
                  - OPENVPN_USER=USERNAME+pmp # REPLACE with your OpenVPN username (+pmp for port forwarding)
                  - OPENVPN_PASSWORD=PASSWORD # REPLACE with your OpenVPN password
                  - VPN_PORT_FORWARDING=on
                  - SERVER_COUNTRIES=France # These countries must support P2P
                volumes:
                  - ./gluetun:/gluetun
                restart: unless-stopped

              qbittorrent:
                image: lscr.io/linuxserver/​qbittorrent:latest
                container_name: qbittorrent
                environment:
                  - PUID=1001 # to find your current ID just type “id” in the terminal
                  - PGID=1001 # to find your current group ID just type “id” in the terminal
                  - TZ=Europe/London
                  - WEBUI_PORT=49893 # Must match the port used on gluetun for the WebUI
                  - TORRENTING_PORT=6881
                volumes:
                  - ./qbittorent/config:/config # this will create the config folder in the same folder as the yml file
                  - /mnt/vault/Downloads:/​downloads # adjust to your desired download directory
                network_mode: “service:gluetun” # must match the container name of gluetun
                restart: unless-stopped

              prowlarr:
                image: lscr.io/linuxserver/prowlarr:​latest
                container_name: prowlarr
                depends_on:
                  - gluetun
                environment:
                  - PUID=1001
                  - PGID=1001
                  - TZ=Europe/London
                user: “1001:1001”
                volumes:
                  - ./prowlarr/config:/config
                network_mode: “service:gluetun”
                restart: unless-stopped

              radarr:
                image: lscr.io/linuxserver/radarr
                container_name: radarr
                depends_on:
                  - gluetun
                environment:
                  - PUID=1001
                  - PGID=1001
                  - TZ=Europe/London
                user: “1001:1001”
                volumes:
                  - ./radarr/config:/config
                  - /mnt/vault/Downloads:/​downloads
                  - /mnt/vault/Movies:/movies
                network_mode: “service:gluetun”
                restart: unless-stopped

              sonarr:
                image: lscr.io/linuxserver/sonarr
                container_name: sonarr
                depends_on:
                  - gluetun
                environment:
                  - PUID=1001
                  - PGID=1001
                  - TZ=Europe/London
                user: “1001:1001”
                volumes:
                  - ./sonarr/config:/config
                  - /mnt/vault/Downloads:/​downloads
                  - /mnt/vault/TV:/tv
                network_mode: “service:gluetun”
                restart: unless-stopped

              jellyfin:
                image: jellyfin/jellyfin
                container_name: jellyfin
                environment:
                  - PUID=1001
                  - PGID=1001
                  - TZ=Europe/London
                volumes:
                  - ./jellyfin/config:/config
                  - /mnt/vault/Movies:/movies
                  - /mnt/vault/TV:/tv
                restart: unless-stopped
                ports:
                  - 8096:8096
                network_mode: “bridge”

              plex:
                image: lscr.io/linuxserver/plex:​latest
                container_name: plex
                network_mode: host
                environment:
                  - PUID=1001
                  - PGID=1001
                  - TZ=Europe/London
                  - VERSION=docker
                  - PLEX_CLAIM=CLAIMKEY
                  - NVIDIA_VISIBLE_DEVICES=all
                volumes:
                  - ./plex:/config
                  - /mnt/vault/Movies:/movies
                  - /mnt/vault/TV:/tv
                deploy:
                  resources:
                    reservations:
                      devices:
                        - driver: nvidia
                          count: all
                          capabilities: [gpu]
                runtime: nvidia
                restart: unless-stopped

            • P1nkman@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              13 days ago

              I know I’m a bit late, but holy shit, this helped so much!! Some help from ChatGPT and I was downloading from USENET in about 20 minutes! Thanks, friend 😁

              • dependencyinjection@discuss.tchncs.de
                link
                fedilink
                arrow-up
                2
                ·
                12 days ago

                Hey, I’m stoked that it helped you get up and running

                Protip: don’t be like me. Make sure you backup your docker compose files. I once ran out of space and then wiped my file and had to make it again. Just copy it using cp command and add .bak to the end.

  • Vanilla_PuddinFudge@infosec.pub
    link
    fedilink
    arrow-up
    1
    ·
    8 months ago

    Syncthing.

    Connect any two devices’ folders together wirelessly, from anywhere.

    Don’t have a server? You don’t need one. Every device is an individual node.

    Backup? If you do have a server, offload some of your content and keep on rolling, or set scripts to move files by age.

  • pelespirit@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    8 months ago

    LMMS - free and open source garage band. It’s a little weird on how you do a song, but it’s pretty great.

    Tips: Look at Beats and Baselines Editor and Piano Roll Editor first to probably get you where you want to be.

      • Flagstaff@programming.dev
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 months ago

        I tried so many other podcast apps, at least 3 of 4 others. The only thing I dislike is that about AntennaPod is that there is no comprehensive removal button that deletes, marks as played, and removes from queue—but all the other apps failed at even consistently downloading eps or playing them back. AntennaPod crushes all competition by light years.

        • Prinz Kasper@feddit.org
          link
          fedilink
          arrow-up
          0
          ·
          8 months ago

          I’ve been using Podcast Addict for years, and when I tried to switch to AntennaPod, I couldn’t figure out how to configure it in such a way that I can listen to the back catalogue of a podcast in chronological order and have the app automatically download a rolling buffer of a small number of episodes. When I looked around online for solutions, I found a forum thread of someone who had the same issue, and the maintainers of the project responded with confusion and dismissal as to why anyone would need that functionality lol. So I’m still on Podcast Addict.

          • Flagstaff@programming.dev
            link
            fedilink
            English
            arrow-up
            0
            ·
            8 months ago

            Huh, incidentally, that’s one I haven’t tried! You may end up swaying me over…

            Actually, is it closed-source? That’d be a deal-breaker for me, if so, since I’m not that desperate for such a feature as to lose open-source status.

            • Prinz Kasper@feddit.org
              link
              fedilink
              arrow-up
              1
              ·
              8 months ago

              Yeah, Podcast Addict is proprietary and ad driven, unless you pay. I grabbed a lifetime ad-free upgrade years ago when it was like two bucks.

              On some level I agree with you, I generally love open source, and if AntennaPod had the feature I was looking for I would have switched, but I also don’t mind paying for software if it’s good and reasonably priced.

    • potoooooooo ☑️@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 months ago

      Well, yeah, if you’re lucky enough to find an old magazine in the woods, but that doesn’t count, because it’s not usually free otherwise.

      • Mongostein@lemmy.ca
        link
        fedilink
        arrow-up
        0
        ·
        8 months ago

        If you can’t find something to get off to for free you’re either incompetent or a degenerate

        • rami@ani.social
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 months ago

          or, you know, isn’t a cis dude and wants some representation that isn’t disgustingly fetishized.

  • thermal_shock@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    8 months ago

    What3words.com and app

    Basically the earth has been segragated into 10 foot x 10 foot squares that are easily identified by 3 words, super accurate, easy to tell emergency services. No more need to know lat/long to tell someone where you’re at.

    • unsettlinglymoist@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      I learned about this from a can of ///Fear.Movie.Lions beer from Stone Brewing:

      What 3 words pinpoint where this indelible beast was born? The location is printed on the can. There’s a 3m x 3m square in our Richmond, VA brewery with these three words painted on it. What three words? Exactly! For the uninitiated, that’s What3Words.

      • randint@lemmy.frozeninferno.xyz
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 months ago

        unfortunately the people at What3Words excluded words people might find offensive from the word list, so that place does not exist

          • randint@lemmy.frozeninferno.xyz
            link
            fedilink
            English
            arrow-up
            1
            ·
            8 months ago

            I just looked it up, and apparently “impregnate” isn’t in the list either. Yes, the word isn’t offensive by itself, but I think they remove quite a lot of words that might cause problems in the what3words address. There is way more than enough words anyway.

            This is from their FAQ:

            How do you handle offensive words?

            A what3words address is made up of 3 random words, and they are not intended to convey any meaning to a location. However, we know that the nature of using words means that unexpected interpretations can crop up.

            For each new what3words language, our team consults a broad range of native speakers. We then work together to remove rude and offensive words from our word lists, navigating cultural sensitivities wherever we can.

            Some users feel that certain words in our lists are unsuitable or inappropriate, so we always take feedback onboard. However, one of our key features – that our addresses are permanently fixed – means that it is not possible to update the word list. Instead, we can look for opportunities to adapt our approach when developing future languages.

            Tip: if you’d rather avoid a certain what3words address because of a particular word or combination of words, we’d suggest you use the next square along.

  • Endymion_Mallorn@kbin.melroy.org
    link
    fedilink
    arrow-up
    0
    ·
    8 months ago

    Making sure to keep it legal, right?

    Let’s stick with Project Gutenberg - Public domain ebooks and other media, spanning centuries. They’re incredibly important for keeping our literary past alive.

    I might have more later.

    • Korhaka@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

      I got a cooking book from the 1800s there, sadly the pricing is a bit off, I don’t think that recipe is 19 pence anymore.