diff --git a/conf/bitcoin.conf b/conf/bitcoin.conf index 350bd273..e40d2073 100644 --- a/conf/bitcoin.conf +++ b/conf/bitcoin.conf @@ -14,7 +14,9 @@ proxy=4nk-tor:9050 listen=1 # Paramètres RPC -rpcallowip=172.24.0.0/16 +rpcuser=bitcoin +rpcpassword=bitcoin +rpcallowip=192.168.240.0/20 rpcworkqueue=32 rpcthreads=4 rpcdoccheck=1 @@ -37,6 +39,8 @@ addnode=d6i546e2sjezhyy2eupyc2wqtbgjnkubcjd4prhqurtlmp7nsp6yxqyd.onion:38333 port=38333 rpcport=38332 rpcbind=0.0.0.0 +rpcuser=bitcoin +rpcpassword=bitcoin fallbackfee=0.0001 diff --git a/docker-compose.yml b/docker-compose.yml index 30eaf1e2..4e7238c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,7 +37,6 @@ services: - "8000:8000" environment: - - RPC_ENDPOINT=http://4nk-bitcoin:38332 - HOST=0.0.0.0:8000 - CHAIN=signet - SYNC_START_HEIGHT=1 @@ -49,6 +48,8 @@ services: - TWEAKS_CUT_THROUGH_WITH_DUST_FILTER=1 command: ["/main", "--datadir", "/blindbit"] working_dir: / + volumes: + - ./conf/blindbit.toml:/blindbit/blindbit.toml:ro networks: - 4nk_network restart: unless-stopped @@ -80,14 +81,54 @@ services: retries: 3 start_period: 40s - sdk_relay: + sdk_relay1: image: 4nk-node-sdk_relay1:docker-support-v2 - container_name: 4nk-sdk-relay + container_name: 4nk-sdk-relay1 ports: - "8090:8090" - "8091:8091" volumes: - - ./conf/sdk_relay1.conf:/usr/local/bin/sdk_relay.conf:ro + - ./conf/sdk_relay1.conf:/home/bitcoin/.conf:ro + networks: + - 4nk_network + restart: unless-stopped + depends_on: + - sdk_storage + healthcheck: + test: ["CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:8091"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + sdk_relay2: + image: 4nk-node-sdk_relay2:docker-support-v2 + container_name: 4nk-sdk-relay2 + ports: + - "8092:8090" + - "8093:8091" + volumes: + - ./conf/sdk_relay2.conf:/home/bitcoin/.conf:ro + networks: + - 4nk_network + restart: unless-stopped + depends_on: + - sdk_storage + healthcheck: + test: ["CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:8091"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + sdk_relay3: + image: 4nk-node-sdk_relay3:docker-support-v2 + container_name: 4nk-sdk-relay3 + ports: + - "8094:8090" + - "8095:8091" + volumes: + - ./conf/sdk_relay3.conf:/home/bitcoin/.conf:ro networks: - 4nk_network restart: unless-stopped @@ -107,11 +148,14 @@ services: - "9090:9090" volumes: - ./conf/sdk_signer.conf:/usr/local/bin/sdk_signer.conf:ro + - sdk_signer_data:/app/data networks: - 4nk_network restart: unless-stopped depends_on: - - sdk_relay + - sdk_relay1 + - sdk_relay2 + - sdk_relay3 healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:9090"] interval: 30s @@ -140,6 +184,7 @@ services: volumes: tor_data: bitcoin_data: + sdk_signer_data: networks: 4nk_network: diff --git a/modules/sdk_relay1/Dockerfile b/modules/sdk_relay1/Dockerfile index 96eb3772..1be41c16 100644 --- a/modules/sdk_relay1/Dockerfile +++ b/modules/sdk_relay1/Dockerfile @@ -1 +1,46 @@ FROM rust:1.75-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache musl-dev openssl-dev + +# Set working directory +WORKDIR /app + +# Copy source code +COPY . . + +# Build the application +RUN cargo build --release + +# Runtime stage +FROM alpine:latest + +# Install runtime dependencies +RUN apk add --no-cache libgcc + +# Create app user +RUN addgroup -g 1001 appuser && adduser -D -s /bin/sh -u 1001 -G appuser appuser + +# Set working directory +WORKDIR /app + +# Copy binary from builder +COPY --from=builder /app/target/release/sdk_relay /usr/local/bin/sdk_relay + +# Configuration file will be mounted via docker-compose + +# Set permissions +RUN chown -R appuser:appuser /app + +# Switch to app user +USER appuser + +# Expose ports +EXPOSE 8090 8091 + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ + CMD wget --quiet --tries=1 --timeout=5 --spider http://localhost:8091 || exit 1 + +# Run the application +CMD ["/usr/local/bin/sdk_relay"] diff --git a/modules/sdk_relay2/Dockerfile b/modules/sdk_relay2/Dockerfile index 96eb3772..1be41c16 100644 --- a/modules/sdk_relay2/Dockerfile +++ b/modules/sdk_relay2/Dockerfile @@ -1 +1,46 @@ FROM rust:1.75-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache musl-dev openssl-dev + +# Set working directory +WORKDIR /app + +# Copy source code +COPY . . + +# Build the application +RUN cargo build --release + +# Runtime stage +FROM alpine:latest + +# Install runtime dependencies +RUN apk add --no-cache libgcc + +# Create app user +RUN addgroup -g 1001 appuser && adduser -D -s /bin/sh -u 1001 -G appuser appuser + +# Set working directory +WORKDIR /app + +# Copy binary from builder +COPY --from=builder /app/target/release/sdk_relay /usr/local/bin/sdk_relay + +# Configuration file will be mounted via docker-compose + +# Set permissions +RUN chown -R appuser:appuser /app + +# Switch to app user +USER appuser + +# Expose ports +EXPOSE 8090 8091 + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ + CMD wget --quiet --tries=1 --timeout=5 --spider http://localhost:8091 || exit 1 + +# Run the application +CMD ["/usr/local/bin/sdk_relay"] diff --git a/modules/sdk_relay3/Dockerfile b/modules/sdk_relay3/Dockerfile index 96eb3772..1be41c16 100644 --- a/modules/sdk_relay3/Dockerfile +++ b/modules/sdk_relay3/Dockerfile @@ -1 +1,46 @@ FROM rust:1.75-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache musl-dev openssl-dev + +# Set working directory +WORKDIR /app + +# Copy source code +COPY . . + +# Build the application +RUN cargo build --release + +# Runtime stage +FROM alpine:latest + +# Install runtime dependencies +RUN apk add --no-cache libgcc + +# Create app user +RUN addgroup -g 1001 appuser && adduser -D -s /bin/sh -u 1001 -G appuser appuser + +# Set working directory +WORKDIR /app + +# Copy binary from builder +COPY --from=builder /app/target/release/sdk_relay /usr/local/bin/sdk_relay + +# Configuration file will be mounted via docker-compose + +# Set permissions +RUN chown -R appuser:appuser /app + +# Switch to app user +USER appuser + +# Expose ports +EXPOSE 8090 8091 + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ + CMD wget --quiet --tries=1 --timeout=5 --spider http://localhost:8091 || exit 1 + +# Run the application +CMD ["/usr/local/bin/sdk_relay"]