|
|
||
|---|---|---|
| .env.example | ||
| .gitignore | ||
| CODE_OF_CONDUCT | ||
| docker-compose.yaml | ||
| Dockerfile | ||
| LICENSE | ||
| minio-policy.json | ||
| README.md | ||
mlflow
⚠️ Public Archive ⚠️
Since MLflow can not easaly be secured, this docker stack will not be maintained and provided. There are no code updates at all, including no security updates!
DO NOT USE ANY CODE OF THIS ORGANISATION IN PRODUCTION!
Self-Hosted MLFlow server
Getting Started
These instructions will give you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
Requirements for the software and other tools to build, test and push
Supported IDEs
You can use the IDE of your choice to continue developing the project. However, the following IDEs are recommended and officially supported:
Secret Management
Sensitive data is stored in a .env file.
An empty example of the structure can be found in .env.example
Development
This repository is a full functional docker compose application stack. Therefore, you can use the terminal to deploy a development instance on your local machine.
docker-compose up -d --build
Deployment Preperation
For the first deployment, some preconditions have to be met:
- Make sure the
publicnetwork exists in docker - Make sure the
$PATHdirectory on the server exists
Create a MinIO user, policy and bucket with the MinIO Client
mc alias set s3 $S3_DOMAIN $S3_ADMIN_USER $S3_ADMIN_PASS
mc mb s3/mlflow
mc admin user add s3 $S3_USER $S3_PASS
mc admin policy create s3 mlflow minio-policy.json
mc admin policy attach s3 mlflow --user $S3_USER
Deployment
For the deployment, the docker compose stack must be copied to the server and started
ssh $USER@$SERVER "docker compose -f $PATH/docker-compose.yaml down"
scp .env $USER@$SERVER:/$PATH/
scp Dockerfile $USER@$SERVER:/$PATH/
scp docker-compose.yaml $USER@$SERVER:/$PATH/
ssh $USER@$SERVER "docker compose -f $PATH/docker-compose.yaml up -d --build"
The $USER variable holds the username of the user on the server.
The $SERVER variable holds the IP-address or the domain of the server.
The $PATH variable holds the absolut path to the application folder on the server.
Authors
- Lukas Gysin - Main Contributor & Project Owner
License
This project is licensed under the MIT License
Acknowledgments
- Billie Thompson - Provided README Template
- Contributor Covenant - Provided CODE_OF_CONDUCT Template
- ruhyadi - Blog post with guide