Skip to content

Commit 6341954

Browse files
authored
Merge pull request #30 from classic-terra/main
Ad-hoc QOL updates
2 parents f0654a1 + aac3ec0 commit 6341954

15 files changed

+295
-7080
lines changed

.envrc_sample

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# There are many ways to manage TypeORM configurations.
22
# Reference: https://github.com/typeorm/typeorm/blob/master/docs/using-ormconfig.md
33
export TYPEORM_CONNECTION=postgres
4-
export TYPEORM_HOST=localhost
4+
export TYPEORM_HOST=database
55
export TYPEORM_USERNAME=terra
66
export TYPEORM_PASSWORD=terra
77
export TYPEORM_DATABASE=terra_fcd
@@ -11,10 +11,10 @@ export TYPEORM_LOGGING=false
1111
export TYPEORM_ENTITIES=src/orm/*Entity.ts
1212
export TYPEORM_MIGRATIONS=src/orm/migration/*.ts
1313

14-
export SERVER_PORT=3060
15-
export CHAIN_ID=tequila-0004
16-
export LCD_URI=https://tequila-lcd.terra.dev
17-
export FCD_URI=https://tequila-fcd.terra.dev
18-
export RPC_URI=
19-
export SENTRY_DSN=
20-
#export USE_LOG_FILE=true
14+
export INDEXER_SERVER_PORT=3060
15+
export INDEXER_CHAIN_ID=columbus-5
16+
export INDEXER_LCD_URI=https://columbus-lcd.terra.dev
17+
export INDEXER_FCD_URI=https://columbus-fcd.terra.dev
18+
export INDEXER_RPC_URI=http://public-node.terra.dev:26657
19+
export INDEXER_SENTRY_DSN=
20+
#export INDEXER_USE_LOG_FILE=true

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ RUN apk add --no-cache tzdata
1111

1212
WORKDIR /app
1313

14-
COPY --from=builder /app/entrypoint.sh /app/package.json /app/package-lock.json /app/tsconfig.json ./
14+
COPY --from=builder /app/scripts/entrypoint.sh /app/package.json /app/package-lock.json /app/tsconfig.json ./
1515
COPY --from=builder /app/node_modules/ ./node_modules/
1616
COPY --from=builder /app/apidoc-template/ ./apidoc-template/
1717
COPY --from=builder /app/src/ ./src/

Dockerfile.terraclassic.indexer-api

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
ARG base_image=terraclassic.indexer
2+
ARG version=latest
3+
4+
FROM ${base_image}:${version}
5+
6+
ARG indexer_chain_id=columbus-5
7+
ARG indexer_initial_height=4724001
8+
ARG indexer_lcd_uri=https://columbus-lcd.terra.dev
9+
ARG indexer_rpc_uri=http://public-node.terra.dev:26657
10+
ARG indexer_use_log_file=false
11+
ARG indexer_server_port=3060
12+
ARG indexer_disable_api=false
13+
ARG indexer_token_network=mainnet
14+
15+
ENV INDEXER_CHAIN_ID ${indexer_chain_id}
16+
ENV INDEXER_INITIAL_HEIGHT ${indexer_initial_height}
17+
ENV INDEXER_LCD_URI ${indexer_lcd_uri}
18+
ENV INDEXER_FCD_URI ${indexer_fcd_uri}
19+
ENV INDEXER_RPC_URI ${indexer_rpc_uri}
20+
ENV INDEXER_USE_LOG_FILE ${indexer_use_log_file}
21+
ENV INDEXER_SERVER_PORT ${indexer_server_port}
22+
ENV INDEXER_DISABLE_API ${indexer_disable_api}
23+
ENV INDEXER_TOKEN_NETWORK ${indexer_token_network}
24+
25+
CMD [ "dev" ]
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
ARG base_image=terraclassic.indexer
2+
ARG version=latest
3+
4+
FROM ${base_image}:${version}
5+
6+
ARG indexer_chain_id=columbus-5
7+
ARG indexer_initial_height=4724001
8+
ARG indexer_lcd_uri=https://lcd.terra.dev
9+
ARG indexer_rpc_uri=http://public-node.terra.dev:26657
10+
ARG indexer_use_log_file=false
11+
12+
ENV INDEXER_CHAIN_ID ${indexer_chain_id}
13+
ENV INDEXER_INITIAL_HEIGHT ${indexer_initial_height}
14+
ENV INDEXER_LCD_URI ${indexer_lcd_uri}
15+
ENV INDEXER_RPC_URI ${indexer_rpc_uri}
16+
ENV INDEXER_USE_LOG_FILE ${indexer_use_log_file}
17+
18+
CMD [ "coldev" ]

README.md

+16-16
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ FCD requires PostgreSQL as a backend database and [TypeORM](https://github.com/t
3939
#### Create a new database for FCD
4040

4141
```psql
42-
postgres=> CREATE DATABASED fcd OWNER terra;
42+
postgres=> CREATE DATABASE terra_fcd OWNER terra;
4343
```
4444

4545
#### Synchronize Database Scheme
@@ -53,7 +53,7 @@ module.exports = {
5353
name: 'default',
5454
type: 'postgres',
5555
host: 'localhost',
56-
database: 'fcd',
56+
database: 'terra_fcd',
5757
username: 'terra',
5858
password: '<password>',
5959
synchronize: true
@@ -64,20 +64,20 @@ module.exports = {
6464
6565
### 4. Configure Environment Variables
6666

67-
| Name | Description | Default | Module(s) |
68-
| ------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------- |
69-
| CHAIN_ID | Chain ID of Terra network | bombay-12 | API, Collector |
70-
| INITIAL_HEIGHT | The initial height of network. (Define 4724001 for Columbus-5) | | Collector |
71-
| LCD_URI | LCD URI for Terra network | https://bombay-lcd.terra.dev | API, Collector |
72-
| RPC_URI | RPC URI for Terra network | _required:_ http://x.x.x.x:26657 | API, Collector |
73-
| USE_LOG_FILE | Write logs to logs directory | false | API, Collector |
74-
| SENTRY_DSN | Sentry DSN for error management (optional) | | API, Collector |
75-
| SERVER_PORT | Listening port for API server | 3060 | API |
76-
| FCD_URI | FCD URI for Terra network | https://bombay-fcd.terra.dev | API |
77-
| DISABLE_API | Disable REST APIs | false | API |
78-
| EXCLUDED_ROUTES | List of regular expression string for excluding routes | [] | API |
79-
| MIN_GAS_PRICES | Minimum gas price by denom object | {"uluna": "5.0"} | API |
80-
| TOKEN_NETWORK | Network specifier for whitelisted tokens | _required:_ mainnet / testnet | API |
67+
| Name | Description | Default | Module(s) | Required |
68+
| ----------------------- | -------------------------------------------| -------------------------------- | -------------- | -------- |
69+
| INDEXER_CHAIN_ID | Chain ID of Terra network. | columbus-5 | API, Collector | Yes |
70+
| INDEXER_INITIAL_HEIGHT | The initial height of network. | 4724001 (if columbus-5) | Collector | Yes |
71+
| INDEXER_LCD_URI | LCD URI for Terra network. | https://columbus-lcd.terra.dev | API, Collector | Yes |
72+
| INDEXER_RPC_URI | RPC URI for Terra network. | http://localhost:26657 | API, Collector | Yes |
73+
| INDEXER_USE_LOG_FILE | Write logs to logs directory. | false | API, Collector | Yes |
74+
| INDEXER_SENTRY_DSN | Sentry DSN for error management. | "" | API, Collector | No |
75+
| INDEXER_SERVER_PORT | Listening port for API server. | 3060 | API | Yes |
76+
| INDEXER_FCD_URI | FCD URI for Terra network. | https://columbus-fcd.terra.dev | API | Yes |
77+
| INDEXER_DISABLE_API | Disable REST APIs. | false | API | Yes |
78+
| INDEXER_EXCLUDED_ROUTES | List of regex strings for excluding routes | [] | API | No |
79+
| INDEXER_MIN_GAS_PRICES | Minimum gas price by denom object | {"uluna": "5.0"} | API | Yes |
80+
| INDEXER_TOKEN_NETWORK | Network specifier for whitelisted tokens | mainnet / testnet | API | Yes |
8181

8282
> In Terra, we use [direnv](https://direnv.net) for managing environment variable for development. See [sample of .envrc](.envrc_sample)
8383

docker-compose/README.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Using `docker-compose` (Recommended)
2+
3+
1. Install Docker
4+
5+
- [Docker Install documentation](https://docs.docker.com/install/)
6+
- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/)
7+
8+
2. Create a new folder on your local machine and copy docker-compose\docker-compose.yml
9+
10+
3. Review the docker-compose.yml contents
11+
12+
4. Bring up your stack by running
13+
14+
```bash
15+
docker-compose up -d
16+
```
17+
18+
# Cheat Sheet:
19+
20+
## Start
21+
22+
```bash
23+
docker-compose up -d
24+
```
25+
26+
# Stop
27+
28+
```bash
29+
docker-compose stop
30+
```
31+
32+
# Clean
33+
34+
```bash
35+
docker-compose down
36+
```
37+
38+
# View Logs
39+
40+
```bash
41+
docker-compose logs -f
42+
```
43+
44+
# Upgrade
45+
46+
```bash
47+
docker-compose down
48+
docker-compose pull
49+
docker-compose up -d
50+
```
51+
52+
# Build from source
53+
54+
```
55+
docker-compose -f docker-compose.yml -f docker-compose.build.yml build --no-cache
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: '3.8'
2+
3+
services:
4+
indexer:
5+
image: terraclassic.indexer
6+
build:
7+
context: ../
8+
dockerfile: Dockerfile
9+
labels:
10+
- "terraclassic.indexer.description=Contains everything needed to run the FCD application"
11+
indexer-collector:
12+
image: terraclassic.indexer-collector
13+
build:
14+
context: ../
15+
dockerfile: Dockerfile.terraclassic.indexer-collector
16+
args:
17+
base_image: terraclassic.indexer
18+
labels:
19+
- "terraclassic.indexer-collector.description=Contains everything needed to run the FCD collector"
20+
indexer-api:
21+
image: terraclassic.indexer-api
22+
build:
23+
context: ../
24+
dockerfile: Dockerfile.terraclassic.indexer-api
25+
args:
26+
base_image: terraclassic.indexer
27+
labels:
28+
- "terraclassic.indexer-api.description=Contains everything needed to run the FCD API"

docker-compose/docker-compose.yml

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
version: '3.8'
2+
3+
services:
4+
database:
5+
container_name: database
6+
image: postgres:latest
7+
ports:
8+
- "5432:5432"
9+
environment:
10+
- "POSTGRES_USER=terra"
11+
- "POSTGRES_PASSWORD=terra"
12+
- "POSTGRES_DB=terra_fcd"
13+
networks:
14+
- terra-classic
15+
indexer-collector:
16+
#Enable this image if you want to use the docker-compose CLI to build from the local typescript source
17+
image: terraclassic.indexer-collector
18+
#Enable this image if you want to target columbus-5
19+
#image: terrarebels/terraclassic.indexer-collector:latest-columbus-5
20+
#Enable this image if you want to target rebel-1
21+
#image: terrarebels/terraclassic.indexer-collector:latest-rebel-1
22+
command: coldev
23+
environment:
24+
- "INDEXER_CHAIN_ID=columbus-5"
25+
- "INDEXER_INITIAL_HEIGHT=4724001"
26+
- "INDEXER_LCD_URI=https://columbus-lcd.terra.dev"
27+
- "INDEXER_RPC_URI=http://public-node.terra.dev:26657"
28+
- "INDEXER_USE_LOG_FILE=false"
29+
restart: always
30+
networks:
31+
- terra-classic
32+
indexer-api:
33+
#Enable this image if you want to use the docker-compose CLI to build from the local typescript source
34+
image: terraclassic.indexer-api
35+
#Enable this image if you want to target columbus-5
36+
#image: terrarebels/terraclassic.indexer-api:latest-columbus-5
37+
#Enable this image if you want to target rebel-1
38+
#image: terrarebels/terraclassic.indexer-api:latest-rebel-1
39+
command: dev
40+
environment:
41+
- "INDEXER_CHAIN_ID=columbus-5"
42+
- "INDEXER_INITIAL_HEIGHT=4724001"
43+
- "INDEXER_LCD_URI=https://columbus-lcd.terra.dev"
44+
- "INDEXER_RPC_URI=http://public-node.terra.dev:26657"
45+
- "INDEXER_USE_LOG_FILE=false"
46+
- "INDEXER_SERVER_PORT=3060"
47+
- "INDEXER_DISABLE_API=false"
48+
- "INDEXER_TOKEN_NETWORK=mainnet"
49+
restart: always
50+
ports:
51+
- "3060:3060"
52+
networks:
53+
- terra-classic
54+
55+
networks:
56+
terra-classic:
57+
driver: bridge

0 commit comments

Comments
 (0)