SecuFile
Installation
Compilation et build de SecuFile
Compilation et build
Book: SecuFile — Stockage sécurisé de fichiers | Chapter: Installation et Configuration
Compilation et build
Prerequis
Backend Go (filesecure)
- Go 1.25 ou superieur
- PostgreSQL 15+
- Redis 7+
- Docker (pour les builds de production)
- Acces au registre Harbor OVH (
qq9o8vqe.c1.bhs5.container-registry.ovh.net)
WebGUI (filesecure-webgui)
- Node.js 20+ LTS
- npm 10+
- Python 3.11+
- Docker (pour les builds de production)
Compilation du backend Go
Build local
cd /home/ubuntu/projects/filesecure/backend
# Telecharger les dependances et nettoyer
go mod tidy
# Compiler le binaire API
go build -o bin/api ./cmd/api/
# Compiler l'outil de nettoyage S3
go build -o bin/cleanup-s3 ./cmd/cleanup-s3/
# Compiler l'outil d'initialisation des cles RSA
go build -o bin/init-keys ./cmd/init-keys/Verification du code
cd /home/ubuntu/projects/filesecure/backend
# Verification statique
go vet ./...
# Execution des tests (16 suites de tests)
go test ./...
# Build complet sans erreurs
go build ./cmd/api/Build Docker
Le Dockerfile utilise un build multi-stage pour minimiser la taille de l'image :
# Stage 1: Build
FROM golang:1.25-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o api ./cmd/api/
# Stage 2: Runtime
FROM alpine:3.19
RUN apk --no-cache add ca-certificates tzdata
WORKDIR /app
COPY --from=builder /app/api .
COPY --from=builder /app/migrations ./migrations
COPY --from=builder /app/docker-entrypoint.sh .
RUN chmod +x docker-entrypoint.sh
ENTRYPOINT ["./docker-entrypoint.sh"]Build via SecuOps
# Build de l'image Docker via SecuOps
secuops build --app=secufile-backend --env=k8s-dev
# L'image est automatiquement taguee et pushee vers Harbor
# Format: qq9o8vqe.c1.bhs5.container-registry.ovh.net/secuops/secufile-backend-backend:main-XXXXXXCompilation du frontend React
Build local
cd /home/ubuntu/projects/filesecure-webgui/frontend
# Installer les dependances
npm install
# Build de production
npm run build
# Le build genere un bundle d'environ 530 kBBuild Docker
# Build via SecuOps (frontend + backend Python)
secuops build --app=filesecure-webgui --env=k8s-dev
# Deux images sont generees :
# - secuops/secufile-webgui-frontend:main-XXXXXX (nginx + React)
# - secuops/secufile-webgui-backend:main-XXXXXX (Python FastAPI)Installation du backend Python
cd /home/ubuntu/projects/filesecure-webgui/backend
# Creer un environnement virtuel
python3 -m venv venv
source venv/bin/activate
# Installer les dependances
pip install -r requirements.txt
# Lancer en mode developpement
uvicorn server:app --host 0.0.0.0 --port 8001 --reload