MC-Application-Manager is one of the components of the M-CMP platform. With MC-Application-Manager, you can deploy and manage applications on the desired infrastructure (VM/K8S) and register a separate repository for use. Additionally, for users who are not familiar with using Yaml, there is a Yaml Generator feature available.
- Application Catalog Management
 - Repository Management
 - Yaml Generator
 
- System Requirements
 - Installation with Docker Compose
 - Project Structure
 - Run Instructions
 - Contributing
 - License
 
To use mc-application-manager, ensure your system meets the following requirements:
- Operating System: Linux (Ubuntu 22.04 LTS recommended)
 - Java: OpenJDK 17+
 - Gradle: v7.6+
 - Docker: v24.0.2+
 - Application-Provisioning-Engine(Jenkins): v2.424+
 - Git: Latest version
 
The easiest way to deploy mc-application-manager is via Docker Compose. Follow the steps below to get started.
First, clone the mc-application-manager repository to your local machine:
git clone https://github.com/m-cmp/mc-application-manager.git
cd mc-application-managerYou can customize the following environment variables in the docker-compose.yaml file:
- DDL_AUTO : Database initialization # create-drop
 - DB_USER : Database user ID
 - DB_PASS : Database user password
 - SQL_DATA_INIT : always # or never
 - Edit these environment variables according to your needs.
 
To bring up the mc-application-manager service along with its dependencies, run the following command:
sudo apt update
sudo apt install -y docker-compose
cd ./script
chmod +x setup-docker-no-sudo.sh
./setup-docker-no-sudo.sh
cd ..
# The initial user information for the workflow engine is admin / 123456
# The initial user information for the repository is admin / 123456
# If you need to modify, modify docker-compose.yaml
sudo docker-compose up -dThis command will pull the necessary Docker images, build the services, and start the containers in detached mode.
Once the services are up, you can access the following endpoints:
- Swagger UI: 
http://<Public_IP>:18084/swagger-ui/index.html - Application-Provisioning-Engine(Jenkins) UI: 
http://<Public_IP>:9800 - Repository UI : 
http://<Public_IP>:8081 - Application Manager UI: 
http://<Public_IP>:18084/web- OSS Management: 
http://<Public_IP>:18084/web/oss/list - Application Catalog Management: 
http://<Public_IP>:18084/web/softwareCatalog - Repository Management: 
http://<Public_IP>:18084/web/repository/list - Yaml Generator: 
http://<Public_IP>:18084/web/generate/yaml 
 - OSS Management: 
 
- Access the OSS List
 - Modify previously registered OSS
 - Update with Workflow Engine And Repository information
 - Check for duplicates and verify connections
 - Click the "Edit" button
 
※ If no separate modifications were made, the Workflow Engine (Jenkins) information is as follows.
- APE (Application Provisioning Engine) - Jenkins
 
URL : http://<Public_IP>:9800
OSS ID : admin
OSS PW : 123456
- Repository - Nexus
 
URL : http://<Public_IP>:8081
OSS ID : admin
OSS PW : 123456
To stop the running services, use:
sudo docker-compose downThis will gracefully shut down the containers without removing volumes, allowing you to preserve the state of the database.
mc-application-manager/
├── docker-compose.yaml       # Docker Compose file for service orchestration
├── src/                      # Source code for the Application Manager
├── script/                   # Helper scripts for build and execution
├── README.md                 # Project documentation
├── LICENSE                   # License information
└── docs/                     # Additional documentationIf you prefer to build and run the project manually, follow these steps:
- 
Install Git
sudo apt update sudo apt install -y git
 - 
Download mc-application-manager Source Code
cd $HOME git clone https://github.com/m-cmp/mc-application-manager.git export PROJECT_ROOT=$(pwd)/mc-application-manager
 - 
Install Required Packages/Tools and Set Environment Variables
- 
Install Java, Docker
cd $PROJECT_ROOT/script sudo chmod +x *.sh . $PROJECT_ROOT/script/init-install.sh
 - 
Set Environment Variables
cd $PROJECT_ROOT/script . $PROJECT_ROOT/script/set_env.sh source $HOME/.bashrc
 
 - 
 - 
Build and Run
- Execute Shell Script
# Run Jenkins . $PROJECT_ROOT/script/run-jenkins.sh # Build Springboot Project . $PROJECT_ROOT/script/build-mc-application.sh # Run Springboot Project . $PROJECT_ROOT/script/run-mc-application.sh
 
 - Execute Shell Script
 
We welcome contributions to the mc-application-manager project! To get involved, follow these steps:
- Fork the repository on GitHub.
 - Create a feature branch: 
git checkout -b feature-branch. - Commit your changes: 
git commit -m "Add new feature". - Push the branch: 
git push origin feature-branch. - Open a Pull Request.
 - For detailed guidelines, refer to the Contributing Guide.
 
This project is licensed under the terms of the Apache 2.0 License. See the LICENSE file for details.