crmne

Activity

Stars and mentions · Last 30 days, Oct 9 – Nov 7

GitHub stars3,057
Mentions43
083166249332Oct 9Oct 23Nov 7
UTC days · repositories crmne owns11 repositories

Top repositories

crmne’s repositories ranked by new forks, as on trending.

Loading

Contributes to

Repositories outside crmne’s account where crmne opened or reviewed pull requests in the past 365 days.

Who noticed crmne

Everyone who starred or forked crmne’s repositories since the archive began in 2011.

Notable accounts

Ordered by the stars their own repositories have received.

Biggest fans

Accounts that starred the most of these repositories.

Breakout weeks

Each repository’s best week of new stars, with the release published around it.

Mentions

54posts
Nov 814 posts
  1. ZapFast: A fast, native WhatsApp client in Rust and egui

  2. ZapFast: A fast, native WhatsApp client in Rust and egui (github.com) Discussion | Main Link

  3. ZapFast: A fast, native WhatsApp client in Rust and egui crmne/zapfast (news.ycombinator.com)

  4. ZapFast: A fast, native WhatsApp client in Rust and egui crmne/zapfast (news.ycombinator.com)

  5. ZapFast: A fast, native WhatsApp client in Rust and egui #HackerNews crmne/zapfast

  6. Hacker News · · handfuloflight · crmne/zapfast

    ZapFast: A fast, native WhatsApp client in Rust and egui

    3 points
  7. Serein[0] recently got on my radar, being exactly that (A Rust Discord client). Been using it for the last few weeks, and boy is it snappy! I rather like this trend of stuff being rewritten in Rust (usually via LLMs). Spotifast[1] being another great example. Perhaps Discord caught wind that this is now possible, and don’t want to be left behind? [0]: ViceVerse-cz/Serein [1]: crmne/spotifast

  8. Spotifast in a Homelab: Keep Remote Administration Separate From Spotify Connect Spotifast in a Homelab: Keep Remote Administration Separate From Spotify Connect It's 2:47 AM. Your music workstation stops responding. You reach for the laptop, realize the SSH port isn't forwarded, and make a decision that will haunt the next three months: you forward port 22, add a reverse proxy for "temporary" web access, and suddenly an internal service is reachable from anywhere. By morning, you've added Traefik, convinced yourself HTTPS equals security, and forgotten that encrypted transport doesn't identify authorized users. For crmne/spotifast, I keep the architecture deliberately smaller. Run the native application on the machine that owns the audio output. Use Tailscale for restricted administration. Treat Spotify Connect discovery as a separate networking concern, not something an HTTPS proxy will magically solve. The developer pain point is simple: how do you administer a music workstation remotely without exposing unrelated services or breaking expectations about device discovery? Start With What the Repository Actually Promises The supplied project description positions Spotifast as a lightweight Rust application supporting library access, local playback, and Spotify Connect across Linux, macOS, and Windows. That description establishes the intended product boundary, but it is not evidence of a particular database engine, HTTP API, credential-storage mechanism, or discovery implementation. I have not inspected a pinned revision or run cross-platform playback tests, so I would not turn those unknowns into architectural claims. The useful distinction is between three responsibilities: Playback belongs to the endpoint. The native application needs the operating system's audio facilities and the user session appropriate to its implementation. Spotify connectivity belongs to the application's upstream integration. Authentication, account requirements, and supported Connect behavior need verification against the actual release. Administration belongs to a separate management plane. Shell access does not require publishing the application, its filesystem, or other homelab dashboards. This separation avoids a common deployment mistake: treating every desktop application as a web service that needs Traefik and a public hostname. The Failure Mode: Reachability Becomes Exposure The dangerous sequence starts innocently. A developer cannot reach a machine remotely, opens a router port, and later places several internal services behind the same reverse proxy. TLS provides encryption, but it does not identify authorized users by itself. An administrative panel exposed through ordinary HTTPS is still public unless an authentication layer, client-certificate requirement, or equivalent authorization boundary protects it. This is the relevant production incident pattern: an internal panel becomes internet-accessible without mTLS or another effective access control. The architectural root cause is confusing encrypted transport with restricted access. For a Spotifast workstation, the fix is not another public route. It is a private management path with a narrowly defined destination. One Working Policy for a Linux Music Host The following Tailscale policy allows tailnet administrators to reach SSH on machines tagged music-host. Tailscale SSH additionally requires an identity check every hour and permits only non-root operating-system accounts. It is a complete, restrictive policy for a dedicated tailnet. In an existing tailnet, integrate it carefully: an existing broad allow rule would defeat the intended restriction. { "tagOwners": { "tag:music-host": ["autogroup:admin"] }, "acls": [ { "action": "accept", "src": ["autogroup:admin"], "dst": ["tag:music-host:22"] } ], "ssh": [ { "action": "check", "src": ["autogroup:admin"], "dst": ["tag:music-host"], "users": ["autogroup:nonroot"], "checkPeriod": "1h" } ] } Apply the policy through Tailscale's access-control editor. On the Linux playback host, authenticate Tailscale, enable Tailscale SSH with sudo tailscale set --ssh, and advertise the tag with sudo tailscale set --advertise-tags=tag:music-host. An administrator must authorize that tag assignment. Connect using an existing, unprivileged local username and the host's tailnet address or MagicDNS name. Keep router port forwarding disabled. This configuration is specifically for Linux administration. Spotifast's advertised macOS and Windows support does not make Tailscale SSH server support identical across those platforms. Also, tailnet policy does not close an ordinary SSH listener on public or LAN interfaces. Host firewall rules and the machine's actual network exposure remain separate controls. Why Connect Still Needs Its Own Test A successful SSH connection proves only that the management path works. Tailscale provides routed connectivity; it does not automatically extend a home LAN's multicast discovery domain. If the relevant Spotify Connect flow depends on local discovery, placing two devices on the same tailnet will not necessarily make them discover each other. Test playback and device visibility independently: first on the same LAN, then across the intended remote topology. Check the selected Spotifast release's documented behavior before adding subnet routing or discovery reflectors. Reflectors increase network scope and troubleshooting complexity; they should answer an observed requirement, not a guess. The Trade-Off Is Deliberate This design gives up browser-based convenience in exchange for a smaller exposed surface. It also leaves playback attached to a real user endpoint rather than forcing desktop audio into a container. I would not add Open-WebUI, a model proxy, or Redis to this deployment. They do not solve remote music-host administration and would introduce unrelated credentials, persistence, and upgrade responsibilities. The architecture is successful when its boundaries are boring: Spotifast handles music, the operating system handles audio, and Tailscale authorizes administration. Discovery problems remain visible as discovery problems instead of becoming excuses to publish internal services. --- The hardest operational dilemma here isn't technical—it's resisting the incremental creep from "I need SSH access" to "let's add a dashboard" to "everything's behind Traefik now." Each addition feels small. The combined attack surface is not. How do you draw that line in your homelab? What's the smallest infrastructure change you've made that later turned into the largest operational regret?

    1 reaction
  9. Tell me Opus 5.5 came out without telling me Opus 5.5 came out. github.com/crmne t.co

    10 likes · 474 views
  10. Reddit · · r/omarchy · u/crmne · crmne/omarchy-rescue

    Omarchy Rescue: a rescue USB with Claude Code, Codex and OpenCode ready to fix a machine that won't boot When a machine won't boot, whether it's using Linux or any other operating system, you need a second machine, a live USB and a lot of searching. I made a rescue stick that boots into an Omarchy console (kmscon, JetBrains Mono, Tokyo Night) with the SystemRescue-style tools, plus Claude Code, Codex and OpenCode. - omarchy-rescue-mount asks for your disk passphrase and mounts your install at /mnt from its own fstab, ready for arch-chroot. - omarchy-rescue-login signs the agents in without a browser: a QR code pops up, you open the link on your phone, and paste the code back from there. - The agents get an AGENTS.md that explains how Omarchy is laid out (LUKS, Btrfs subvolumes, Limine, snapper) and tells them to diagnose read-only first and never run anything destructive without a clear yes. - omarchy-rescue-share puts the whole session in your phone's browser. It's built from the Omarchy ISO itself, so it boots the same kernel on the same hardware. Write the ISO with caligula, Etcher or Rufus (DD mode). Music in the film: "Enthusiast" by Tours, CC BY 3.0. crmne/omarchy-rescue

    57 points

Achievements

Awards earned by the repositories crmne owns. Select an award to embed its badge.

No awards yet

Repositories earn awards by reaching the top three in a completed trending day or week.

A repository earns an award for finishing first, second or third in a completed trending day or week, ranked by new stars, new forks or pull request authors. Awards follow a repository through renames and transfers and count toward its current owner. Weeks run Monday to Sunday, UTC.