make project dir
mkdir sample
open vscode
code sample
make docker-compose.yml
docker-compose.yml
```
version: "3"
services:
app:
image: node
volumes:
- .:/app
working_dir: /app
depends_on:
- elasticsearch
tty: true
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
environment:
- discovery.type=single-node
ports:
- 9200:9200
expose:
- 9300
kibana:
image: docker.elastic.co/kibana/kibana:7.7.0
ports:
- 5601:5601
```
npm init
sudo docker-compose run -u (id -u $USER):(id -g $USER) app npm init -y
npm install
sudo docker-compose run -u (id -u $USER):(id -g $USER) app npm install -D typescript ts-node
tsc init
sudo docker-compose run -u (id -u $USER):(id -g $USER) app npx tsc --init --target ES2020
npm install
sudo docker-compose run -u (id -u $USER):(id -g $USER) app npm install --save @elastic/elasticsearch
create index.ts file
index.ts
```
import { Client } from "@elastic/elasticsearch";
(async () => {
const client = new Client({ node: "http://elasticsearch:9200" });
await client.index({
index: "game-of-thrones",
body: {
character: "Ned Stark",
quote: "hello",
},
});
})();
```
- edit package.json file
package.json
```
+"start": "ts-node index.ts",
```
docker-compose up
sudo docker-compose up -d
npm start
sudo docker-compose exec app npm start
open kibana
create index pattern
discover index