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: docs/01-prerequisites.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,15 @@ icon: lucide/list-todo
7
7
8
8
Before you begin, ensure you have the following software installed on your local machine. This guide assumes you have a basic understanding of using the command line.
9
9
10
-
### Core Tools
10
+
Required tools
11
+
- Git
12
+
- Container runtime (Docker/Podman) for building the Marimo, Quarto, and srdp-etl (Dagster user code) images
13
+
- Kubernetes cluster + `kubectl` (tested with 1.32+). For local work, `kind`, `minikube`, or `k3d` with LoadBalancer/NodePort access all work.
14
+
- Helm 3.x
15
+
-[`just`](https://github.com/casey/just) as a task runner for the common Helm/OpenTofu commands in this repo
16
+
-[`mkcert`](https://github.com/FiloSottile/mkcert) to generate local TLS certificates for `*.local.dev`
17
+
-[OpenTofu](https://opentofu.org/docs/intro/install/) for production infrastructure on Scaleway Kapsule
11
18
12
-
***Git:** The project is managed with Git. You will need it to clone the repository.
***Docker and Docker Compose:** All services in this project are containerized using Docker. Docker Compose is used to orchestrate and run the multi-container setup.
16
-
* The easiest way to get both is by installing **Docker Desktop** for your operating system. It includes Docker Engine, Docker CLI, and Docker Compose.
Copy file name to clipboardExpand all lines: docs/02-configuration.md
+45-75Lines changed: 45 additions & 75 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,109 +7,79 @@ icon: lucide/locate-fixed
7
7
8
8
This guide will walk you through the steps to get the Single Repo Data Platform (SRDP) running on your local machine.
9
9
10
-
### Step 1: Clone the Repository
11
-
12
-
First, clone this repository to a location of your choice on your computer.
13
-
14
-
Open your terminal, navigate to your development directory, and run:
10
+
## 1) Clone the repo
15
11
16
12
```bash
17
13
git clone git@github.com:dkapitan/srdp.git # or git clone https://github.com/dkapitan/srdp.git
18
-
cd srdp/local
14
+
cd srdp
19
15
```
20
16
21
-
### Step 2: Configure Local Hostnames
22
-
23
-
To access the services using friendly names like `marimo.local.dev`, you need to edit your computer's `hosts` file. This file maps domain names to IP addresses. We will map our service domains to your local machine's IP, `127.0.0.1`.
24
-
25
-
**Why is this necessary?**
26
-
When you type `marimo.local.dev` into your browser, this file tells the browser to send the request to your own computer instead of trying to find a public website on the internet. Traefik, our proxy, will then receive this request and route it to the correct Docker container.
27
-
28
-
---
29
-
30
-
#### On macOS or Linux:
17
+
## 2) Point DNS at your cluster
31
18
32
-
1. Open a terminal.
33
-
2. Run the following command to open the hosts file with `nano`, a simple text editor. You will be prompted for your password.
34
-
```bash
35
-
sudo nano /etc/hosts
36
-
```
37
-
38
-
#### On Windows:
39
-
40
-
1. Press the Windows key, type`Notepad`, right-click on it, and select**"Run as administrator"**.
41
-
2. In Notepad, go to `File` > `Open`.
42
-
3. Navigate to `c:\Windows\System32\Drivers\etc\hosts`.
43
-
4. You may need to change the file type filter in the bottom-right corner from "Text Documents (*.txt)" to **"All files (*.*)"** to see the `hosts` file.
44
-
45
-
---
46
-
47
-
#### Add the Following Line:
48
-
49
-
Add this single line to the **bottom** of the `hosts` file.
19
+
The chart uses `*.local.dev` by default. Point those hostnames at the IP you will use to reach Traefik:
20
+
- For NodePort/local clusters: `127.0.0.1` is usually fine.
21
+
- For a LoadBalancer: use the external IP once Traefik comes up.
Save the file and exit the editor. (In `nano`, press `Ctrl+X`, then `Y`, then `Enter`). **You may need to restart your machine in order for changes to take effect.**
56
-
57
-
### Step 2b: Generate Certificates
58
-
59
-
You should generate local development certificates using [mkcert](https://github.com/FiloSottile/mkcert):
28
+
## 3) Create a local TLS secret
60
29
30
+
Generate a certificate for the local domains and create the secret that the Helm chart expects.
**Make sure to put these certificates under /local/certs. The easies way to accomplish this is to run the previous comppand inside the /local/ directory.**
66
-
67
-
### Step 3: Launch the Services
68
-
69
-
Now you are ready to start all the services. Navigate to the root of the project directory in your terminal and run:
70
-
45
+
Or simply run:
71
46
```bash
72
-
docker-compose up --build -d
47
+
just local-tls
73
48
```
74
49
75
-
* `--build`: This flag tells Docker Compose to build the application images (for Marimo and Quarto) from their `Dockerfile`s before starting the services. You should use this the first time you run the command or after you've made changes to the application code.
76
-
* `-d`: This runs the containers in "detached" mode, meaning they will run in the background and your terminal will be free to use.
77
-
78
-
**Note:** The first time you run this, Zitadel will be initialized but the database will be empty. You can log in as an admin using:
After logging in, create a new project (e.g., "Protected Apps"). Then, create a new app with type **Web**, authentication method **Code**, and add the following redirect URIs:
50
+
## 4) Build local container images
84
51
85
-
- `https://marimo.local.dev/oauth2/callback`
86
-
- `https://quarto.local.dev/oauth2/callback`
52
+
The Helm chart references three application images. For local development the pull policy is set to `Never`, so the images must exist in your local Docker/containerd cache:
When the project is created, Zitadel will display a client ID and secret. Copy these and set them in your `.env` file under `/local/`:
60
+
## 5) Fill in secrets and local values
94
61
95
-
```
96
-
OIDC_CLIENT_ID=your-client-id
97
-
OIDC_CLIENT_SECRET=your-client-secret
98
-
```
62
+
Update `kubernetes/srdp-chart/values-local.yaml` before installing:
63
+
- set your own Zitadel master key, DB passwords, OAuth2 client values, and cookie secret
64
+
- keep `custom-ingress-cert` (created above) or point to another TLS secret if you prefer.
99
65
100
-
After updating the `.env` file, run:
66
+
## 6) Install the chart locally
101
67
102
68
```bash
103
-
docker compose up --force-recreate
69
+
cd kubernetes/srdp-chart
70
+
helm dependency update
71
+
helm upgrade --install srdp . \
72
+
--namespace srdp --create-namespace \
73
+
-f values.yaml \
74
+
-f values-local.yaml
104
75
```
105
76
106
-
OR
107
-
77
+
Or simply run:
108
78
```bash
109
-
docker compose down
110
-
docker compose up --build
79
+
just local-deploy
111
80
```
112
81
113
-
**Important:** Do **not** run `docker compose down -v`, as the `-v` option will destroy existing data, including the project and app you created in Zitadel.
82
+
To re-run with updated values, run the same `helm upgrade` command (or `just local-deploy`).
114
83
84
+
The chart deploys the full stack: Traefik, PostgreSQL (in-cluster via Bitnami Helm chart), Zitadel, OAuth2-Proxy, Dagster (webserver + daemon + user code), Marimo, and Quarto. PostgreSQL hosts both the `zitadel` and `dagster` databases, created automatically via `zitadel-db.primary.initdb.scripts`.
115
85
**Congratulations! The local environment should now be up and running.** Proceed to the next section, **Usage & Verification**, to confirm that everything is working correctly.
Copy file name to clipboardExpand all lines: docs/03-usage.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,30 @@ icon: lucide/circle-play
5
5
6
6
# Usage & Verification
7
7
8
+
### Check the release
9
+
-`helm list -n srdp`
10
+
-`kubectl get pods,svc,ing -n srdp`
11
+
12
+
### Access services
13
+
- Marimo: `https://marimo.local.dev`
14
+
- Quarto: `https://quarto.local.dev`
15
+
- Dagster: `https://dagster.local.dev`
16
+
- Zitadel: `https://auth.local.dev`
17
+
- Traefik dashboard (if enabled in values): `http://localhost:8080`
18
+
19
+
All apps (Marimo, Quarto, Dagster) are protected behind OAuth2-Proxy. Accessing any of them will redirect to Zitadel for OIDC login before granting access.
20
+
21
+
### Update or remove the release
22
+
- Re-apply updated values: rerun the `helm upgrade --install ...` command from [02-configuration.md](./02-configuration.md) (or `just local-deploy`).
0 commit comments