Skip to content

Commit d591343

Browse files
committed
chore: remove nix flakes, add SECURITY.md, sign releases using PGP
1 parent 3d5f807 commit d591343

File tree

6 files changed

+119
-109
lines changed

6 files changed

+119
-109
lines changed

.anvil.lock

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"generated_at": "2026-02-11T09:46:34.649665422Z",
2+
"generated_at": "2026-02-12T01:12:52.55929482Z",
33
"version": "1.3.1",
44
"files": [
55
{
@@ -84,10 +84,7 @@
8484
"path": "Makefile"
8585
},
8686
{
87-
"path": "flake.lock"
88-
},
89-
{
90-
"path": "flake.nix"
87+
"path": "SECURITY.md"
9188
}
9289
]
9390
}

.github/workflows/go-binaries.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ jobs:
3838
id: release
3939
run: make release
4040

41+
- name: Sign release
42+
id: gpgsign
43+
if: startsWith(github.ref, 'refs/tags/')
44+
uses: cbrgm/pgp-sign-artifact-action@v1
45+
with:
46+
private_key: ${{ secrets.GNUPG_KEY }}
47+
passphrase: ${{ secrets.GNUPG_PASSWORD }}
48+
detach_sign: true
49+
files: dist/*
50+
excludes: dist/*.sha256
51+
4152
- name: Create GitHub Release
4253
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
4354
if: startsWith(github.ref, 'refs/tags/')

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ $(BIN)/$(EXECUTABLE)-debug: $(SOURCES)
9292
$(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -gcflags '$(GCFLAGS)' -o $@ ./cmd/$(NAME)
9393

9494
.PHONY: release
95-
release: $(DIST) release-linux release-darwin release-windows
95+
release: $(DIST) release-linux release-darwin release-windows release-checksum
96+
97+
.PHONY: release-checksum
98+
release-checksum:
99+
cd $(DIST); $(foreach file,$(wildcard $(DIST)/$(EXECUTABLE)_*),sha256sum $(notdir $(file)) > $(notdir $(file)).sha256;)
96100

97101
$(DIST):
98102
mkdir -p $(DIST)

SECURITY.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
Only the latest release is actively supported with security updates.
6+
7+
| Version | Supported |
8+
| ------- | ------------------ |
9+
| latest | :white_check_mark: |
10+
| < latest | :x: |
11+
12+
## Reporting a Vulnerability
13+
14+
If you discover a security vulnerability, please report it responsibly:
15+
16+
1. **Do not** open a public GitHub issue
17+
2. Send an email to **github@cbrgm.net** with:
18+
- A description of the vulnerability
19+
- Steps to reproduce
20+
- Potential impact
21+
- Any suggested fixes (optional)
22+
23+
You can expect:
24+
- An acknowledgment within 48 hours (at least I try to, since I'm doing this in my freetime)
25+
- Regular updates on the progress
26+
- Credit in the security advisory (unless you prefer to remain anonymous)
27+
28+
## Verifying Release Signatures
29+
30+
All release binaries are signed with PGP. To verify a release:
31+
32+
### 1. Import the Public Key
33+
34+
```bash
35+
gpg --import <<'EOF'
36+
-----BEGIN PGP PUBLIC KEY BLOCK-----
37+
38+
mQINBGmNIX8BEACwa36sCFVDDnIVnNZHqLYKoj0eZn1SoWXhVQKxR1QYniFeq8+u
39+
5KZ/5INXhWzUT8jpoh/2lzxBg6IT8dTXdmZ1vgM0s3KtJp+uNPmmggYlx69rwtVi
40+
PE0JOeCMtlbM70SCVM86eHA9gdXyXqBT1OERdkq1EfNshWz4MFJWDXNcx5VksHpY
41+
MJHrSfENOIjnYOjyI88OEtIs1XSKCEFbWfNh//Tbk4DsO07wwi5G2QLFRt1rZM3d
42+
SHNAo+s+qDc3oLZCQ5KBPKpPETO9PgwCfaRLQ1TGSTyQUr3Ok06rpdjyp9OD4bw5
43+
Vs4apWFNiJ7xkofbyOoi5zrrkrQMWhHhrCHYcuvvVvrHrsAVcv2t+nzXbKy7GXcO
44+
xT3xeggT7ohmNR7QBn7flKHvucVj6HI+879l7U0KoX/m4gvWNQufHu9mYFCiW9C3
45+
L4P3onf503FPQgMhptt3R+OQLQcnFDu+78lpVNQDNeRwc4XqedUEGFpBhzO3DQJO
46+
dHshlty6GSMtG+N50dpjpetmFg4RG/fI4sdyYAZoiXyfcnzXu9Q4QVMmhr9QgnWs
47+
Mf9skQ54sPLwLk5xBjrQK7HE0Mr5aUTCMtybVYApb9Ft1XJ2Z9FpKz2mNnbw9HXv
48+
/8i+WQ2i3yvC5PN0pPezZBSgDf3r9J14sHUqDiHSZt84LQ1T9meirl2iXQARAQAB
49+
tCVDaHJpc3RpYW4gQmFyZ21hbm4gPGdpdGh1YkBjYnJnbS5uZXQ+iQJRBBMBCAA7
50+
FiEE3iykF4aUXFzBL19DXx8YVj5HZmYFAmmNIX8CGwMFCwkIBwICIgIGFQoJCAsC
51+
BBYCAwECHgcCF4AACgkQXx8YVj5HZmYomxAAiUof2u9yvxeJXy6TNYIpcJqvsKw4
52+
++DJ5m+PH0v8qBATYvYqqpN3CNG7OyoM4OM8ziBVwwSno0A7tB7fE6vzBi/Znij9
53+
Sni6neJk48FL2mTDI+Z/RHOf1b2zGFKgnS7V2IpTWXbMW/OKzSy5xxgOIg9VEdRT
54+
rJGPqquSoRf12YCQe76aNibMRIeK9Npq/DbVAtD7g+g1sbNI9rkuFEav+ehAXtNk
55+
hPexwG0k2hILwG2ljKJ4mCocvIl5jR7e+fnrp0E7COYP0qH7Ou8mTowPjIozlG7J
56+
5ZNuIMVW1KAQtM4n0UIHMG72uB0G30oMA5WZIXCI3NqxudlznTmoJgGrHIrKRMu7
57+
TT6w2rLG6xTdX96Q/boeIBOHI2riQVEN55pswPoXBTTadFzKQ4bQnot4JXXs0oBj
58+
L4DfLhC0bBOnGSFBoEeTqrjHmSszdWjEi6hEskMcKqqXDnsQj2p9E0axXtYbU8JF
59+
NZSoZ+b9M+2bqzq2JsDZJBJocmTkXH13mZYtmr1wTOVI8TaKe9OuKnv7kOKTLWDf
60+
wslay7US3LuGSziUAb0BIBJWMcZs/ou+W5wT85iLOjkiEvnUx8J5rR137Xl72ZUk
61+
Z46Jit0Zi3BnADqx0Q6pJfDgRlQ/R7adpm6DLTLVl/+LWH5aNy+U7nSBQ+bFimnJ
62+
dnWz3mMJWwgwNeE=
63+
=fBYq
64+
-----END PGP PUBLIC KEY BLOCK-----
65+
EOF
66+
```
67+
68+
Alternatively, fetch the key from a keyserver:
69+
70+
```bash
71+
gpg --keyserver keys.openpgp.org --recv-keys DE2CA41786945C5CC12F5F435F1F18563E476666
72+
```
73+
74+
### 2. Verify the Key Fingerprint
75+
76+
Ensure the key fingerprint matches:
77+
78+
```
79+
pub rsa4096 2026-02-12 [SC]
80+
DE2C A417 8694 5C5C C12F 5F43 5F1F 1856 3E47 6666
81+
uid [ultimate] Christian Bargmann <github@cbrgm.net>
82+
```
83+
84+
### 3. Verify a Release
85+
86+
```bash
87+
# Verify the signature
88+
gpg --verify <binary>.asc <binary>
89+
90+
# Verify the checksum
91+
sha256sum -c <binary>.sha256
92+
```
93+
94+
## Security Best Practices
95+
96+
When using this project:
97+
98+
- Always verify release signatures before deploying
99+
- Keep dependencies up to date
100+
- Review the changelog before upgrading
101+
- Pin to specific versions in production environments (!)

flake.lock

Lines changed: 0 additions & 48 deletions
This file was deleted.

flake.nix

Lines changed: 0 additions & 55 deletions
This file was deleted.

0 commit comments

Comments
 (0)