[-] secana@programming.dev 1 points 6 days ago

As mentioned on Mastodon (https://mastodon.social/@dpom@fosstodon.org/113460954769241417) there seems to be no way to do it at the moment :(

7

I try to add an application that was installed with homebrew (managed by nix darwin) to the "Open at Login" settings under "General -> Login Items & Extensions".

I tried to add a launchd.user.agents entry, but that didn't work. The app is only adeded to the "Allow in the Background" settings and does not start on login.

  launchd.user.agents = {
    sanesidebuttons = {
      serviceConfig = {
        Label = "com.thealpa.sanesidebuttons";
        RunAtLoad = true;
        Program = "/Applications/SaneSideButtons.app";
      };
    };
  };

Any ideas how to add an entry to the "Open at Login" settings with nix darwin? launchd.agents and launchd.daemons seems to be the wrong place as well.

15

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

16

Kellnr, the crate registry for Rust got an update. The latest version contains bug fixes and dependency updates. If you are interested in hosting private crates that must not be on crates.io, check it out.

24

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

27

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

14
submitted 3 months ago by secana@programming.dev to c/nix@programming.dev

Hi!

I've ran into an issue with nix develop shells.

My setup:

  • Nix Darwin (macos)
  • Custom TLS certificates installed via nix darwin

Everything works as expected with the installed certificates, but as soon as I enter into a development shell with nix develop, the certificates are not available and thus, I get TLS errors that break whatever I'm doing in the dev shell. If I use an impure development shell, the issue disappears.

Is there a way to use pure nix develop shells which respect the installed certificates?

19

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

7
submitted 3 months ago by secana@programming.dev to c/nix@programming.dev

Hi! I would like to host a transparent proxy for cache.nixos.org on my local kubernetes cluster.

I took the following NGINX config https://nixos.wiki/wiki/FAQ/Private_Cache_Proxy and created all the folders on the mounted storage.

This is the kubernetes deployment:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nix-cache-volume
spec:
  capacity:
    storage: 500Gi
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/k8s/nix-cache" # Needs exists before PV is created!
  persistentVolumeReclaimPolicy: Retain
***
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nix-cache-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: manual
  resources:
    requests:
      storage: 500Gi
***
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nix-cache
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nix-cache
  template:
    metadata:
      labels:
        app: nix-cache
        name: nix-cache
    spec:
      volumes:
        - name: nix-cache-storage
          persistentVolumeClaim:
            claimName: nix-cache-pvc
        - name: nix-cache-config
          configMap:
            name: nix-cache-config
      containers:
        - name: nix-cache
          image: nginx:1.27.0 
          ports:
            - containerPort: 80
          volumeMounts:
            - name: nix-cache-storage
              mountPath: /data
            - name: nix-cache-config
              mountPath: /etc/nginx/sites-available/default
          resources:
            limits:
              memory: "512Mi"
              cpu: "300m"
            requests:
              memory: "256Mi"
              cpu: "200m"
***
apiVersion: v1
kind: Service
metadata:
  name: nix-cache
spec:
  selector:
    app: nix-cache
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
***
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nix-cache-ingress
  annotations:
    traefik.ingress.kubernetes.io/router.tls: "true"
spec:
  rules:
    - host: "nix-cache.raspi.home"
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: nix-cache
                port:
                  number: 80
  tls:
    - secretName: nix-cache-raspi-home-tls
      hosts:
        - "nix-cache.raspi.home"
***
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: nix-cache.raspi.home
spec:
  commonName: nix-cache.raspi.home
  dnsNames:
    - "nix-cache.raspi.home"
  secretName: nix-cache-raspi-home-tls
  issuerRef:
    name: ca-issuer
    kind: ClusterIssuer
***
apiVersion: v1
kind: ConfigMap
metadata:
  name: nix-cache-config
data:
  nginx.conf: |
    server {
      listen 80;
      server_name nix-cache.raspi.home;

      location ~ ^/nix-cache-info {
        proxy_store        on;
        proxy_store_access user:rw group:rw all:r;
        proxy_temp_path    /data/nginx/nix-cache-info/temp;
        root               /data/nginx/nix-cache-info/store;

        proxy_set_header Host "cache.nixos.org";
        proxy_pass https://cache.nixos.org;
      }

      location ~^/nar/.+$ {
        proxy_store        on;
        proxy_store_access user:rw group:rw all:r;
        proxy_temp_path    /data/nginx/nar/temp;
        root               /data/nginx/nar/store;

        proxy_set_header Host "cache.nixos.org";
        proxy_pass https://cache.nixos.org;
      }
    }

To use the cache I added it to the substituters.

  nix.settings.substituters = [
    "https://nix-cache.raspi.home/"
  ];

But when I try to use it, get the error:

# Trigger a download
nix develop nixpkgs#just
# Error message
warning: 'https://nix-cache.raspi.home' does not appear to be a binary cache

In the logs of the NGINX I see the following error:

2024/08/03 12:09:30 [error] 31#31: *3 open() "/usr/share/nginx/html/nix-cache-info" failed (2: No such file or directory), client: 10.42.2.7, server: localhost, request: "GET /nix-cache-info HTTP/1 │
│ 10.42.2.7 - - [03/Aug/2024:12:09:30 +0000] "GET /nix-cache-info HTTP/1.1" 404 153 "-" "curl/8.8.0 Nix/2.18.5" "10.42.2.1"                                                                             │
│ 10.42.2.7 - - [03/Aug/2024:12:09:30 +0000] "PUT /nix-cache-info HTTP/1.1" 405 157 "-" "curl/8.8.0 Nix/2.18.5" "10.42.2.1"    

Any ideas whats wrong? I'm neither an nix nor an nginx expert, so maybe it is something really simple but I cannot figure it out.

23

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

[-] secana@programming.dev 10 points 4 months ago

I ported the frontend for https://kellnr.io from vuex to pinia, which makes the code to hold state in the frontend much cleaner.

16

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

36
20

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

[-] secana@programming.dev 9 points 6 months ago

I release a new version of https://kellnr.io with some bug fixes and updated Docker images (Ubuntu 24.04 base).

[-] secana@programming.dev 13 points 6 months ago

Or use https://kellnr.io to host your crates. It automatically builds the corresponding docs and hosts them for you. Disclaimer: I'm the author.

[-] secana@programming.dev 96 points 7 months ago

https://tauri.app/ is very popular and does not need electron. It uses the OS native we view.

[-] secana@programming.dev 9 points 7 months ago

The runtime is even called "common language runtime" (clr), as it is intended to support many different languages, which the jvm never was.

[-] secana@programming.dev 12 points 7 months ago

I released https://kellnr.io 5.2.1 with a few smaller fixes and additions.

[-] secana@programming.dev 10 points 8 months ago

If that really works without any drawbacks, I hope it gets merged into Rust main.

[-] secana@programming.dev 11 points 8 months ago

The Windows linker needs a lib file to link a DLL. See here how it's done https://kellnr.io/blog/cross-plat-native-lib

[-] secana@programming.dev 13 points 8 months ago

Good idea. We could try to reach TWIR on Mastodon.

[-] secana@programming.dev 10 points 8 months ago

If a few big names here could possibly help. If someone from the Rust project itself or someone well known from YouTube posts here and engages in discussions, more people would be interested to join.

[-] secana@programming.dev 33 points 10 months ago

I advocate for that since years. We need to normalize to pay for OSS. The biggest issue I see is not that people are unwilling to pay (donate) for the software they use daily, but the the payment itself is to complicated. There is not "the one" app store for OSS that every OS uses that makes donations easy. Additionally taking care of taxes for donations is too much of a burden, so the app store needs to handle that as well. And voila: You have the Apple App store or Android Play store.

view more: next ›

secana

joined 11 months ago