• 0 Posts
  • 13 Comments
Joined 2 years ago
cake
Cake day: July 14th, 2023

help-circle
  • I have the ZSA Moonlander and multiple versions of the Keeb.io Iris (v2 up to v6, I believe - they’re on v8). I use both regularly and they’re great keyboards. I took several keys off the Moonlander to make it match the Iris, which incidentally makes it look closer to the Voyager. It’s still a bulkier board than the Iris, though, especially with the wrist rests still attached. However, it’s very easy to travel with and the size difference is rarely relevant.

    I have a low profile Iris and sometimes use it as a travel board, but I’m not a big fan of the low profile keys (I have the “Compact Edition,” I believe, so the spacing might also be part of the problem - they have a new “LM” version I might like more).

    The Voyager is also low profile and has only 4 thumb keys compared to 8 (which I use extensively*) on the Moonlander and Iris, so it isn’t a good option for me. But if you like the idea of a low profile split board and there’s a layout you like that only requires four thumb keys, the Voyager looks great.

    If you want a similar split keyboard that can come pre-assembled, with the option for a low profile version, I highly recommend the Iris. If you want an even more versatile, albeit slightly bulkier, keyboard, the Moonlander is fantastic.

    * - I have my thumb keys set up with two layer shifts, alt, command, control, space, and enter. One of my Irises has a rotary encoder on a thumb keys but I wouldn’t do that again. I could handle three per thumb and overload, but two isn’t feasible without learning a new layout. Our thumbs are our most powerful fingers, so it makes sense to use them extensively.





  • I’m a professional software engineer and I’ve been in the industry since before Kubernetes was first released, and I still found it overwhelming when I had to use it professionally.

    I also can’t think of an instance when someone self-hosting would need it. Why did you end up looking into it?

    I use Docker Compose for dozens of applications that range in complexity from “just run this service, expose it via my reverse proxy, and add my authentication middleware” to “in this stack, run this service with my custom configuration, a custom service I wrote myself or forked, and another service that I wrote a Dockerfile for; make this service accessible to this other service, but not to the reverse proxy; expose these endpoints to the auth middleware and for these endpoints, allow bypassing of the auth middleware if an API key is supplied.” And I could do much more complicated things with Docker if I needed to, so even for self-hosters with more complex use cases than mine, I question whether Kubernetes is the right fit.


  • This is what I would try first. It looks like 1337 is the exposed port, per https://github.com/nightscout/cgm-remote-monitor/blob/master/Dockerfile

    x-logging:
      &default-logging
      options:
        max-size: '10m'
        max-file: '5'
      driver: json-file
    
    services:
      mongo:
        image: mongo:4.4
        volumes:
          - ${NS_MONGO_DATA_DIR:-./mongo-data}:/data/db:cached
        logging: *default-logging
    
      nightscout:
        image: nightscout/cgm-remote-monitor:latest
        container_name: nightscout
        restart: always
        depends_on:
          - mongo
        logging: *default-logging
        ports:
          - 1337:1337
        environment:
          ### Variables for the container
          NODE_ENV: production
          TZ: [removed]
    
          ### Overridden variables for Docker Compose setup
          # The `nightscout` service can use HTTP, because we use `nginx` to serve the HTTPS
          # and manage TLS certificates
          INSECURE_USE_HTTP: 'true'
    
          # For all other settings, please refer to the Environment section of the README
          ### Required variables
          # MONGO_CONNECTION - The connection string for your Mongo database.
          # Something like mongodb://sally:[email protected]:99999/nightscout
          # The default connects to the `mongo` included in this docker-compose file.
          # If you change it, you probably also want to comment out the entire `mongo` service block
          # and `depends_on` block above.
          MONGO_CONNECTION: mongodb://mongo:27017/nightscout
    
          # API_SECRET - A secret passphrase that must be at least 12 characters long.
          API_SECRET: [removed]
    
          ### Features
          # ENABLE - Used to enable optional features, expects a space delimited list, such as: careportal rawbg iob
          # See https://github.com/nightscout/cgm-remote-monitor#plugins for details
          ENABLE: careportal rawbg iob
    
          # AUTH_DEFAULT_ROLES (readable) - possible values readable, denied, or any valid role name.
          # When readable, anyone can view Nightscout without a token. Setting it to denied will require
          # a token from every visit, using status-only will enable api-secret based login.
          AUTH_DEFAULT_ROLES: denied
    
          # For all other settings, please refer to the Environment section of the README
          # https://github.com/nightscout/cgm-remote-monitor#environment
    
    

  • To run it with Nginx instead of Traefik, you need to figure out what port Nightscout’s web server runs on, then expose that port, e.g.,

    services:
      nightscout:
        ports:
          - 3000:3000
    

    You can remove the labels as those are used by Traefik, as well as the Traefik service itself.

    Then just point Nginx to that port (e.g., 3000) on your local machine.

    —-

    Traefik has to know the port, too, but it will auto detect the port that a local Docker service is running on. It looks like your config is relying on that feature as I don’t see the label that explicitly specifies the port.