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:
43
Dockerfile
Normal file
43
Dockerfile
Normal 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"]
|
||||
Reference in New Issue
Block a user