3ca98b9
commit 3ca98b9
2 files changed
+27 -0
Showing 2 changed files+27-0
▼.github/workflows/ci.yml
+14-0
| @@ -95,3 +95,17 @@ jobs: | ||
95 | 95 | name: web-dashboard |
96 | 96 | path: web/dist |
97 | 97 | if-no-files-found: error |
98 | + | |
99 | + docker: | |
100 | + name: Docker images | |
101 | + runs-on: ubuntu-latest | |
102 | + timeout-minutes: 25 | |
103 | + steps: | |
104 | + - uses: actions/checkout@v4 | |
105 | + | |
106 | + - name: Build collector image | |
107 | + run: docker build -f docker/Dockerfile.collector -t eu-air-traffic-collector:ci . | |
108 | + | |
109 | + - name: Build lake image | |
110 | + run: docker build -f docker/lake-job.Dockerfile -t eu-air-traffic-lake:ci . | |
111 | + | |
98 | 112 | |
▼README.md
+13-0
| @@ -145,6 +145,19 @@ Tuning knobs (defaults are safe): `POSITIONS_INTERVAL_SECONDS=15`, | ||
145 | 145 | - **Anywhere else:** `docker/lake-job.Dockerfile` + `scripts/run_lake.sh` runs one |
146 | 146 | full cycle in a container (set `HF_SYNC=0` when the dataset is mounted). |
147 | 147 | |
148 | +### Deploy with Docker (one command) | |
149 | + | |
150 | +```bash | |
151 | +cp .env.example .env # fill in your credentials | |
152 | +./deploy.sh # collector + lake; add --tls to put Caddy in front | |
153 | +``` | |
154 | + | |
155 | +`docker-compose.yml` wires the collector (live API on `:8090`, healthchecked), | |
156 | +the lake cycle on a timer — sharing the same `.env` and DuckDB state — and an | |
157 | +optional Caddy TLS front via `SITE_ADDRESS`. `./deploy.sh --logs`, `--ps` and | |
158 | +`--down` manage the stack. No local Kafka is needed: point `.env` at Aiven (or | |
159 | +any broker) and the containers connect out. | |
160 | + | |
148 | 161 | ## Reliability engineering — what broke and what it taught |
149 | 162 | |
150 | 163 | This platform runs unattended on free infrastructure. The interesting engineering |
151 | 164 | |