Skip to content
This repository was archived by the owner on Nov 7, 2025. It is now read-only.

Commit ad9b27c

Browse files
authored
Add Quesma starter example (#1438)
Simplest setup possible. `docker-compose up -d` and you're ready to go 🚀
1 parent a338674 commit ad9b27c

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Quesma "elasticsearch-to-clickhouse" starter
2+
============================================
3+
4+
This is a very simplistic Quesma setup to get you started.
5+
Quesma exposes Elasticsearch-compatible HTTP REST API at http://localhost:8080.
6+
You can view your data though Kibana at http://localhost:5601.
7+
8+
docker-compose file located in this folder creates four containers: Quesma, Elasticsearch, ClickHouse and Kibana.
9+
10+
Everything is stored in ClickHouse. No sample data sets are being loaded.
11+
12+
To run this example, simply execute:
13+
```shell
14+
docker-compose up -d
15+
```
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
frontendConnectors:
2+
- name: elastic-ingest
3+
type: elasticsearch-fe-ingest
4+
config:
5+
listenPort: 8080
6+
disableAuth: true
7+
- name: elastic-query
8+
type: elasticsearch-fe-query
9+
config:
10+
listenPort: 8080
11+
backendConnectors:
12+
- name: my-minimal-elasticsearch
13+
type: elasticsearch
14+
config:
15+
url: "http://elasticsearch:9200"
16+
adminUrl: "http://localhost:5601"
17+
- name: my-clickhouse-data-source
18+
type: clickhouse-os
19+
config:
20+
url: "clickhouse://clickhouse:9000"
21+
adminUrl: "http://localhost:8123/play"
22+
ingestStatistics: true
23+
processors:
24+
- name: my-query-processor
25+
type: quesma-v1-processor-query
26+
config:
27+
indexes:
28+
"*":
29+
useCommonTable: true
30+
target:
31+
- my-clickhouse-data-source
32+
- name: my-ingest-processor
33+
type: quesma-v1-processor-ingest
34+
config:
35+
indexes:
36+
"*":
37+
useCommonTable: true
38+
target:
39+
- my-clickhouse-data-source
40+
pipelines:
41+
- name: my-pipeline-elasticsearch-query-clickhouse
42+
frontendConnectors: [ elastic-query ]
43+
processors: [ my-query-processor ]
44+
backendConnectors: [ my-minimal-elasticsearch, my-clickhouse-data-source ]
45+
- name: my-pipeline-elasticsearch-ingest-to-clickhouse
46+
frontendConnectors: [ elastic-ingest ]
47+
processors: [ my-ingest-processor ]
48+
backendConnectors: [ my-minimal-elasticsearch, my-clickhouse-data-source ]
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
services:
2+
quesma:
3+
image: quesma/quesma:latest
4+
environment:
5+
- QUESMA_elasticsearch_url=http://elasticsearch:9200
6+
- QUESMA_port=8080
7+
- QUESMA_CONFIG_FILE=/config/starter-config.yml
8+
depends_on:
9+
elasticsearch:
10+
condition: service_healthy
11+
ports:
12+
- "9999:9999"
13+
- "8080:8080"
14+
volumes:
15+
- ./config:/config
16+
deploy:
17+
resources:
18+
limits:
19+
memory: 512M
20+
restart: unless-stopped
21+
elasticsearch:
22+
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.1
23+
container_name: elasticsearch
24+
environment:
25+
- discovery.type=single-node
26+
- xpack.security.enabled=false
27+
- "ES_JAVA_OPTS=-Xmx2G"
28+
ports:
29+
- "9201:9200"
30+
- "9300:9300"
31+
healthcheck:
32+
test: curl -s http://elasticsearch:9200 >/dev/null || exit 1
33+
start_period: 1m
34+
interval: 1s
35+
timeout: 1s
36+
deploy:
37+
resources:
38+
limits:
39+
memory: 4G
40+
kibana:
41+
image: docker.elastic.co/kibana/kibana:8.11.1
42+
environment:
43+
ELASTICSEARCH_HOSTS: '["http://quesma:8080"]'
44+
XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY: 'QUESMAQUESMAQUESMAQUESMAQUESMAQUESMAQUESMAQUESMA' # Just to get rid of annoying ERROR in logs
45+
depends_on:
46+
quesma:
47+
condition: service_healthy
48+
elasticsearch:
49+
condition: service_healthy
50+
ports:
51+
- "5601:5601"
52+
restart: unless-stopped
53+
healthcheck:
54+
test: "curl -s http://localhost:5601/api/status >/dev/null || exit 1"
55+
start_period: 2m
56+
interval: 1s
57+
timeout: 1s
58+
# volumes:
59+
# - ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
60+
clickhouse:
61+
# user: 'default', no password
62+
image: clickhouse/clickhouse-server:24.5.3.5-alpine
63+
ports:
64+
- "8123:8123"
65+
- "9000:9000"
66+
healthcheck:
67+
test: wget --no-verbose --tries=1 --spider http://clickhouse:8123/ping || exit 1
68+
interval: 1s
69+
timeout: 1s
70+
start_period: 1m

0 commit comments

Comments
 (0)