I take my shitposts very seriously.

  • 1 Post
  • 26 Comments
Joined 2 years ago
cake
Cake day: June 24th, 2023

help-circle



  • rtxn@lemmy.worldtoSelfhosted@lemmy.worldVPN server on router or within home network?
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    1
    ·
    edit-2
    6 months ago

    Tailscale. It does some UDP fuckery to bypass NAT and firewalls (most of the time) so you don’t even need to open any ports. You can run it on individual hosts to access them directly, and/or you can set it up on one device to advertise an entire subnet and have the client work like a split tunnel VPN. I don’t know about OpenWRT, but both pfSense and OpnSense have built-in Tailscale plugins.

    People are freaking out about their plan to go public, but for the moment, it’s a reliable, high quality service even on the free tier.

    I’ve also used Ngrok and Twingate to access my LAN from outside, but they simply use relay servers instead of Tailscale’s black magic fuckery.


  • Ansible is an abstraction layer over system utilities, shell, and other programs. You can specify what you want to happen, and it will figure out how to do it. For example, you can use the ansible.builtin.package module to specify which packages you want to be present, and Ansible will decide which specific package manager module should handle it and how.

    Ansible tasks are also idempotent – they are concerned with the end state instead of the action. Many of the modules (like the package module above) take a state parameter with the possible values of present or absent (instead of the more common “install” and “remove” actions). If the system’s state satisfies the task’s expected end state (e.g. the package is already present), the task will be skipped – unlike a shell script, which would simply re-run the entire script every time.

    Ansible also implements strict error checking. If a task fails, it won’t run any subsequent tasks on the host since the end states would be unpredictable.




  • Perhaps there was an easier lighter-weight way of doing this?

    sshuttle does exactly that. It’s basically a VPN that uses SSH tunnelling. If you have a host in the same network as the target machine, and you can SSH into it, sshuttle can route all TCP traffic between you and the target (or a subnet) through the host without having to bind local ports manually.

    sshuttle -r ssh_server <hosts/subnets...>
    










  • rtxn@lemmy.worldtoPrivacy@lemmy.ml"You need to try Linux"
    link
    fedilink
    arrow-up
    10
    arrow-down
    2
    ·
    7 months ago

    Stop worrying about the country of origin. It’s a FOSS project. The vast majority of Pop’s components are developed independently of the company, and by citizens of various nations. Applying the “USA bad, so product bad” rhetoric is a seriously shortsighted approach. Consider instead the amount of influence exerted by the company. Does Ubuntu still seem like the better choice just because the company is headquartered in the UK?

    Besides, if you really want to cut American software out of your life, start with Linux and GNU. Torvalds was born in Finland, but he is a naturalized US citizen, and Linux is developed on American infrastructure and includes significant amount of work from American developers.


  • I’ve never used the AIO image. I’ve heard it’s weird. This is my compose file for the community image:

    compose.yaml
    volumes:
      db:
    
    services:
      db:
        image: mariadb:10.6
        restart: always
        command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
        volumes:
          - db:/var/lib/mysql
        secrets:
          - mysql_root_password
          - mysql_nextcloud_password
        environment:
          - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password
          - MYSQL_PASSWORD_FILE=/run/secrets/mysql_nextcloud_password
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
    
      nextcloud:
        image: nextcloud
        restart: always
        ports:
          - 8080:80
        depends_on:
          - db
        links:
          - db
        volumes:
          - /var/www/html:/var/www/html
          - /srv/data:/srv/data
        secrets:
          - mysql_nextcloud_password
        environment:
          - MYSQL_PASSWORD_FILE=/run/secrets/mysql_nextcloud_password
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
          - MYSQL_HOST=db
    
    secrets:
      mysql_root_password:
        file: ./secrets/mysql_root_password.txt
      mysql_nextcloud_password:
        file: ./secrets/mysql_nextcloud_password.txt
    

    You can access it on port 8080 and perform the initial setup manually. For the database server address, use the db hostname. You’ll have to use a reverse proxy for HTTPS.

    You could also try OpenCloud, which is a Go rewrite of ownCloud.