From 859c0d6ebab44ce0645fe32ea14831cb54810bf7 Mon Sep 17 00:00:00 2001
From: Hugo Trentesaux <hugo@trentesaux.fr>
Date: Tue, 16 Apr 2024 20:43:59 +0200
Subject: [PATCH] wip autoconfigure kubo

---
 .env.example                        |  2 ++
 Dockerfile.Kubo                     |  2 +-
 docker-compose.prod.yml             |  7 +++----
 scripts/configure.sh                | 13 +++++++++++++
 scripts/remove-default-bootstrap.sh |  3 ---
 5 files changed, 19 insertions(+), 8 deletions(-)
 create mode 100644 scripts/configure.sh
 delete mode 100644 scripts/remove-default-bootstrap.sh

diff --git a/.env.example b/.env.example
index 9b74d2c..b2f91e9 100644
--- a/.env.example
+++ b/.env.example
@@ -1,5 +1,7 @@
 # === IPFS ===
 KUBO_RPC="http://127.0.0.1:5001"
+KUBO_GATEWAY_PORT=8080
+KUBO_GATEWAY_DOMAIN="localhost"
 
 # === POSTGRES ===
 DB_HOST=localhost
diff --git a/Dockerfile.Kubo b/Dockerfile.Kubo
index 4cb3d2e..91317d7 100644
--- a/Dockerfile.Kubo
+++ b/Dockerfile.Kubo
@@ -1,5 +1,5 @@
 FROM ipfs/kubo:v0.28.0
-COPY ./scripts/remove-default-bootstrap.sh /container-init.d/001-remove-default-bootstrap.sh
+COPY ./scripts/configure.sh /container-init.d/001-configure.sh
 CMD ["daemon", "--enable-pubsub-experiment"]
 # docker buildx build -f Dockerfile.Kubo . -t h30x/datapod-kubo
 # docker image push h30x/datapod-kubo
\ No newline at end of file
diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml
index fd55b8f..5c82ef2 100644
--- a/docker-compose.prod.yml
+++ b/docker-compose.prod.yml
@@ -40,14 +40,13 @@ services:
       - 4001:4001
       - 4001:4001/udp
       # public gateway
-      - 8080:8080
+      - ${KUBO_GATEWAY_PORT:-8080}:8080
       # expose RPC locally to allow access with ssh tunnel
       - 127.0.0.1:5001:5001
     volumes:
       - kubo_data:/data/ipfs
-    healthcheck:
-      test: ['CMD', 'ipfs', 'diag', 'cmds']
-      interval: 1s
+    environment:
+      KUBO_GATEWAY_DOMAIN: "gateway.datapod.coinduf.eu"
     restart: always
 
   # ------
diff --git a/scripts/configure.sh b/scripts/configure.sh
new file mode 100644
index 0000000..ef590d3
--- /dev/null
+++ b/scripts/configure.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+set -ex
+# remove default bootstrap nodes
+ipfs bootstrap rm all
+# prevent gateway from fetching foreign data
+ipfs config Gateway.NoFetch --json true
+# only reprovide pinned data
+ipfs config Reprovider.Strategy "pinned"
+# allow to expose hostname
+ipfs config Gateway.PublicGateways --json "{\"$KUBO_GATEWAY_DOMAIN\":{\"UseSubdomains\": true,\"Paths\":[\"/ipfs\"]}}"
+
+
+
diff --git a/scripts/remove-default-bootstrap.sh b/scripts/remove-default-bootstrap.sh
deleted file mode 100644
index bb0cc11..0000000
--- a/scripts/remove-default-bootstrap.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-set -ex
-ipfs bootstrap rm all
-- 
GitLab