Status: Complete. make package builds and produces dist/security-automation-go_VERSION_amd64.deb.
# Build .deb for current version
make package
# Build specific version
make package VERSION=1.5.0
# Result
ls dist/security-automation-go_1.5.0_amd64.deb
# Verify package contents
dpkg-deb --info dist/security-automation-go_1.5.0_amd64.deb
dpkg-deb --contents dist/security-automation-go_1.5.0_amd64.deb| Path | Contents |
|---|---|
/usr/local/bin/ |
6 binaries: cf-sync, cf-shadow, cf-cleanup, cf-allowlist-sync, crowdsec-sync, security-automation-mcp |
/lib/systemd/system/ |
5 service files + cf-allowlist-sync.timer |
/usr/lib/sysusers.d/ |
security-automation-go.conf (user/group) |
/usr/lib/tmpfiles.d/ |
security-automation-go.conf (directories) |
DEBIAN/postinst |
User/dir creation, default env file, legacy unit removal, systemctl enable cf-sync |
DEBIAN/prerm |
Stop cf-sync before remove/deconfigure |
DEBIAN/postrm |
Purge cleanup (dirs, user, group) |
packaging/
├── deb/
│ └── DEBIAN/
│ ├── control — package metadata (Version injected by make package, Architecture: amd64)
│ ├── postinst — user/dir creation, default env file, service enable (chmod 755)
│ ├── prerm — stop service before remove (chmod 755)
│ └── postrm — purge cleanup: dirs, user, group (chmod 755)
├── rpm/
│ └── security-automation-go.spec — RPM spec with scriptlets
└── shared/
├── tmpfiles.d/security-automation-go.conf — systemd-tmpfiles
└── sysusers.d/security-automation-go.conf — systemd-sysusers
make package assembles binaries and shared files under packaging/deb/ before calling dpkg-deb --build.
Name: security-automation
Home: /var/lib/security-automation-go
Shell: /usr/sbin/nologin
| Path | Mode | Owner |
|---|---|---|
/var/lib/security-automation-go |
0750 | security-automation |
/var/lib/security-automation-go/runtime |
0750 | security-automation |
/var/lib/security-automation-go/secret.key |
0600 | security-automation |
/etc/security-automation-go/security-automation.env |
0644 | root |
/var/log/security-automation-go |
0755 | security-automation |
All binaries use modernc.org/sqlite (pure Go) — no CGO, no cross-compiler required.
make build-linux-amd64 # bin/linux-amd64/
make build-linux-arm64 # bin/linux-arm64/RPM packaging requires rpmbuild (available on Fedora, RHEL, SUSE):
# On RPM-based distros:
sudo dnf install rpm-build # or yum install rpm-build
make packagemake package skips RPM with a message if rpmbuild is not found.
- No package signing infrastructure (GPG signing for APT/YUM repos)
- No repository publication (APT/YUM repo hosting)
- Config template (
/etc/security-automation-go/security-automation.yaml.example) not packaged - ARM64
.debnot produced bymake package(uses amd64 binaries); separatemake package ARCH=arm64target not yet implemented ge ARCH=arm64` target not yet implemented