docs: update architecture.yml with unified packaging section
Some checks failed
Build DEB Package / Build DEB Package (Debian/Ubuntu) (push) Has been cancelled
Build RPM Package / Build RPM Package (Rocky Linux) (push) Has been cancelled

- Add packaging section describing DEB and RPM builds with fpm
- Document Dockerfile.package multi-stage build pipeline
- List files, directories, maintainer scripts, and dependencies
- Add verification commands for both package types

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Jacquin Antoine
2026-02-27 15:41:29 +01:00
parent f8dc2d4d82
commit 5b91f0cfb3

View File

@ -570,10 +570,89 @@ evolution:
dev_tools:
usage_guidelines:
- "Les outils IA doivent lire architecture.yml avant de générer ou modifier du code."
- "Les outils de test peuvent sappuyer sur ci_cd.docker et ci_cd.make_targets pour générer des scripts / pipelines."
- "Les outils de test peuvent s'appuyer sur ci_cd.docker et ci_cd.make_targets pour générer des scripts / pipelines."
future_extensions:
- "Génération automatique de Dockerfile.dev et Dockerfile à partir de cette section."
- "Génération de fichiers docker-compose.test.yml pour les scénarios dintégration."
- "Génération de fichiers docker-compose.test.yml pour les scénarios d'intégration."
packaging:
description: >
ja4sentinel est distribué sous forme de packages .deb (Debian/Ubuntu) et
.rpm (Rocky Linux/RHEL/CentOS), construits intégralement dans Docker avec fpm.
formats:
- deb
- rpm
target_distros:
deb:
- debian-12+
- ubuntu-22.04+
rpm:
- rocky-linux-8+
- rocky-linux-9+
- rhel-8+
- rhel-9+
tool: fpm
build_pipeline:
dockerfile: Dockerfile.package
stages:
- name: builder
description: >
Compilation du binaire Go avec CGO_ENABLED=1 pour libpcap.
GOOS=linux GOARCH=amd64 pour un binaire statique.
- name: package_builder
description: >
Installation de fpm, rpm, dpkg-dev. Création de l'arborescence
et exécution de fpm pour générer DEB et RPM.
- name: output
description: >
Image Alpine minimale contenant les packages dans /packages/deb et /packages/rpm.
files:
binary:
source: dist/ja4sentinel-linux-amd64
dest: /usr/bin/ja4sentinel
mode: "0755"
systemd:
source: packaging/systemd/ja4sentinel.service
dest: /usr/lib/systemd/system/ja4sentinel.service
mode: "0644"
config:
- source: packaging/systemd/config.yml
dest: /etc/ja4sentinel/config.yml.default
mode: "0640"
config_file: true
- source: packaging/systemd/config.yml
dest: /usr/share/ja4sentinel/config.yml
mode: "0640"
directories:
- path: /var/lib/ja4sentinel
mode: "0750"
- path: /var/log/ja4sentinel
mode: "0750"
- path: /var/run/ja4sentinel
mode: "0750"
- path: /etc/ja4sentinel
mode: "0750"
maintainer_scripts:
deb:
postinst: packaging/deb/postinst
prerm: packaging/deb/prerm
postrm: packaging/deb/postrm
rpm:
post: packaging/deb/postinst
preun: packaging/deb/prerm
postun: packaging/deb/postrm
dependencies:
deb:
- systemd
- libpcap0.8
rpm:
- systemd
- libpcap >= 1.9.0
verify:
deb:
command: docker run --rm -v $(pwd)/build/deb:/packages debian:latest sh -c "apt-get update && apt-get install -y /packages/*.deb"
rpm:
command: docker run --rm -v $(pwd)/build/rpm:/packages rockylinux:8 sh -c "dnf install -y /packages/*.rpm"
service:
systemd: