2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00
2026-08-17 19:08:20 +02:00

PdfEditor

Éditeur de PDF en ligne, auto-hébergé. L'utilisateur dépose un PDF (glisser-déposer), l'édite directement dans le navigateur — ajout de texte, d'images, de signatures, de formes basiques et de liens — puis le télécharge ou le sauvegarde sur son compte.

Architecture

Couche Techno Rôle
Frontend Angular + PDF.js (rendu) + pdf-lib (édition/export) Toute l'édition se fait côté client, dans le navigateur.
Backend Go (net/http + chi) Authentification (JWT) et persistance des PDF/projets de l'utilisateur.
Base de données PostgreSQL Comptes utilisateurs et métadonnées des documents.
Stockage fichiers Volume disque Les PDF sauvegardés sont écrits sur un volume monté.

Le PDF n'est envoyé au serveur que si l'utilisateur choisit de le sauvegarder. L'édition elle-même ne quitte jamais le navigateur.

Le contrat d'API partagé est décrit dans docs/API.md.

PdfEditor/
├── docker-compose.yml         # Production : tire les images du registre Gitea
├── docker-compose.local.yml   # Dev/debug : build à partir des sources locales
├── .env.example               # Variables d'environnement (copier en .env)
├── scripts/push-images.sh     # Build + push des images vers Gitea (gitignoré)
├── docs/API.md                # Contrat d'API REST
├── backend/                   # Service Go
└── frontend/                  # Application Angular (servie par nginx)

Développement local

Prérequis : Docker + Docker Compose.

cp .env.example .env        # adapter si besoin
docker compose -f docker-compose.local.yml up --build

Services exposés :

Pour un cycle de dev plus rapide sur une seule couche, voir les README de backend/ et frontend/ (lancement natif go run / ng serve).

Déploiement (production)

Les deux images (pdfeditor-backend, pdfeditor-frontend) sont publiées sur le registre OCI intégré de Gitea, puis tirées par docker-compose.yml.

1. Publier les images

./scripts/push-images.sh            # tag = git short SHA + latest
# ou
IMAGE_TAG=v1.0.0 ./scripts/push-images.sh

Le script construit backend/ et frontend/, les tague (<short-sha> + latest) et les pousse vers gitea.anthonybouteiller.ovh/blomios/pdfeditor-{backend,frontend}.

2. Lancer sur le serveur

cp .env.example .env        # renseigner les secrets (JWT_SECRET, mots de passe…)
docker compose pull
docker compose up -d

Le frontend est exposé sur le port défini par HTTP_PORT (défaut 8080) ; il proxifie les appels /api vers le backend.

Images Docker

Image Description
…/pdfeditor-backend Binaire Go (build multi-stage).
…/pdfeditor-frontend Build Angular servi par nginx, proxy /api → backend.

Tags : latest (dernier build) et le git short SHA de chaque build.

Description
No description provided
Readme 4 MiB
Languages
TypeScript 65%
Go 25.5%
SCSS 4.9%
HTML 3.3%
Dockerfile 1.3%