Skip to content

Commit b7c0b5a

Browse files
committed
more README updates
1 parent e0e0d23 commit b7c0b5a

File tree

1 file changed

+11
-55
lines changed

1 file changed

+11
-55
lines changed

README.md

Lines changed: 11 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# gitMDM 🧪
22

3-
The MDM for startups that actually care about security.
3+
The MDM for folks that care about security.
44

55
## Your Problem
66

7-
Your startup just hit the enterprise sales milestone where someone asks "are you SOC 2 compliant?" Meanwhile, your engineering team runs OpenBSD on ThinkPads, Arch on Frameworks, and that one person still dailying Plan 9.
7+
Your startup just hit the enterprise sales milestone where someone asks "are you SOC 2 compliant?" Meanwhile, your engineering team runs OpenBSD on ThinkPads, Arch on Frameworks, and that one person still dailying Plan 9.
88

99
Traditional MDMs run as root, execute arbitrary code from their cloud servers, and auto-install binaries downloaded from the internet. Your security engineer just had an aneurysm.
1010

@@ -28,25 +28,27 @@ Your Team: "...continue"
2828
- **You Own Everything**: Your server, your git repo, your data. No third-party cloud with root access to your fleet.
2929
- **Audit Everything**: Every change is a git commit. `git blame` for compliance.
3030

31+
## Demo
32+
33+
Visit our demo instance at https://gitmdm.codegroove.dev/
34+
3135
## Quick Start for the Impatient
3236

3337
```bash
34-
# On your secure server (or laptop, we don't judge)
38+
# On your secure server (Cloud Run, or laptop, we don't judge)
3539
./gitmdm-server -git /opt/compliance
3640

3741
# On your OpenBSD machine
3842
$ doas pkg_add gitmdm-agent # just kidding, compile it yourself
3943
$ ./gitmdm-agent --install --server https://comply.internal --join XXXX
4044

41-
# On your Linux laptop
45+
# On your Linux laptop
4246
$ ./gitmdm-agent --install --server https://comply.internal --join XXXX
4347

4448
# On that Mac the designer insisted on
4549
$ ./gitmdm-agent --install --server https://comply.internal --join XXXX
4650
```
4751

48-
Join keys stored in `~/.config/gitmdm/` (or wherever your OS says), not in process lists.
49-
5052
## What SOC 2 Actually Requires vs What We Check
5153

5254
| SOC 2 Says | Traditional MDMs Do | We Do |
@@ -61,7 +63,7 @@ Join keys stored in `~/.config/gitmdm/` (or wherever your OS says), not in proce
6163
```yaml
6264
# Your snowflake setups, our problem:
6365
- MATE on OpenBSD (we see you)
64-
- Sway on Alpine (of course)
66+
- Sway on Alpine (of course)
6567
- i3 on Debian (classic)
6668
- Whatever that custom Wayland compositor you wrote is
6769
- Even macOS (unfortunate, but supported)
@@ -85,16 +87,6 @@ The server literally cannot execute commands. We removed the code. It's not ther
8587

8688
## For Your Compliance Team
8789

88-
"How do we prove compliance?"
89-
90-
```bash
91-
$ cd compliance-repo
92-
$ git log --oneline
93-
8f3d2a1 workstation-42: disk encryption enabled
94-
7b2c3f9 laptop-dev-3: screen lock fixed
95-
5a1e8c4 desktop-1: firewall enabled
96-
```
97-
9890
"What if someone tampers with the agent?"
9991

10092
They can. It's their machine. They can also lie on spreadsheets. At least this has timestamps.
@@ -106,52 +98,16 @@ No. But neither was Stripe when you started using it.
10698
## Building
10799

108100
```bash
109-
make all # Static binaries, because dynamic linking is attack surface
101+
make all
110102
```
111103

112-
No npm. No pip. No containers. Just Go.
113-
114104
## Installation That Respects Your OS
115105

116106
- **Linux**: systemd user service (falls back to cron if you're systemd-free)
117107
- **OpenBSD**: cron (because rc.d requires root and we're not animals)
118108
- **macOS**: launchd (the least worst option)
119109
- **FreeBSD/NetBSD**: cron (see OpenBSD)
120110

121-
Pre-flight check ensures the server exists before installing. Novel concept.
122-
123-
## FAQ for Security-Conscious Teams
124-
125-
**Q: Can this execute remote commands?**
126-
A: No. Check the code. The handler doesn't exist.
127-
128-
**Q: What about supply chain attacks?**
129-
A: It's 2 dependencies: yaml and retry. Vendor them if paranoid.
130-
131-
**Q: Does it require root?**
132-
A: Never. User-level only. Just reads system configuration.
133-
134-
**Q: What data does it collect?**
135-
A: Read `checks.yaml`. It's compiled in. No surprises.
136-
137-
**Q: Can we self-host?**
138-
A: That's the only option. There's no cloud service. You run it.
139-
140-
**Q: What if an agent is compromised?**
141-
A: It can lie about that device's compliance. That's it. No lateral movement.
142-
143-
**Q: OpenBSD pledge/unveil support?**
144-
A: On the roadmap. PRs welcome from fellow paranoids.
145-
146-
---
147-
148-
*Built by engineers who rm -rf node_modules on principle.*
149-
150-
**⚠️ EXPERIMENTAL**
151-
*But still more trustworthy than your current MDM.*
152-
153-
*Remember: Compliance theater is still theater, but at least our stage doesn't have backdoors.*
154-
155111
---
156112

157-
*"Because compliance doesn't require compromise."*
113+
*Because your security posture shouldn't require the missionary position.*

0 commit comments

Comments
 (0)