Add OpenSearch to docker setup for development (#509)
* add containers for OpenSearch * switch OpenSearch Dashboards to http * add script to take care of index/mapping on first run * limit mount in opensearch container to only the necessary scope * handle both docker and non-docker dev setups * cleanup * make opensearch work in docker dev --------- Co-authored-by: rleed <rleed1@pm.me> Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com> Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
This commit is contained in:
		
							parent
							
								
									8017355924
								
							
						
					
					
						commit
						2a7267a35a
					
				@ -57,13 +57,18 @@ NOSTR_PRIVATE_KEY=<YOUR NOSTR PRIVATE KEY IN HEX>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# static things
 | 
					# static things
 | 
				
			||||||
NEXTAUTH_URL=http://localhost:3000/api/auth
 | 
					NEXTAUTH_URL=http://localhost:3000/api/auth
 | 
				
			||||||
SELF_URL=http://localhost:3000
 | 
					SELF_URL=http://app:3000
 | 
				
			||||||
PUBLIC_URL=http://localhost:3000
 | 
					PUBLIC_URL=http://localhost:3000
 | 
				
			||||||
LND_CONNECT_ADDRESS=03cc1d0932bb99b0697f5b5e5961b83ab7fd66f1efc4c9f5c7bad66c1bcbe78f02@xhlmkj7mfrl6ejnczfwl2vqik3xim6wzmurc2vlyfoqw2sasaocgpuad.onion:9735
 | 
					LND_CONNECT_ADDRESS=03cc1d0932bb99b0697f5b5e5961b83ab7fd66f1efc4c9f5c7bad66c1bcbe78f02@xhlmkj7mfrl6ejnczfwl2vqik3xim6wzmurc2vlyfoqw2sasaocgpuad.onion:9735
 | 
				
			||||||
NEXTAUTH_SECRET=3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI
 | 
					NEXTAUTH_SECRET=3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI
 | 
				
			||||||
JWT_SIGNING_PRIVATE_KEY={"kty":"oct","kid":"FvD__hmeKoKHu2fKjUrWbRKfhjimIM4IKshyrJG4KSM","alg":"HS512","k":"3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI"}
 | 
					JWT_SIGNING_PRIVATE_KEY={"kty":"oct","kid":"FvD__hmeKoKHu2fKjUrWbRKfhjimIM4IKshyrJG4KSM","alg":"HS512","k":"3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI"}
 | 
				
			||||||
INVOICE_HMAC_KEY=a4c1d9c81edb87b79d28809876a18cf72293eadb39f92f3f4f2f1cfbdf907c91
 | 
					INVOICE_HMAC_KEY=a4c1d9c81edb87b79d28809876a18cf72293eadb39f92f3f4f2f1cfbdf907c91
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# OpenSearch
 | 
				
			||||||
 | 
					OPENSEARCH_URL=http://opensearch:9200
 | 
				
			||||||
 | 
					OPENSEARCH_USERNAME=
 | 
				
			||||||
 | 
					OPENSEARCH_PASSWORD=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# imgproxy options
 | 
					# imgproxy options
 | 
				
			||||||
IMGPROXY_ENABLE_WEBP_DETECTION=1
 | 
					IMGPROXY_ENABLE_WEBP_DETECTION=1
 | 
				
			||||||
IMGPROXY_MAX_ANIMATION_FRAMES=100
 | 
					IMGPROXY_MAX_ANIMATION_FRAMES=100
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
import os from '@opensearch-project/opensearch'
 | 
					import os from '@opensearch-project/opensearch'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const options = process.env.NODE_ENV === 'development'
 | 
					const options = process.env.NODE_ENV === 'development'
 | 
				
			||||||
  ? { node: 'http://localhost:9200' }
 | 
					  ? { node: process.env.OPENSEARCH_URL || 'http://localhost:9200' }
 | 
				
			||||||
  : {
 | 
					  : {
 | 
				
			||||||
      node: process.env.OPENSEARCH_URL,
 | 
					      node: process.env.OPENSEARCH_URL,
 | 
				
			||||||
      auth: {
 | 
					      auth: {
 | 
				
			||||||
 | 
				
			|||||||
@ -31,6 +31,7 @@ services:
 | 
				
			|||||||
      - ./:/app
 | 
					      - ./:/app
 | 
				
			||||||
    links:
 | 
					    links:
 | 
				
			||||||
      - db
 | 
					      - db
 | 
				
			||||||
 | 
					      - opensearch
 | 
				
			||||||
  worker:
 | 
					  worker:
 | 
				
			||||||
    container_name: worker
 | 
					    container_name: worker
 | 
				
			||||||
    build: ./worker
 | 
					    build: ./worker
 | 
				
			||||||
@ -47,6 +48,8 @@ services:
 | 
				
			|||||||
      - ./:/app
 | 
					      - ./:/app
 | 
				
			||||||
    links:
 | 
					    links:
 | 
				
			||||||
      - db
 | 
					      - db
 | 
				
			||||||
 | 
					      - app
 | 
				
			||||||
 | 
					      - opensearch
 | 
				
			||||||
    entrypoint: ["/bin/sh", "-c"]
 | 
					    entrypoint: ["/bin/sh", "-c"]
 | 
				
			||||||
    command:
 | 
					    command:
 | 
				
			||||||
      - node worker/index.js
 | 
					      - node worker/index.js
 | 
				
			||||||
@ -67,5 +70,46 @@ services:
 | 
				
			|||||||
      - "3001:8080"
 | 
					      - "3001:8080"
 | 
				
			||||||
    links:
 | 
					    links:
 | 
				
			||||||
      - app
 | 
					      - app
 | 
				
			||||||
 | 
					  opensearch:
 | 
				
			||||||
 | 
					    image: opensearchproject/opensearch:latest
 | 
				
			||||||
 | 
					    container_name: opensearch
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - discovery.type=single-node
 | 
				
			||||||
 | 
					      - plugins.security.disabled=true
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - 9200:9200 # REST API
 | 
				
			||||||
 | 
					      - 9600:9600 # Performance Analyzer
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - os:/usr/share/opensearch/data
 | 
				
			||||||
 | 
					      - ./:/app
 | 
				
			||||||
 | 
					    command: >
 | 
				
			||||||
 | 
					      bash -c '
 | 
				
			||||||
 | 
					        set -m
 | 
				
			||||||
 | 
					        /usr/share/opensearch/opensearch-docker-entrypoint.sh &
 | 
				
			||||||
 | 
					        until curl -sS "http://localhost:9200/_cat/health?h=status" -ku admin:admin | grep -q "green\|yellow"; do
 | 
				
			||||||
 | 
					          echo "Waiting for OpenSearch to start..."
 | 
				
			||||||
 | 
					          sleep 1
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					        echo "OpenSearch started."
 | 
				
			||||||
 | 
					        curl -X PUT "http://localhost:9200/item" -ku admin:admin
 | 
				
			||||||
 | 
					        echo "OpenSearch index created."
 | 
				
			||||||
 | 
					        fg
 | 
				
			||||||
 | 
					      '
 | 
				
			||||||
 | 
					  os-dashboard:
 | 
				
			||||||
 | 
					    image: opensearchproject/opensearch-dashboards:latest
 | 
				
			||||||
 | 
					    container_name: os-dashboard
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - opensearch.ssl.verificationMode=none
 | 
				
			||||||
 | 
					      - server.ssl.enabled=false
 | 
				
			||||||
 | 
					      - plugins.security.disabled=true
 | 
				
			||||||
 | 
					      - DISABLE_SECURITY_DASHBOARDS_PLUGIN=true
 | 
				
			||||||
 | 
					      - OPENSEARCH_HOSTS=http://opensearch:9200
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - 5601:5601
 | 
				
			||||||
 | 
					    expose:
 | 
				
			||||||
 | 
					      - "5601"
 | 
				
			||||||
 | 
					    links:
 | 
				
			||||||
 | 
					      - opensearch
 | 
				
			||||||
volumes:
 | 
					volumes:
 | 
				
			||||||
  db:
 | 
					  db:
 | 
				
			||||||
 | 
					  os:
 | 
				
			||||||
 | 
				
			|||||||
@ -77,6 +77,7 @@ async function _indexItem (item) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export function indexItem ({ apollo }) {
 | 
					export function indexItem ({ apollo }) {
 | 
				
			||||||
  return async function ({ data: { id } }) {
 | 
					  return async function ({ data: { id } }) {
 | 
				
			||||||
 | 
					    console.log('indexing item, fetching ...', id)
 | 
				
			||||||
    // 1. grab item from database
 | 
					    // 1. grab item from database
 | 
				
			||||||
    // could use apollo to avoid duping logic
 | 
					    // could use apollo to avoid duping logic
 | 
				
			||||||
    // when grabbing sats and user name, etc
 | 
					    // when grabbing sats and user name, etc
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user