feat: PKI API Go avec persistance MongoDB et abstraction storage

- API REST complète pour gestion Infrastructure à Clé Publique
- Authentification JWT sur tous les endpoints (sauf login)
- Hiérarchie de certificats (Root CA, Sub-CA, End Certificates)
- Abstraction de stockage avec MemoryStore et MongoStore
- Configuration centralisée via variables d'environnement
- Support déploiement Docker Compose avec MongoDB
- Tests unitaires pour sérialisation des clés RSA
- Documentation complète avec exemples API
This commit is contained in:
zen6
2025-12-06 23:11:50 +01:00
commit ddece00272
23 changed files with 2382 additions and 0 deletions

43
Dockerfile Normal file
View File

@@ -0,0 +1,43 @@
# Build stage
FROM golang:1.21-alpine AS builder
# Installer git pour go mod download
RUN apk add --no-cache git
WORKDIR /app
# Copier les fichiers go.mod et go.sum
COPY go.mod go.sum ./
# Télécharger les dépendances
RUN go mod download
# Copier le code source
COPY . .
# Builder l'application
RUN CGO_ENABLED=0 GOOS=linux go build -o pkiapi ./cmd/main.go
# Runtime stage
FROM alpine:latest
# Installer les certificats pour les connexions HTTPS/MongoDB
RUN apk --no-cache add ca-certificates
WORKDIR /app
# Copier l'exécutable depuis le builder
COPY --from=builder /app/pkiapi .
# Exposer le port
EXPOSE 8080
# Variables d'environnement par défaut
ENV PORT=8080
ENV STORAGE_TYPE=mongodb
ENV MONGO_URI=mongodb://mongo:27017
ENV MONGO_DB=pkiapi
ENV JWT_SECRET_KEY=change-this-in-production
# Lancer l'application
CMD ["./pkiapi"]