You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+49-55
Original file line number
Diff line number
Diff line change
@@ -17,17 +17,16 @@ STACKn is a machine learning platform that lets data scientist collaborate on pr
17
17
</p>
18
18
19
19
20
-
21
20
With an intuitive web UI, users can create private or shared projects in which various data science applications can be deployed, such as
22
21
- Dataset: project storage volumes, object stores, and databases for storing and sharing datasets.
23
22
- Environments and apps: Jupyter notebooks, VSCode, MLFlow etc. for experimentation and training models with pre-configured data science environments.
24
23
- STACKn Models: enables trained models to be deployed and served using tools such as Tensorflow Serving, PyTorch Serve and MLFlow Serve, which in turn enables deployment of analytics apps and custom UIs using served model endpoints (Dash, Flask etc).
25
24
26
25
STACKn has been designed to be highly customizable (but comes packaged with the most widely used applications) and cloud agnostic. STACKn deployments can be configured on any infrastructure that implements the Kubernetes API, and is packaged using Helm charts.
27
26
28
-
STACKn also integrates [FEDn](https://github.com/scaleoutsystems/fedn), a framework for federated machine learning which enables collaborative projects between stakeholders where data cannot be shared due to private, regulatory or practical reasons.
29
27
<br />
30
28
<br />
29
+
31
30
# Setup a local deployment
32
31
This deployment is for quick testing on Debian/Ubuntu and will not require any TLS certificates. For a production deployment, please see the [documentation](https://scaleoutsystems.github.io/stackn/#/?id=setup).
2. A template file for values.yaml can be found in “charts/scaleout/stackn”
67
-
Please make sure to follow the instructions that you will find **at the beginning of this file** in order to set some required values, such as:
68
65
69
-
- StorageClass for microk8s is “microk8s-hostpath”
66
+
2. Navigate to the directory “components/studio“:
67
+
```
68
+
$ cd stackn/components/studio
69
+
```
70
+
At this directory there are two files that need to be quickly modified before running the command `docker-compose up`:
71
+
-`cluster.conf`
72
+
- update this file with your kubernetes cluster config by running: `$ microk8s config > ./cluster.conf`
70
73
71
-
- Search and replace **all** occurrences of `<your-domain.com>` with your local IP domain. It can be useful to use a wildcard dns such as [nip.io](http://nip.io). For example, if your local IP is 192.168.1.10 then the `<your-domain.com>` field becomes `192.168.1.10.nip.io`
74
+
-`docker-compose.yaml`
75
+
- update this file by searching and replacing **all** occurrences of `<your-domain>` with your local IP domain. It can be useful to use a wildcard dns such as [nip.io](http://nip.io). For example, if your local IP is 192.168.1.10 then the `<your-domain>` field becomes `192.168.1.10.nip.io`
72
76
73
-
- Set `oidc.verify_ssl = false`, this will enable insecure options (without certificates)
77
+
-`studio/settings.py`
78
+
- update this file, like the previous file, replace the occurence of `<your-domain>` with your local IP domain
74
79
75
-
- Setting passwords are optional, but we recommend setting `global.studio.superUser` and `global.studio.superUserPassword` since these are required in step 6., if these are left blank passwords will be auto generated.
76
-
77
-
- Copy your kubernetes cluster config and paste it in the values.yaml under the `cluster_config` field. Your kubernetes config file should be locate under the path `$HOME/.kube`; otherwise if you have followed this tutorial and used microk8s, then run the command:
80
+
**Note:** We have created a quite basic shell utility script that takes care of the above manual changes. You can find it under the same directory (i.e. `stackn/components/studio`) and it is called [`init.sh`](https://github.com/scaleoutsystems/charts/blob/release/v0.6.0/scaleout/stackn/values-utility-script.sh).
78
81
82
+
3. Finally, fire up STACKn with the following simple command:
79
83
```
80
-
microk8s config
84
+
$ docker-compose up
81
85
```
86
+
**Note:** in the `docker-compose.yaml` file, it is important to know and be aware that there exists two useful flags for the studio container which default values are:
87
+
-`INIT=true`
88
+
-`FEDN=false`
82
89
83
-
3. After the `values.yaml` is set, install STACKn via helm. This will take several minutes:
This flags are used by the studio container when starting the web server with the script [`run_web.sh`](https://github.com/scaleoutsystems/stackn/blob/release/v0.6.0-1/components/studio/scripts/run_web.sh).
93
91
94
-
4. Go to studio in your browser: (for example `studio.stackn.192.168.1.10.nip.io`)
95
-
```
96
-
https://studio.<your-domain.com>
97
-
```
98
-
5. Register a new user. Press "sign in"
92
+
The `INIT` flag tells the studio container whether the initial database migrations, fixtures and admin user should be created. This means that such flag should be set to `true` whenever a fresh instance/deployment of STACKn is needed. **Otherwise you must change this to `false` after the first initialization, or you will run into database migrations errors.**
99
93
100
-
6. Go to django admin page:
94
+
The `FEDN` flag tells the studio container whether [FEDn](https://github.com/scaleoutsystems/fedn) should be enabled and integrated by running the related database migrations and fixtures. Same thing here, such flag should be set to `true` whenever a fresh instance/deployment with FEDn enabled is needed. **Otherwise you must change back this to `false` after the first initialization, or you will run into database migrations errors.**
- Sign in with the superuser which was set in helm values (\<global\>.studio.superUser and \<global\>.studio.superUserPassword). If these values were omitted, the password can be found in the Secret "stackn" and superUser is by default "admin".
102
+
2. A template file for values.yaml can be found in “charts/scaleout/stackn”
103
+
Please make sure to follow the instructions that you will find **at the beginning of this file** in order to set some required values, such as:
105
104
106
-
-Go to "Users" tab and click on the user you created earlier.
105
+
-StorageClass for microk8s is “microk8s-hostpath”
107
106
108
-
-Give the user all permission (superuser, staff), then “save”.
107
+
-Search and replace **all** occurrences of `<your-domain.com>` with your local IP domain. It can be useful to use a wildcard dns such as [nip.io](http://nip.io). For example, if your local IP is 192.168.1.10 then the `<your-domain.com>` field becomes `192.168.1.10.nip.io`
109
108
110
-
## Install default apps and project templates
109
+
- Setting passwords are optional, but we recommend setting `global.studio.superUser` and `global.studio.superUserPassword` since these are required in step 6., if these are left blank passwords will be auto generated.
110
+
111
+
- Copy your kubernetes cluster config and paste it in the values.yaml under the `cluster_config` field. Your kubernetes config file should be locate under the path `$HOME/.kube`; otherwise if you have followed this tutorial and used microk8s, then run the command:
3. Login with the user (which you created in studio)
116
+
117
+
**Note:** We have created a quite basic shell utility script that takes care of the manual changes of the `values.yaml`. You can find it in the same Helm chart repository for STACKn and it is called [`values-utility-script.sh`](https://github.com/scaleoutsystems/charts/blob/release/v0.6.0/scaleout/stackn/values-utility-script.sh). Run it in order to modify the `values.yaml` file:
Open studio in your browser and create a new project. Here are [tutorials](https://github.com/scaleoutsystems/examples/tree/main/tutorials/studio) to get you started! Happy STACKning!
134
+
Open studio in your browser (for example `studio.stackn.192.168.1.10.nip.io:8080`), register a new user with the "Sign up" button and create a new project.. Here are [tutorials](https://github.com/scaleoutsystems/examples/tree/main/tutorials/studio) to get you started! Happy STACKning!
0 commit comments