From 6bd91a8cef21b93a264edaaba7f20abadce953e7 Mon Sep 17 00:00:00 2001 From: R-Sandor <45048465+R-Sandor@users.noreply.github.com> Date: Tue, 28 Jan 2025 05:14:16 -0500 Subject: [PATCH] Fix fulltext search - broken host parameters --- .env | 3 +- Makefile | 4 +- docker-compose-prod.yml | 3 ++ docker-compose-staging.yml | 48 ------------------- docker-compose.yml | 9 +++- .../core/config/TypesenseConfiguration.java | 10 ++-- .../core/controller/SearchController.java | 1 - .../resources/application-prod.properties | 3 -- .../src/main/resources/application.properties | 3 +- 9 files changed, 21 insertions(+), 63 deletions(-) delete mode 100644 docker-compose-staging.yml diff --git a/.env b/.env index a38e7ceb..ce6ca46c 100644 --- a/.env +++ b/.env @@ -4,6 +4,7 @@ POSTGRES_DB=findfirst SPRING_PROFILES_ACTIVE=dev SPRING_DATASOURCE_USERNAME=${POSTGRES_USER} SPRING_DATASOURCE_PASSWORD=${POSTGRES_PASSWORD} -SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/findfirst +SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/findfirst SCREENSHOT_SERVICE_URL=http://screenshot:8080/ +TYPESENSE_SERVICE_HOST=typesense TYPESENSE_API_KEY=xyz diff --git a/Makefile b/Makefile index bd545292..9901ec64 100644 --- a/Makefile +++ b/Makefile @@ -16,11 +16,11 @@ ifeq ( ,$(wildcard $(CERT_FILE))) @echo ">Creating certificates" cd ./server/scripts && ./createServerKeys.sh endif - cd ./server && ./gradlew clean build + cd ./server && ./gradlew clean build $(args) docker build -t ghcr.io/r-sandor/findfirst-server -f ./docker/server/Dockerfile.buildlocal ./server build_screenshot: - cd ./screenshot && ./gradlew clean build + cd ./screenshot && ./gradlew clean build $(args) docker build -t ghcr.io/r-sandor/findfirst-screenshot -f ./docker/screenshot/Dockerfile.buildlocal ./screenshot build_frontend: diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml index c65b6116..65eb7a35 100644 --- a/docker-compose-prod.yml +++ b/docker-compose-prod.yml @@ -23,11 +23,14 @@ services: - SPRING_DATASOURCE_PASSWORD=${POSTGRES_PASSWORD} - SCREENSHOT_SERVICE_URL=http://screenshot:8080/ - FINDFIRST_SCREENSHOT_LOCATION=/app/screenshots + - FINDFIRST_TYPESENSE_API_KEY=${TYPESENSE_API_KEY} + - FINDFIRST_TYPESENSE_HOST=${TYPESENSE_SERVICE_HOST} volumes: - ./server/prod.yml:/app/prod.yml - ./data/screenshots:/app/screenshots depends_on: - db + - typesense restart: always screenshot: build: diff --git a/docker-compose-staging.yml b/docker-compose-staging.yml deleted file mode 100644 index 577e646e..00000000 --- a/docker-compose-staging.yml +++ /dev/null @@ -1,48 +0,0 @@ -services: - frontend: - build: - dockerfile: ../docker/frontend/Dockerfile - context: ./frontend - ports: - - "3000:3000" - restart: always - environment: - - NEXT_PUBLIC_IMAGE_DIR=screenshots/ - volumes: - - ./data/screenshots:/app/public/screenshots - server: - build: - dockerfile: ../docker/server/Dockerfile - context: ./server - ports: - - "9000:9000" - environment: - - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/findfirst - - SPRING_PROFILES_ACTIVE=staging - screenshot: - build: - dockerfile: ../docker/screenshot/Dockerfile - context: ./screenshot - ports: - - "8080:8080" - environment: - - SPRING_PROFILES_ACTIVE=staging - db: - image: postgres:16.2-alpine - environment: - - POSTGRES_USER=${POSTGRES_USER} - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - - POSTGRES_DB=${POSTGRES_DB} - - SCREENSHOT_SERVICE_URL=http://screenshot:8080/ - volumes: - - pgdata:/var/lib/postgresql/data - ports: - - 5432:5432 - mail: - image: mailhog/mailhog:latest - ports: - - 1025:1025 - - 8025:8025 -volumes: - screenshots-data: - pgdata: diff --git a/docker-compose.yml b/docker-compose.yml index 5e45fc91..3e9adfd9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,13 +18,18 @@ services: - SCREENSHOT_SERVICE_URL=${SCREENSHOT_SERVICE_URL} - FINDFIRST_SCREENSHOT_LOCATION=/app/screenshots - FINDFIRST_UPLOAD_LOCATION=/app/profile-pictures/ + - FINDFIRST_TYPESENSE_API_KEY=${TYPESENSE_API_KEY} + - FINDFIRST_TYPESENSE_HOST=${TYPESENSE_SERVICE_HOST} volumes: - ./data/screenshots:/app/screenshots - ./data/uploads/profile-pictures:/app/profile-pictures + depends_on: + - db + - typesense screenshot: image: ghcr.io/r-sandor/findfirst-screenshot:latest ports: - - "8080:8080" + - 8080:8080 environment: - SPRING_PROFILES_ACTIVE=dev - FINDFIRST_SCREENSHOT_LOCATION=/app/screenshots @@ -34,7 +39,7 @@ services: image: typesense/typesense:27.1 restart: on-failure ports: - - "8108:8108" + - 8108:8108 environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} volumes: diff --git a/server/src/main/java/dev/findfirst/core/config/TypesenseConfiguration.java b/server/src/main/java/dev/findfirst/core/config/TypesenseConfiguration.java index 381aade5..5fdf7966 100644 --- a/server/src/main/java/dev/findfirst/core/config/TypesenseConfiguration.java +++ b/server/src/main/java/dev/findfirst/core/config/TypesenseConfiguration.java @@ -15,16 +15,16 @@ @Slf4j public class TypesenseConfiguration { - @Value("${typesense_api_key}") + @Value("${findfirst.typesense.api_key}") String typesSenseApiKey; + @Value("${findfirst.typesense.host}") + String host; + @Bean public Client typesenseClient() { List nodes = new ArrayList<>(); - nodes.add(new Node("http", // For Typesense Cloud use https - "localhost", // For Typesense Cloud use xxx.a1.typesense.net - "8108" // For Typesense Cloud use 443 - )); + nodes.add(new Node("http", host, "8108")); org.typesense.api.Configuration configuration = new org.typesense.api.Configuration(nodes, Duration.ofSeconds(9), typesSenseApiKey); return new Client(configuration); diff --git a/server/src/main/java/dev/findfirst/core/controller/SearchController.java b/server/src/main/java/dev/findfirst/core/controller/SearchController.java index f4f3e299..45f19dde 100644 --- a/server/src/main/java/dev/findfirst/core/controller/SearchController.java +++ b/server/src/main/java/dev/findfirst/core/controller/SearchController.java @@ -13,7 +13,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; - import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; diff --git a/server/src/main/resources/application-prod.properties b/server/src/main/resources/application-prod.properties index fa40f3d9..736a1989 100644 --- a/server/src/main/resources/application-prod.properties +++ b/server/src/main/resources/application-prod.properties @@ -4,12 +4,9 @@ logging.level.org.springframework.jdbc=ERROR # SQL Settings spring.sql.init.mode=never - # Postgres connect settings spring.datasource.url=jdbc:postgresql://localhost:5432/findfirst spring.datasource.driver-class-name=org.postgresql.Driver -spring.datasource.username=postgres -spring.datasource.password=admin spring.config.import=optional:file:/app/prod.yml diff --git a/server/src/main/resources/application.properties b/server/src/main/resources/application.properties index 837519fc..e2f941ef 100644 --- a/server/src/main/resources/application.properties +++ b/server/src/main/resources/application.properties @@ -21,7 +21,8 @@ findfirst.local.screenshot=../data/screenshots findfirst.screenshot.location=${FINDFIRST_SCREENSHOT_LOCATION:${findfirst.local.screenshot}} findfirst.app.frontend-url=${FINDFIRST_APP_FRONTEND-URL:http://localhost:3000/} findfirst.app.domain=localhost -typesense_api_key=${TYPESENSE_API_KEY:xyz} +findfirst.typesense.api_key=${TYPESENSE_API_KEY:xyz} +findfirst.typesense.host=${FINDFIRST_TYPESENSE_HOST:localhost} findfirst.upload.allowed-types=image/jpeg,image/png findfirst.local.upload.profile-pictures=../data/uploads/profile-pictures/