2024-12-11 19:30:02 +01:00
2024-12-12 17:59:14 +01:00
2024-12-11 19:33:06 +01:00
2024-12-12 17:44:26 +01:00
2024-12-02 17:12:54 +01:00

✒️ Document generation microservices

Features

  • 📝 HTML templates for pdf generation
  • 📚 OpenAPI/Swagger documentation
  • High-performance with go and gotenberg

🚀 Quick Start

# Install dependencies
go mod download

# Run the server
air

📖 API Documentation

Swagger UI is available at: /swagger

🛠️ Development

The project uses:

  • 🏃‍♂️ go as the language and build tool
  • 🌐 gofiber for the web framework
  • 📦 air for live reload
  • 📝 swaggo for API documentation
  • 📄 gotenberg for HTML to PDF conversion

📦 Use docker compose for external dependencies

docker compose -f docker-compose.dev.yaml up

🏃 Run via air

Install air via go install github.com/air-verse/air@latest

# With the default air config
air

# With the config for linux/macOS
air -c .air.linux.toml

# With the config for windows
air -c .air.windows.toml

✒️ Update the swagger docs

Install swag via go install github.com/swaggo/swag/cmd/swag@latest

swag init

🐋 Build container

# single arch
docker build -t registry.odit.services/lfk/document-server:latest .

# multiarch
docker buildx build --platform=linux/amd64,linux/arm64 -t registry.odit.services/lfk/document-server:latest --push .

⏱️ Benchmarks

Barcode Generation

  • Requests: 10000
  • Concurrency: Unlimited
  • Data: 123456789123
  • Width: 1000
  • Height: 500

No cache

Format Requests/sec Slowest Fastest Average
Code128 763.3996 0.7995 0.0172 0.0654
EAN13 767.1170 0.7607 0.0171 0.0651
QR 683.8472 0.6528 0.0178 0.0730

Redis cache

Format Requests/sec Slowest Fastest Average
Code128 15611.5521 0.0965 0.0006 0.0032
EAN13 14985.4401 0.0925 0.0006 0.0033
QR 14306.2540 0.1143 0.0005 0.0035
Description
The document generation server responsible for creating pdfs for sponsoring contracts, certificates and more.
Readme 6.2 MiB
Release 0.5.1 Latest
2021-04-22 16:16:43 +00:00
Languages
Go 66.8%
HTML 32.8%
Dockerfile 0.4%