diff --git a/.env.prod.example b/.env.prod.example new file mode 100644 index 0000000000000000000000000000000000000000..75a375e5d56b795552299b94aa4d3ae6106443b7 --- /dev/null +++ b/.env.prod.example @@ -0,0 +1,15 @@ +# example .env file for docker-compose.prod.yml + +DB_USER=postgres +DB_PASSWORD=postgrespassword +DB_DATABASE=postgres +HASURA_LISTEN_PORT=8888 +HASURA_GRAPHQL_ADMIN_SECRET=hasura_admin_secret +KUBO_GATEWAY_PORT=8080 +KUBO_DOMAIN=datapod.coinduf.eu +KUBO_WEBSOCKET_DOMAIN=websocket.datapod.coinduf.eu +KUBO_GATEWAY_DOMAIN=gateway.datapod.coinduf.eu +KUBO_GATEWAY_SUBDOMAIN=pagu.re + +# configure the node boot +DATAPOD_BOOT=bafyreih4jspnqnsd4o3sdqv7c765uyylhtlh5majjw6aq6clilkq7tmqey \ No newline at end of file diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 452aa5603958595a8a1663c4522f29106f23122f..def34aea7a68384887e41142ced1d7775b9be4e0 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -8,11 +8,11 @@ services: volumes: - db_data:/var/lib/postgresql/data environment: - POSTGRES_USER: ${DB_USER:-postgres} - POSTGRES_PASSWORD: ${DB_PASSWORD:-postgrespassword} - POSTGRES_DB: ${DB_DATABASE:-postgres} + POSTGRES_USER: ${DB_USER} + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_DB: ${DB_DATABASE} healthcheck: - test: ['CMD-SHELL', 'pg_isready -U postgres -d postgres'] + test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d postgres"] interval: 1s # ------ @@ -23,14 +23,14 @@ services: condition: service_healthy restart: always ports: - - '${HASURA_LISTEN_PORT:-8765}:8080' + - "127.0.0.1:${HASURA_LISTEN_PORT}:8080" environment: - HASURA_GRAPHQL_DATABASE_URL: postgres://${DB_USER:-postgres}:${DB_PASSWORD:-postgrespassword}@postgres:5432/${DB_DATABASE:-postgres} + HASURA_GRAPHQL_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_DATABASE} HASURA_GRAPHQL_ENABLE_CONSOLE: true HASURA_GRAPHQL_DEV_MODE: false HASURA_GRAPHQL_UNAUTHORIZED_ROLE: public HASURA_GRAPHQL_ENABLE_TELEMETRY: false - HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-my_hasura_secret} + HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET} # ------ kubo: @@ -39,8 +39,11 @@ services: # p2p port public - 4001:4001 - 4001:4001/udp + # p2p through websocket + - 127.0.0.1:4002:4002 # public gateway - - ${KUBO_GATEWAY_PORT:-8080}:8080 + - 127.0.0.1:${KUBO_GATEWAY_PORT}:8080 + - "[::1]:${KUBO_GATEWAY_PORT}:8080" # expose RPC locally to allow access with ssh tunnel - 127.0.0.1:5001:5001 volumes: @@ -48,10 +51,10 @@ services: # optional volume if you want to persist the configuration script in order to change it # - kubo_init:/container-init.d environment: - KUBO_DOMAIN: 'datapod.coinduf.eu' - KUBO_WEBSOCKET_DOMAIN: 'websocket.datapod.coinduf.eu' - KUBO_GATEWAY_DOMAIN: 'gateway.datapod.coinduf.eu' - KUBO_GATEWAY_SUBDOMAIN: 'subgateway.datapod.coinduf.eu' + KUBO_DOMAIN: ${KUBO_DOMAIN} + KUBO_WEBSOCKET_DOMAIN: ${KUBO_WEBSOCKET_DOMAIN} + KUBO_GATEWAY_DOMAIN: ${KUBO_GATEWAY_DOMAIN} + KUBO_GATEWAY_SUBDOMAIN: ${KUBO_GATEWAY_SUBDOMAIN} restart: always # ------ @@ -62,8 +65,8 @@ services: depends_on: kubo: condition: service_healthy - entrypoint: 'ipfs' - command: ['--api=/dns/kubo/tcp/5001', 'pubsub', 'sub', 'ddd'] + entrypoint: "ipfs" + command: ["--api=/dns/kubo/tcp/5001", "pubsub", "sub", "ddd"] # ------ datapod: @@ -74,14 +77,14 @@ services: kubo: condition: service_healthy environment: - KUBO_RPC: 'http://kubo:5001' + KUBO_RPC: "http://kubo:5001" DB_HOST: postgres DB_PORT: 5432 - DB_USER: ${DB_USER:-postgres} - DB_PASSWORD: ${DB_PASSWORD:-postgrespassword} + DB_USER: ${DB_USER} + DB_PASSWORD: ${DB_PASSWORD} restart: always # use the datapod collector and indexer, start using given IPNS entry - command: ['./src/indexer/start.ts', '/ipns/k51qzi5uqu5dieiax3cwjph3w0ijvgaoiowclruxcrrt7k171e1ik855or2b37'] + command: ["./src/indexer/start.ts", "${DATAPOD_BOOT}"] volumes: db_data: