{"id":29267168,"url":"https://github.com/marcus-24/mlflow_tracking_server","last_synced_at":"2026-02-03T03:38:56.373Z","repository":{"id":270174273,"uuid":"909533723","full_name":"marcus-24/MLFlow_Tracking_Server","owner":"marcus-24","description":"This repository uses docker containers to create a self-managed MLFlow server with a database and bucket storage for ML experiments and artifacts respectively.","archived":false,"fork":false,"pushed_at":"2025-01-01T18:21:54.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-04T17:16:56.046Z","etag":null,"topics":["docker","docker-compose","machine-learning","minio","mlflow","mlops","postgresql","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcus-24.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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,"zenodo":null}},"created_at":"2024-12-29T01:52:37.000Z","updated_at":"2025-02-04T03:05:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"d5852050-86ae-4685-bfdc-70742d9fb5cb","html_url":"https://github.com/marcus-24/MLFlow_Tracking_Server","commit_stats":null,"previous_names":["marcus-24/mlflow_tracking_server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marcus-24/MLFlow_Tracking_Server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcus-24%2FMLFlow_Tracking_Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcus-24%2FMLFlow_Tracking_Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcus-24%2FMLFlow_Tracking_Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcus-24%2FMLFlow_Tracking_Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcus-24","download_url":"https://codeload.github.com/marcus-24/MLFlow_Tracking_Server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcus-24%2FMLFlow_Tracking_Server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29031447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T02:28:16.591Z","status":"ssl_error","status_checked_at":"2026-02-03T02:27:48.904Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","docker-compose","machine-learning","minio","mlflow","mlops","postgresql","python"],"created_at":"2025-07-04T17:16:54.966Z","updated_at":"2026-02-03T03:38:56.366Z","avatar_url":"https://github.com/marcus-24.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MLFlow_Tracking_Server\n\n## Objective\n\nThis repository aims to create a cloud-agnostic MLFlow server to track machine learning operations (MLOPs) in a shared location. This service is also dependent on a PostgreSQL database to store the MLFlow metadata (run name, model input parameters, etc.) of each run and MinIO (an AWS S3 alternative) to store ML Artifacts (model pickle files, environment.yml, etc.).\n\n## Required software\n\n- https://docs.docker.com/get-started/get-docker/\n- https://docs.docker.com/compose/install/\n- https://docs.anaconda.com/miniconda/install/\n\n## Starting the service\n\nThe required services are created in their designated docker containers. Before running the docker-compose file, you will need to update the configurations in the `config.env` to add connection parameters for PostgreSQL, MinIO, and MLflow (except the MINIO_ACCESS_KEY and MINIO_SECRET_ACCESS_KEY variables. More on this later).\n\nOnce the `config.env` has been updated, you can test the containers locally by running the following command in your terminal:\n\n`docker-compose --env-file config.env up -d --build`\n\nWith the services running, log into the Minio service in your browser using the http://localhost:\u003cMINIO_PORT\u003e and the username and password that you set in the MINIO_ROOT_USER and MINIO_ROOT_PASSWORD variables. After a successful login, click the Access Keys option within the toolbar on the left of the screen and select Create Access Key. Copy and paste the Access Key and Secret Key into your MINIO_ACCESS_KEY and MINIO_SECRET_ACCESS_KEY variables within your config.env file respectively. Then click the Create button to save the key.\n\nNow we will have to restart the services with this new setting to enable the create bucket service to create the default MLFlow bucket with the new key settings. To restart the service, first shutdown the running containers using:\n\n`docker-compose down`\n\nThen rebuild the containers:\n\n`docker-compose --env-file config.env up -d --build`\n\nNow you have a fully running MLFlow server that you can save experiment parameters and artifacts within the http://localhost:\u003cMLFLOW_PORT\u003e\n\n## Testing MLFlow server in Python\n\nYou can test this new service using the example.py script included in this repository. The example script runs scikit learn's standard example of logistic regression with the model being tracked by the mlflow server that was created. First, you need to install the Python environment using the command below in the repository root directory (make sure you have Miniconda installed on your computer):\n\n`conda env create -f environment.yml`\n\nThen activate this new environment using:\n\n`conda activate mlflow_example`\n\nYou can now run the code with (make sure the MLFlow server is running in the background or this code will fail):\n\n`python example.py`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcus-24%2Fmlflow_tracking_server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcus-24%2Fmlflow_tracking_server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcus-24%2Fmlflow_tracking_server/lists"}