From 06afbbf87b0ba27b8985a1fabae5df993b1be5a3 Mon Sep 17 00:00:00 2001 From: rootflo-hardik Date: Mon, 15 Jun 2026 17:33:47 +0530 Subject: [PATCH 1/2] floware init script - for creating db on startup --- wavefront/server/docker/floware.Dockerfile | 7 +++-- wavefront/server/scripts/floware-init.sh | 33 ++++++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 wavefront/server/scripts/floware-init.sh diff --git a/wavefront/server/docker/floware.Dockerfile b/wavefront/server/docker/floware.Dockerfile index 15d1fe1c..92f2790f 100644 --- a/wavefront/server/docker/floware.Dockerfile +++ b/wavefront/server/docker/floware.Dockerfile @@ -36,6 +36,9 @@ COPY wavefront/server/plugins/authenticator /app/plugins/authenticator COPY wavefront/server/apps/floware /app/apps/floware +COPY wavefront/server/scripts/floware-init.sh /app/scripts/floware-init.sh +RUN chmod +x /app/scripts/floware-init.sh + RUN uv sync --package floware --frozen --no-dev # Create a non-root user and change ownership of the /app directory @@ -44,6 +47,4 @@ RUN useradd -m -u 1000 floware && \ USER floware -WORKDIR /app/apps/floware/floware - -CMD ["uv", "run", "server.py"] +ENTRYPOINT ["/app/scripts/floware-init.sh"] diff --git a/wavefront/server/scripts/floware-init.sh b/wavefront/server/scripts/floware-init.sh new file mode 100644 index 00000000..cf60d191 --- /dev/null +++ b/wavefront/server/scripts/floware-init.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +export PATH="/app/.venv/bin:$PATH" + +if [ "${FLOWARE_DB_CREATE}" = "true" ]; then + echo "Creating Floware database if not exists..." + python3 -c " +import psycopg2, os + +host = os.environ['DB_HOST'] +user = os.environ['DB_USERNAME'] +password = os.environ['DB_PASSWORD'] +dbname = os.environ['DB_NAME'] + +conn = psycopg2.connect(host=host, user=user, password=password, dbname='postgres') +conn.autocommit = True +cur = conn.cursor() +cur.execute(\"SELECT 1 FROM pg_database WHERE datname = %s\", (dbname,)) + +if not cur.fetchone(): + cur.execute('CREATE DATABASE \"' + dbname.replace('\"', '\"\"') + '\"') + print('Database created') +else: + print('Database already exists, skipping') +conn.close() +" +else + echo "FLOWARE_DB_CREATE is not true, skipping database creation" +fi + +cd /app/apps/floware/floware +exec uv run server.py From 3ba9e432f494ab153c30c791d22a299483e19227 Mon Sep 17 00:00:00 2001 From: rootflo-hardik Date: Tue, 16 Jun 2026 10:46:26 +0530 Subject: [PATCH 2/2] create pg vector extension as well if not exists --- wavefront/server/scripts/floware-init.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wavefront/server/scripts/floware-init.sh b/wavefront/server/scripts/floware-init.sh index cf60d191..01a44f62 100644 --- a/wavefront/server/scripts/floware-init.sh +++ b/wavefront/server/scripts/floware-init.sh @@ -24,6 +24,13 @@ if not cur.fetchone(): else: print('Database already exists, skipping') conn.close() + +conn = psycopg2.connect(host=host, user=user, password=password, dbname=dbname) +conn.autocommit = True +cur = conn.cursor() +cur.execute('CREATE EXTENSION IF NOT EXISTS vector') +print('Ensured vector extension exists') +conn.close() " else echo "FLOWARE_DB_CREATE is not true, skipping database creation"