Skip to content
Snippets Groups Projects
Commit 01f12aad authored by Hugo Trentesaux's avatar Hugo Trentesaux
Browse files

WIP add back websocket support

and update versions
parent 0954733c
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,7 @@ HASURA_GRAPHQL_ADMIN_SECRET=hasura_admin_secret
# kubo configuration
KUBO_PORT=4001 # should be open to incoming connections
KUBO_DOMAIN=datapod.coinduf.eu # domain (used in p2p peering)
KUBO_WEBSOCKET_DOMAIN=websocket.datapod.coinduf.eu # p2p through websocket (not webtransport ou webrtc)
KUBO_GATEWAY_PORT=8080 # listen port of ipfs http gateway
KUBO_GATEWAY_DOMAIN=gateway.datapod.coinduf.eu # domain for kubo reverse proxy ipfs http gateway reverse proxy
KUBO_GATEWAY_SUBDOMAIN=pagu.re # domain for subdomain gateway (provides origin isolation but requires wildcard)
......
# websocket connection to p2p
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/letsencrypt/live/KUBO_WEBSOCKET_DOMAIN/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/KUBO_WEBSOCKET_DOMAIN/privkey.pem;
server_name KUBO_WEBSOCKET_DOMAIN;
access_log /var/log/nginx/KUBO_WEBSOCKET_DOMAIN_access.log;
error_log /var/log/nginx/KUBO_WEBSOCKET_DOMAIN_error.log;
# redirect to websocket
location / {
add_header X-Robots-Tag "noindex";
proxy_pass http://localhost:4002;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
\ No newline at end of file
# kubo config suited for datapod use
# TODO split gateway in another instance for performance and safeness and separation of concerns
FROM ipfs/kubo:v0.30.0
FROM ipfs/kubo:v0.32.1
COPY ./scripts/configure-keys.sh /container-init.d/001-configure.sh
COPY ./scripts/configure-addresses.sh /container-init.d/002-configure.sh
COPY ./scripts/configure-bootstrap.sh /container-init.d/003-configure.sh
......
# kubo config suited for unsafe remote RPC instance
FROM ipfs/kubo:v0.30.0
FROM ipfs/kubo:v0.32.1
COPY ./scripts/configure-addresses.sh /container-init.d/001-configure.sh
COPY ./scripts/configure-bootstrap.sh /container-init.d/002-configure.sh
COPY ./scripts/configure-peering.sh /container-init.d/003-configure.sh
......
......@@ -16,15 +16,15 @@ version_tag=$(grep -oP '"version": "\K[^"]+' ./package.json)
# docker image push h30x/duniter-datapod:latest
# # --- kubo
# docker buildx build -f ./docker/Dockerfile.Kubo -t datapod-kubo .
docker buildx build -f ./docker/Dockerfile.Kubo -t datapod-kubo .
# # Tag with version and 'latest'
# docker image tag datapod-kubo h30x/datapod-kubo:$version_tag
# docker image tag datapod-kubo h30x/datapod-kubo:latest
# Tag with version and 'latest'
docker image tag datapod-kubo h30x/datapod-kubo:$version_tag
docker image tag datapod-kubo h30x/datapod-kubo:latest
# # Push both
# docker image push h30x/datapod-kubo:$version_tag
# docker image push h30x/datapod-kubo:latest
# Push both
docker image push h30x/datapod-kubo:$version_tag
docker image push h30x/datapod-kubo:latest
# --- kubo-rpc
docker buildx build -f ./docker/Dockerfile.KuboRpc -t datapod-kubo-rpc .
......
......@@ -39,6 +39,9 @@ services:
# p2p port public (tcp, udp, webtransport, webrtc)
- ${KUBO_PORT}:4001/tcp
- ${KUBO_PORT}:4001/udp
# p2p through websocket
- 127.0.0.1:4002:4002
- '[::1]:4002:4002'
# public gateway
- 127.0.0.1:${KUBO_GATEWAY_PORT}:8080
- '[::1]:${KUBO_GATEWAY_PORT}:8080'
......@@ -47,10 +50,13 @@ services:
volumes:
- kubo_data:/data/ipfs
# optional volume if you want to persist the configuration script in order to change it
# you can use the command
# docker run --rm -it -v datapod_kubo_init:/container-init.d --entrypoint /bin/sh h30x/datapod-kubo
# - kubo_init:/container-init.d
environment:
KUBO_DOMAIN: ${KUBO_DOMAIN}
KUBO_PORT: ${KUBO_PORT}
KUBO_WEBSOCKET_DOMAIN: ${KUBO_WEBSOCKET_DOMAIN}
KUBO_GATEWAY_DOMAIN: ${KUBO_GATEWAY_DOMAIN}
KUBO_GATEWAY_SUBDOMAIN: ${KUBO_GATEWAY_SUBDOMAIN}
restart: always
......@@ -60,21 +66,21 @@ services:
image: h30x/datapod-kubo-rpc
ports:
# p2p port public (tcp, udp, webtransport, webrtc)
- 4002:4001/tcp
- 4002:4001/udp
- 4401:4001/tcp
- 4401:4001/udp
# expose RPC to partial reverse proxy
- 127.0.0.1:6001:5001
volumes:
- kubo-rpc_data:/data/ipfs
environment:
KUBO_DOMAIN: ${KUBO_DOMAIN}
KUBO_PORT: 4002
KUBO_PORT: 4401
restart: always
# ------
# optional kubo pubsub to see what the node receives on pubsub
pubsub:
image: ipfs/kubo:v0.30.0
image: ipfs/kubo:v0.32.1
restart: always
depends_on:
kubo:
......
{
"name": "ddd-indexer",
"version": "0.0.3",
"version": "0.0.4",
"private": true,
"type": "module",
"scripts": {
......
......@@ -13,7 +13,9 @@ ipfs config Addresses.Swarm --json '[
"/ip4/0.0.0.0/udp/4001/quic-v1/webtransport",
"/ip6/::/udp/4001/quic-v1/webtransport",
"/ip4/0.0.0.0/udp/4001/webrtc-direct",
"/ip6/::/udp/4001/webrtc-direct"
"/ip6/::/udp/4001/webrtc-direct",
"/ip4/0.0.0.0/tcp/4002/ws",
"/ip6/::/tcp/4002/ws"
]'
# configure the addresses to announce
# KUBO_PORT is external port mapped in docker compose to 4001
......@@ -21,5 +23,11 @@ ipfs config Addresses.Announce --json "[
\"/dns/$KUBO_DOMAIN/tcp/$KUBO_PORT\",
\"/dns/$KUBO_DOMAIN/udp/$KUBO_PORT/quic-v1\",
\"/dns/$KUBO_DOMAIN/udp/$KUBO_PORT/quic-v1/webtransport\",
\"/dns/$KUBO_DOMAIN/udp/$KUBO_PORT/webrtc-direct\"
\"/dns/$KUBO_DOMAIN/udp/$KUBO_PORT/webrtc-direct\",
\"/dns/$KUBO_WEBSOCKET_DOMAIN/tcp/443/wss/\"
]"
# --- swarm ---
# disable p2p-circuit
ipfs config Swarm.RelayClient.Enabled --json false
ipfs config Swarm.Transports.Network.Relay --json false
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment