From 70700843ae6577511ac3c1020c660593ae844c8d Mon Sep 17 00:00:00 2001 From: "@s.roertgen" Date: Fri, 24 Jan 2025 17:24:42 +0100 Subject: [PATCH] Get it running with docker --- .env.example | 3 +++ .gitignore | 1 + Dockerfile | 2 +- deps.edn | 16 ++++++++-------- docker-compose.yaml | 10 ++++++++++ resources/config.edn | 6 +++--- src/typesense_indexer/components/websocket.clj | 10 +++++----- src/typesense_indexer/system.clj | 1 + 8 files changed, 32 insertions(+), 17 deletions(-) create mode 100644 .env.example create mode 100644 docker-compose.yaml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..bafb221 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +RELAY_URL=wss://my-relay.org +TS_URL=https://my-typsense.org +TS_KEY=abc diff --git a/.gitignore b/.gitignore index 0a04143..dea6e7a 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /classes /target +.env diff --git a/Dockerfile b/Dockerfile index 057639d..9bf3e16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* RUN clojure -T:build uber # Stage 2: Run the Uberjar in a minimal image -FROM openjdk:17-jdk-slim +FROM openjdk:23-jdk-slim # Set environment variables ENV APP_HOME=/usr/src/app diff --git a/deps.edn b/deps.edn index 39b6dd6..4d02a30 100644 --- a/deps.edn +++ b/deps.edn @@ -1,11 +1,11 @@ {:paths ["src" "resources"] - :deps {org.clojure/clojure {:mvn/version "1.12.0"} - org.clojure/core.async {:mvn/version "1.6.673"} - com.stuartsierra/component {:mvn/version "1.1.0"} - hato/hato {:mvn/version "1.0.0"} - http-kit/http-kit {:mvn/version "2.8.0"} - net.clojars.laoc/nostr {:local/root "/home/laoc/coding/nostr-clj"} - aero/aero {:mvn/version "1.1.6"} - cheshire/cheshire {:mvn/version "5.10.0"}} + :deps {org.clojure/clojure {:mvn/version "1.12.0"} + org.clojure/core.async {:mvn/version "1.6.673"} + com.stuartsierra/component {:mvn/version "1.1.0"} + hato/hato {:mvn/version "1.0.0"} + http-kit/http-kit {:mvn/version "2.9.0-alpha2"} + net.clojars.laoc/nostr {:mvn/version "0.0.7"} + aero/aero {:mvn/version "1.1.6"} + cheshire/cheshire {:mvn/version "5.10.0"}} :aliases {:build {:extra-deps {io.github.clojure/tools.build {:mvn/version "0.9.3"}} :ns-default build}}} diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..a510011 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,10 @@ +services: + indexer: + build: + context: ./ + dockerfile: Dockerfile + environment: + RELAY_URL: "${RELAY_URL}" + TS_URL: "${TS_URL}" + TS_KEY: "${TS_KEY}" + diff --git a/resources/config.edn b/resources/config.edn index 6da8e92..4acd1dd 100644 --- a/resources/config.edn +++ b/resources/config.edn @@ -1,3 +1,3 @@ -{:websocket {:url "ws://localhost:7778"} - :typesense {:url "http://localhost:8108" - :api-key "xyz"}} +{:websocket {:url #or [#env RELAY_URL "wss://my-relay.org"]} + :typesense {:url #or [#env TS_URL "https://my-typesense.org"] + :api-key #or [#env TS_KEY "abc"]}} diff --git a/src/typesense_indexer/components/websocket.clj b/src/typesense_indexer/components/websocket.clj index d78abb8..c0f1081 100644 --- a/src/typesense_indexer/components/websocket.clj +++ b/src/typesense_indexer/components/websocket.clj @@ -9,14 +9,14 @@ (case reason "eose" (do (nostr/unsubscribe ws {:kinds [30142] - :limit 6}) + :limit 10000}) (nostr/subscribe ws {:kinds [30142] :since (:created_at @newest-event)})) "reconnect" (nostr/subscribe ws {:kinds [1] - :limit 4 + :limit 10000 :until (:created_at @last-event)}) "init" (nostr/subscribe ws {:kinds [30142] - :limit 6}))) + :limit 10000}))) (defn on-message-handler [ws parsed last-parsed-event newest-event typesense] (try @@ -41,11 +41,11 @@ component/Lifecycle (start [component] (println ";; Starting WebsocketConnection") - (println ";; typesense" typesense) + (println ";; Websocket config" config) (let [last-parsed-event (atom {:created_at nil}) newest-event (atom nil)] (try - (let [{:keys [ws channel]} (nostr/connect-channel (:url config))] + (let [{:keys [ws channel]} (nostr/connect (:url config))] (init-request-30142 ws last-parsed-event newest-event "init") (go-loop [] (when-some [message (