open-dollar / od-subgraph

2 stars 0 forks source link

Indexer deployment #6

Closed pi0neerpat closed 9 months ago

pi0neerpat commented 9 months ago
jahabeebs commented 9 months ago
  • [ ] Create a render.com postgres database

    • [ ] Get the IPFS pinning endpoint from Patrick

    • [ ] Deploy the indexer docker

    • [ ] Configure DNS subgraph.opendollar.com

      • Playground
      • Query endpoint

@pi0neerpat I saw in render that it will detect you have a dockerfile in the root so what do you think if I do the following:

1) change our docker-compose.yml to have .env variables for the network type (mainnet/arbitrum-sepolia), RPC URL, and postgres DB connection string, and IPFS pinning endpoint (which you can DM me) 2) after merging the changes above I should be able to create a .env in render and it should deploy the docker file successfully 3) set up dns

pi0neerpat commented 9 months ago

Sounds like a good plan. Please complete a tutorial on how to deploy using docker-compose, or directly from dockerfile if you'd rather that that approach.

jahabeebs commented 9 months ago

Sounds like a good plan. Please complete a tutorial on how to deploy using docker-compose, or directly from dockerfile if you'd rather that that approach.

@pi0neerpat

while trying to deploy I found that render doesn't have support for docker compose https://community.render.com/t/can-i-use-docker-compose/58/7

this makes things a bit trickier because we'll have to split all our docker compose services into dockerfiles (one for graph node service, one for IPFS service, one for postgreSQL service), build those images separately and then create a render.yaml to bring these together

if our goal is to have a deployed playground pointed to our latest SDK version maybe it would be worth using the hosted service instead of trying to self-host? and then we just point our subgraph.opendollar subdomain to our organizational subgraph page on the graph's website?

https://thegraph.com/docs/en/network/benefits/

jahabeebs commented 9 months ago
  • [ ] Create a render.com postgres database

    • [ ] Get the IPFS pinning endpoint from Patrick

    • [ ] Deploy the indexer docker

    • [ ] Configure DNS subgraph.opendollar.com

      • Playground
      • Query endpoint

@pi0neerpat I've created the following services to render in the od-subgraph-indexer project and configured them:

Why db a web service

I had to create a postgres DB from a Docker image rather than from the standard db option that render provides because graphprotocol/graph-node requires certain custom properties for our db that the standard db option does not allow. specifically, these variables:

PGDATA: "/var/lib/postgresql/data"
POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C"

There's no way to customize the arguments during the standard db creation process, or even after it's created

db configured

in the logs we can see both the IPFS and postgres connections were successful and our service is now indexing

Screenshot 2023-12-06 at 3 24 03 PM
pi0neerpat commented 9 months ago

Great work! My only question is whether our db will be persistent? If so, you can close this issue

jahabeebs commented 9 months ago

Great work! My only question is whether our db will be persistent? If so, you can close this issue

yes I've set up a 5GB disk for the deployment but we can raise the memory if this isn't enough