{"id":20505960,"url":"https://github.com/ligoj/ligoj","last_synced_at":"2025-04-13T21:12:03.732Z","repository":{"id":38953721,"uuid":"84091901","full_name":"ligoj/ligoj","owner":"ligoj","description":"Ligoj, your enhanced project dependencies management","archived":false,"fork":false,"pushed_at":"2025-04-09T07:32:46.000Z","size":12449,"stargazers_count":11,"open_issues_count":44,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-13T21:11:51.442Z","etag":null,"topics":["aws","azure","dependency-manager","docker","spring-boot"],"latest_commit_sha":null,"homepage":"https://kloudy.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ligoj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-06T15:53:20.000Z","updated_at":"2025-04-09T07:32:50.000Z","dependencies_parsed_at":"2023-11-07T23:25:30.850Z","dependency_job_id":"5e629c44-3018-4644-bcfa-b42de6fe1962","html_url":"https://github.com/ligoj/ligoj","commit_stats":null,"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligoj%2Fligoj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligoj%2Fligoj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligoj%2Fligoj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligoj%2Fligoj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ligoj","download_url":"https://codeload.github.com/ligoj/ligoj/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248782260,"owners_count":21160717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","azure","dependency-manager","docker","spring-boot"],"created_at":"2024-11-15T19:52:29.662Z","updated_at":"2025-04-13T21:12:03.687Z","avatar_url":"https://github.com/ligoj.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## :link: Ligoj - API [![Docker API](https://img.shields.io/docker/v/ligoj/ligoj-api)](https://hub.docker.com/r/ligoj/ligoj-api) - UI [![Docker UI](https://img.shields.io/docker/v/ligoj/ligoj-ui)](https://hub.docker.com/r/ligoj/ligoj-ui)\n\n![alt text](https://github.com/ligoj/ligoj/raw/master/docs/assets/img/home-multi-project.png \"Home page\")\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fligoj%2Fligoj.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fligoj%2Fligoj?ref=badge_shield)\n\nA web application to centralize the related tools of your projects, a dynamic connection management with security and\ndata collection.\n\nMore technical details can be found in the subdirectories [ligoj-api](https://github.com/ligoj/ligoj/tree/master/app-api)\nand [ligoj-ui](https://github.com/ligoj/ligoj/tree/master/app-ui).\n\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=ligoj_ligoj\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=ligoj_ligoj)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/abf810c094e44c0691f71174c707d6ed)](https://www.codacy.com/gh/ligoj/ligoj?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=ligoj/ligoj\u0026amp;utm_campaign=Badge_Grade)\n[![Maintainability](https://api.codeclimate.com/v1/badges/f6bc3a113fddfad9151a/maintainability)](https://codeclimate.com/github/ligoj/ligoj/maintainability)\n[![CodeFactor](https://www.codefactor.io/repository/github/ligoj/ligoj/badge)](https://www.codefactor.io/repository/github/ligoj/ligoj)\n[![License](http://img.shields.io/:license-mit-blue.svg)](http://fabdouglas.mit-license.org/)\n[![Sauce Test Status](https://saucelabs.com/buildstatus/fabdouglas)](https://saucelabs.com/u/fabdouglas)\n\n### Big Thanks\n\nCross-browser Testing Platform and Open Source \u003c3 Provided by [Sauce Labs][homepage]\n\n[homepage]: https://saucelabs.com\n\n# Get started\n\n```\ncurl https://raw.githubusercontent.com/ligoj/ligoj/master/docker-compose.yml -o docker-compose.yml -s \u0026\u0026 docker-compose up\n```\n\nOpen your browser at : [Ligoj Home](http://localhost:8080/ligoj)\nUser/password for administrator role : `ligoj-admin` and `ligoj-user` for a regular user\n\nYou can install the plug-ins for RBAC security : plugin-id,plugin-id-ldap,plugin-id-ldap-embedded\n\n## Dev section\n\nSee [Wiki page](https://github.com/ligoj/ligoj/wiki/Dev-Setup)\n\nSee each container [ligoj-api](https://github.com/ligoj/ligoj/tree/master/app-api)\nand [ligoj-ui](https://github.com/ligoj/ligoj/tree/master/app-ui).\n\n## License\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fligoj%2Fligoj.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fligoj%2Fligoj?ref=badge_large)\n\n## Installation guides\n\n### One script rebuild and run\n\nDocker, compose and git install, then build, then run.\n\n```bash\nsudo yum install -y docker git\nsudo pip3 install docker-compose\nsudo usermod -a -G docker ec2-user\nsudo systemctl enable docker.service\nsudo systemctl start docker.service\ngit clone https://github.com/ligoj/ligoj.git\ncd ligoj\nmkdir -p \"$(pwd)/.ligoj\"\necho \"LIGOJ_HOME=$(pwd)/.ligoj\nPODMAN_USERNS=keep-id\" \u003e .env\ndocker-compose -p ligoj up -d --build\nopen http://localhost:8080/ligoj\n```\n\n## Publish to AWS ECR\n\n```bash\nAWS_ACCOUNT=\"$(aws sts get-caller-identity --query \"Account\" --output text)\"\nAWS_REGION=\"$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/\\(.*\\)[a-z]/\\1/')\"\nECR_REGISTRY=$AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com\ndocker image tag ligoj/ligoj-api:4.0.0 $ECR_REGISTRY/ligoj/ligoj-api:4.0.0\ndocker image tag ligoj/ligoj-ui:4.0.0 $ECR_REGISTRY/ligoj/ligoj-ui:4.0.0\naws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $ECR_REGISTRY\ndocker push $ECR_REGISTRY/ligoj/ligoj-api:4.0.0\ndocker push $ECR_REGISTRY/ligoj/ligoj-ui:4.0.0\n```\n\n# Advanced deployments with compose\n\n## Custom Docker Compose variables\n\n| Variable               | Service | Phase | Default                               | Note                                                                                                                                                                                                                                 |\n|------------------------|---------|-------|---------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| LIGOJ_HOME             | api     | RUN   | `/home/ligoj`                         | To map a persistent home                                                                                                                                                                                                             |\n| LIGOJ_REGISTRY         | *       | BUILD |                                       | To push to your registry. When provided, must ends with `/`.                                                                                                                                                                         |\n| LIGOJ_VERSION          | app-*   | BUILD | (version of application)              |                                                                                                                                                                                                                                      |\n| LIGOJ_WEB_PORT         | web     | RUN   | `8080`                                | Internal WEB port                                                                                                                                                                                                                    |\n| LIGOJ_PORT             | web     | RUN   | `8080`                                | Exposed port                                                                                                                                                                                                                         |\n| LIGOJ_API_JAVA_OPTIONS | api     | RUN   | `-Duser.timezone=UTC`                 |                                                                                                                                                                                                                                      |\n| LIGOJ_WEB_JAVA_OPTIONS | web     | RUN   | `-Duser.timezone=UTC -Dsecurity=Rest` |                                                                                                                                                                                                                                      |\n| LIGOJ_API_CRYPTO       | api     | RUN   | `-Dapp.crypto.password=public`        | Double encryption feature, see [core-context-common.xml](https://github.com/ligoj/bootstrap/blob/5e23ac71c48bb89c8c44433bb4a89a30cbb4700c/bootstrap-core/src/main/resources/META-INF/spring/core-context-common.xml#L16C101-L16C101) |\n| LIGOJ_WEB_CRYPTO       | web     | RUN   | `-Dapp.crypto.password=public`        | Double encryption feature, see [core-context-common.xml](https://github.com/ligoj/bootstrap/blob/5e23ac71c48bb89c8c44433bb4a89a30cbb4700c/bootstrap-core/src/main/resources/META-INF/spring/core-context-common.xml#L16C101-L16C101) |\n| LIGOJ_API_CUSTOM_OPTS  | api     | RUN   | ``                                    | Additional Java properties  `LIGOJ_API_JAVA_OPTIONS`                                                                                                                                                                                 |\n| LIGOJ_WEB_CUSTOM_OPTS  | web     | RUN   | ``                                    | Additional Java properties, merged with `LIGOJ_WEB_JAVA_OPTIONS`                                                                                                                                                                     |\n| LIGOJ_BUILD_PLATFORM   | app-*   | BUILD | `linux/amd64`                         | Docker build platform.                                                                                                                                                                                                               |\n| LIGOJ_TARGET_PLATFORM  | app-*   | BUILD | `linux/amd64`                         | Docker run platform.                                                                                                                                                                                                                 |\n\nSample `.env` file:\n\n```ini\nLIGOJ_HOME=/var/data/ligoj\nPODMAN_USERNS=keep-id\nLIGOJ_BUILD_PLATFORM=linux/arm64\nLIGOJ_TARGET_PLATFORM=linux/arm64\nLIGOJ_REGISTRY=nexus.sample.local/\nLIGOJ_API_PREPARE_BUILD='export HTTP_PROXY=192.168.0.254:8000 \u0026\u0026 export HTTPS_PROXY=192.168.0.254:8000'\n```\n\n## Custom Docker Compose discovered scripts\n\n| Source             | Service | Destination  | Phase | Note                                                                                               |\n|--------------------|---------|--------------|-------|----------------------------------------------------------------------------------------------------|\n| `prepare-build.sh` | app-*   | `WORKDIR`    | BUILD | Additional Bash commands executed inside the builder , before `mvn` but after `MAVEN_OPTS` is set. |\n| `prepare-run.sh`   | app-*   | `WORKDIR`    | RUN   | Additional Bash commands executed inside the final image, before `java`                            |\n| `.m2/`             | app-*   | `/root/.m2/` | BUILD | Custom Maven configuration: proxy, mirror, dependencies,...                                        |\n\nSample `prepare-build.sh` file:\n\n```ini\nexport http_proxy=192.168.0.254:8000\nexport https_proxy=192.168.0.254:8000\n```\n\n## Persistent Ligoj home\n\nBy default, with Docker compose, the home is persistent it contains:\n\n- plugins installation\n- logs of containers\n- database data\n\n```bash\nmkdir -p \"$(pwd)/.ligoj\"\necho \"LIGOJ_HOME=$(pwd)/.ligoj\nPODMAN_USERNS=keep-id\" \u003e .env\n```\n\n## Use MySQL or PostgreSQL databases\n\nBy default, the Docker compose overrides is loaded from `compose.override.yml` and contains MySQL configuration.\n\nFor MySQL, the docker-compose command is:\n\n```bash\nexport BUILDAH_FORMAT=docker\npodman-compose -p ligoj build\npodman-compose -p ligoj -f compose.yml  -f compose.override.yml up -d\npodman-compose -p ligoj down\n```\n\nFor PostgreSQL, the docker-compose command is:\n\n```bash\nexport BUILDAH_FORMAT=docker\npodman-compose -p ligoj build\npodman-compose -p ligoj -f compose.yml  -f compose-postgres.yml up -d\npodman-compose -p ligoj -f compose.yml  -f compose-postgres.yml down\n```\n\n# API Description\n\nAPI is only available from a valid session.\n\n- [Swagger UI](http://localhost:8080/ligoj/#/api) page\n- [WADL](http://localhost:8080/ligoj/rest/?_wadl)\n\n# Plugin management\n\nLigoj is massively based on plugin management.\n\nAll plugins are deployed in [Maven central](https://mvnrepository.com/artifact/org.ligoj.plugin)\n\nTo build and deploy a plugin, more information are available in [plugin-api](https://github.com/ligoj/plugin-api) repository.\n\n# Custom UI\n\nLigoj comes with a modular approach. For custom UI, the solutions are:\n- Rebuild [plugin-ui](https://github.com/ligoj/plugin-ui), with specific assets, and deploy this plugin in a custom Maven repository, or upload it with `/system/plugin/{artifact}/{version}` API\n- Create your own plugin `plugin-ui-company`, with you specific assets: overrides and additions. Then install this plugin as above solution\n- Copy you specific assets in the Ligoj home directory such as `/home/ligoj/META-INF/resources/webjars`, `$(pwd)/.ligoj/META-INF/resources/webjars`, depending on your runtime. For sample:\n    ```bash\n    # With Ligoj CLI\n    ligoj configuration set --id \"ligoj.file.path\" --value \"^/home/ligoj/META-INF/resources/webjars/.*,^/home/ligoj/statics/themes/.*\"\n    ligoj file put --from /path/to/icon.png  --path \"/home/ligoj/META-INF/resources/webjars/home/img/logo.png\"\n    ligoj file put --from /path/to/bg1.jpg  --path \"/home/ligoj/statics/themes/bootstrap-material-design/img/bg1.jpg\"\n  \n    # With local access of Ligoj home folder\n    mkdir -p \"${LIGOJ_HOME}/META-INF/resources/webjars/home/img\" \u0026\u0026 cp /path/to/icon.png \"$_/logo.png\"\n    mkdir -p \"${LIGOJ_HOME}/statics/themes/bootstrap-material-design/img\" \u0026\u0026 cp /path/to/bg1.jpg \"$_/bg1.jpg\"\n    ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fligoj%2Fligoj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fligoj%2Fligoj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fligoj%2Fligoj/lists"}