|
3 | 3 | A universal metrics layer for consistent metrics across your data stack. Compatible with 15+ semantic model formats. |
4 | 4 |
|
5 | 5 | - **Supported Formats:** Sidemantic (YAML, Python or SQL), Cube, dbt MetricFlow, LookML, Hex, Rill, Superset, Omni, BSL, GoodData LDM, Snowflake Cortex, Malloy, OSI, AtScale SML, ThoughtSpot TML |
6 | | -- **Databases:** DuckDB, MotherDuck, PostgreSQL, BigQuery, Snowflake, ClickHouse, Databricks, Spark SQL, ADBC |
| 6 | +- **Databases:** DuckDB, MotherDuck, PostgreSQL, BigQuery, Snowflake, ClickHouse, Databricks, Spark SQL (also via ADBC) |
7 | 7 |
|
8 | 8 | [Documentation](https://sidemantic.com) | [GitHub](https://github.com/sidequery/sidemantic) | [Discord](https://discord.com/invite/7MZ4UgSVvF) | [Demo](https://sidemantic.com/demo) (50+ MB data download, runs in your browser with Pyodide + DuckDB) |
9 | 9 |
|
@@ -252,74 +252,19 @@ load_from_directory(layer, "my_models/") # Auto-detects formats |
252 | 252 |
|
253 | 253 | ## Docker |
254 | 254 |
|
255 | | -Build the image (includes all database drivers, PG server, and MCP server): |
| 255 | +The published image is [`sidequery/sidemantic`](https://hub.docker.com/r/sidequery/sidemantic) on Docker Hub. Mount your models directory as a volume at `/app/models`: |
256 | 256 |
|
257 | 257 | ```bash |
258 | | -docker build -t sidemantic . |
| 258 | +docker run -p 5433:5433 -v ./models:/app/models sidequery/sidemantic |
259 | 259 | ``` |
260 | 260 |
|
261 | | -### PostgreSQL server (default) |
262 | | - |
263 | | -Mount your models directory and expose port 5433: |
264 | | - |
265 | | -```bash |
266 | | -docker run -p 5433:5433 -v ./models:/app/models sidemantic |
267 | | -``` |
268 | | - |
269 | | -Connect with any PostgreSQL client: |
270 | | - |
271 | | -```bash |
272 | | -psql -h localhost -p 5433 -U any -d sidemantic |
273 | | -``` |
274 | | - |
275 | | -With a backend database connection: |
| 261 | +Demo mode (built-in sample data, no volume needed): |
276 | 262 |
|
277 | 263 | ```bash |
278 | | -docker run -p 5433:5433 \ |
279 | | - -v ./models:/app/models \ |
280 | | - -e SIDEMANTIC_CONNECTION="postgres://user:pass@host:5432/db" \ |
281 | | - sidemantic |
| 264 | +docker run -p 5433:5433 sidequery/sidemantic --demo |
282 | 265 | ``` |
283 | 266 |
|
284 | | -### MCP server |
285 | | - |
286 | | -```bash |
287 | | -docker run -v ./models:/app/models -e SIDEMANTIC_MODE=mcp sidemantic |
288 | | -``` |
289 | | - |
290 | | -### Both servers simultaneously |
291 | | - |
292 | | -Runs the PG server in the background and MCP on stdio: |
293 | | - |
294 | | -```bash |
295 | | -docker run -p 5433:5433 -v ./models:/app/models -e SIDEMANTIC_MODE=both sidemantic |
296 | | -``` |
297 | | - |
298 | | -### Demo mode |
299 | | - |
300 | | -```bash |
301 | | -docker run -p 5433:5433 sidemantic --demo |
302 | | -``` |
303 | | - |
304 | | -### Baking models into the image |
305 | | - |
306 | | -Create a `Dockerfile` that copies your models at build time: |
307 | | - |
308 | | -```dockerfile |
309 | | -FROM sidemantic |
310 | | -COPY my_models/ /app/models/ |
311 | | -``` |
312 | | - |
313 | | -### Environment variables |
314 | | - |
315 | | -| Variable | Description | |
316 | | -|----------|-------------| |
317 | | -| `SIDEMANTIC_MODE` | `serve` (default), `mcp`, or `both` | |
318 | | -| `SIDEMANTIC_CONNECTION` | Database connection string | |
319 | | -| `SIDEMANTIC_DB` | Path to DuckDB file (inside container) | |
320 | | -| `SIDEMANTIC_USERNAME` | PG server auth username | |
321 | | -| `SIDEMANTIC_PASSWORD` | PG server auth password | |
322 | | -| `SIDEMANTIC_PORT` | PG server port (default 5433) | |
| 267 | +See [`examples/docker/`](examples/docker/) for MCP mode, env vars, building from source, and integration test services. |
323 | 268 |
|
324 | 269 | ## Testing |
325 | 270 |
|
|
0 commit comments