Skip to content
View ligoj's full-sized avatar

Block or report ligoj

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ligoj/README.md

🔗 Ligoj - API Docker API - UI Docker UI

alt text FOSSA Status

A web application to centralize the related tools of your projects, a dynamic connection management with security and data collection.

More technical details can be found in the subdirectories ligoj-api and ligoj-ui.

📖 Full documentation lives in DOC.md — architecture, security (O)RBAC model, features, plugin development, deployment, the complete configuration reference and troubleshooting. This page is the quick-start; deep-dive links below point into DOC.md.

Coverage Codacy Badge CodeFactor License

Vue 3 Vite Vuetify Pinia Java 21 194 tests Docker

Big Thanks

Cross-browser Testing Platform and Open Source <3 Provided by Sauce Labs


Architecture

                     :8080                    :8081
 Navigateur  ──────>  ligoj-ui  ──────────>  ligoj-api  ──────>  ligoj-db
 (Vue 3 SPA)         Spring Boot             Spring Boot          MySQL 8
                     + fichiers Vue          REST API
                     + proxy REST            + plugins Java
Service Image Port Description
ligoj-db mysql:8.0 Base de donnees
ligoj-api ligoj/ligoj-api:4.0.1 8081 API REST backend + plugins
ligoj-ui Build local (Dockerfile) 8080 Frontend Vue 3 + proxy Spring

See Architecture for the full topology.


Stack technique

Couche Technologie Version
Framework UI Vue.js 3.5 Composition API, <script setup>
Build Vite 6.0 HMR < 100ms, build < 2s
UI Library Vuetify 3.7 Material Design 3
State Pinia 2.2 Stores reactifs
Router Vue Router 4.5 Hash mode, guards auth
Icons MDI 7.4 7 000+ icones Material
Tests unitaires Vitest 4.0 141 tests
Tests e2e Playwright 1.58 53 tests
Runtime Java 21 Temurin 21 Spring Boot
Build Docker Node 22 + Maven 3.9 Multi-stage

Tests

Suite Framework Tests Temps
Stores & composables Vitest 50 ~0.1s
Plugin system Vitest 16 ~0.1s
Plugin formatters Vitest 37 ~0.1s
Plugin API & contracts Vitest 40 ~0.1s
Views Vitest 3 ~0.1s
Unitaires (total) Vitest 141 ~2s
End-to-end Playwright 53 ~18s
Total 194

Pages disponibles (18 vues)

Page Route Donnees
Login /login.html API auth
Home page /#/ Cartes de navigation
Projects list /#/home/project 4 projets (MySQL)
Project details /#/home/project/:id Souscriptions
Users list /#/id/user API live
Groups list /#/id/group API live
Companies list /#/id/company API live
Delegates /#/id/delegate 5 delegations (MySQL)
Container Scopes /#/id/container-scope Onglets group/company
System info /#/system/information System information
Profile /#/profile User profile

Sans plugin IAM (LDAP/AD), le systeme utilise feature:iam:empty. Les pages Identity affichent les donnees retournees par l'API (qui peuvent etre vides). Les pages Projects et Delegates utilisent les vraies donnees MySQL.

Fonctionnalites transversales

Fonctionnalite Fonctionnalite
Authentification / Logout Dark mode
Session persistante Responsive mobile
Sidebar navigation Breadcrumbs
Recherche dans les tables Tri des colonnes
Pagination serveur Import/Export CSV
Bulk select/delete Form guards (dirty state)
Gestion d'erreurs (snackbar) Loading skeletons
i18n FR/EN RBAC (autorisations UI)

Get started

Prerequisites

The stack builds and runs with podman compose. On a machine that already has Docker Compose, Podman must be told to prefer podman-compose — see Prerequisites for the one-time provider setup and the sanity check.

Quick install:

# macOS
brew install podman podman-compose git && podman machine init && podman machine start
# Linux (Debian/Ubuntu): sudo apt install -y podman python3-pip git && pip install --user podman-compose

Run

git clone https://github.com/ligoj/ligoj.git && cd ligoj
podman compose -p ligoj -f compose.yml -f compose-override.yml up -d --build

Then open Ligoj Home in your browser.

Role Login Password
Administrator ligoj-admin ligoj-admin
Regular user ligoj-user ligoj-user

For RBAC security, install: plugin-id, plugin-id-ldap, plugin-id-ldap-embedded.

More deployment topics — Compose variables, MySQL/PostgreSQL selection, persistent home, embedding git provenance, one-script setup and publishing images to AWS ECR — are documented in Deployment with Docker Compose.

Dev section

See the Development and Frontend development (Vite) guides, and the Wiki page.

See each container ligoj-api and ligoj-ui.

License

FOSSA Status

API Description

API is only available from a valid session. See OpenAPI / API schema.

Plugin management

Ligoj is massively based on plugin management. All plugins are deployed in Maven central. To build and deploy a plugin, more information is available in the plugin-api repository. See Plugin management for the full model.

Custom UI

Ligoj comes with a modular approach: the UI can be rebranded or extended by rebuilding plugin-ui, shipping your own plugin-ui-company, or dropping assets into the Ligoj home directory. See Custom UI via plugins and Customization of the UI.

Software Bill of Materials (SBOM)

SBOM content is exposed thanks to Spring Actuator at http://localhost:8080/ligoj/manage/sbom. See Management endpoints.

Pinned Loading

  1. ligoj ligoj Public

    Ligoj, your enhanced project dependencies management

    JavaScript 11 10

  2. ligoj-api ligoj-api Public

    Base components and archetype for plugin of Ligoj

    Java 6 6

  3. plugin-prov plugin-prov Public

    Ligoj plugin for provisioning : design and execution with Terraform

    Java 9 5

  4. plugin-prov-aws plugin-prov-aws Public

    Ligoj plugin for AWS provisioning : fetch prices and Terraform implementation

    Java 4 1

  5. plugin-vm plugin-vm Public

    Ligoj plugin for VM runtime management : scheduled/manual ON/OFF with status pooling

    Java 5

  6. plugin-id plugin-id Public

    Ligoj plugin for identity (IAM) service. Delegation, user, group, companies with full UI

    Java 4 5