Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
85d4c4e
Reverse proxy changes for ibvs
rohitkatakol Sep 30, 2025
8960339
Create ibvs app with static web pages
rohitkatakol Oct 1, 2025
e4af35a
Fix rtsp stream
rohitkatakol Oct 1, 2025
7fda14d
Helm changes for reverse proxy
rohitkatakol Oct 5, 2025
218254a
Fix proxy requests for milvus ui
rohitkatakol Oct 6, 2025
4d34cd6
Fix swagger documentaion for featurematching
rohitkatakol Oct 6, 2025
bf1fdec
RTSP stream enable with reverse proxy
rohitkatakol Oct 7, 2025
9ce133c
Undo helm changes
rohitkatakol Oct 7, 2025
8d427f9
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 7, 2025
adcb029
Minor changes
rohitkatakol Oct 7, 2025
e57b306
Document changes
rohitkatakol Oct 7, 2025
faa512a
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 7, 2025
6768bfa
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 8, 2025
b221402
Cleaning up compose.yml file
rohitkatakol Oct 8, 2025
a51eb00
Remove dockerfile for nginx
rohitkatakol Oct 8, 2025
83f1944
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 14, 2025
6f61ef8
Changes to certificate generation script
rohitkatakol Oct 14, 2025
e1b58d7
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 16, 2025
76b9211
Added reverse proxy for helm chart
rohitkatakol Oct 17, 2025
06a30a0
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 22, 2025
43f1b34
Minor changes
rohitkatakol Oct 22, 2025
f2071f0
Document changes for helm
rohitkatakol Oct 22, 2025
65f051c
Document changes for nginx architecture
rohitkatakol Oct 23, 2025
f357a3e
Document changes for nginx architecture
rohitkatakol Oct 23, 2025
7de2cc7
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 23, 2025
0e06bb7
Merge branch 'main' into feature/rkatakol/ibvs_reverse_proxy
rohitkatakol Oct 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 42 additions & 20 deletions metro-ai-suite/image-based-video-search/compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ services:
- milvus-data:/var/lib/milvus
- ./src/milvus-db/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml
- ./src/milvus-db/user.yaml:/milvus/configs/user.yaml
ports:
- "19530:19530"
- "9091:9091"
expose:
- "19530"
- "9091"
# This port conflicts with etcd when exposed, so it is commented out:
# - "2379:2379"
healthcheck:
Expand All @@ -43,21 +43,24 @@ services:
- http_proxy=
- https_proxy=
- no_proxy=
ports:
- "8000:3000"
expose:
- "3000"
restart: on-failure:5
depends_on:
milvus-db:
condition: service_healthy

feature-matching:
image: ${DOCKER_REGISTRY}intel/feature-matching:v1.0.2-pre-RC1
ports:
- "9000:8000"
expose:
- "8000"
container_name: ibvs-featurematching
build:
context: src/feature-matching
dockerfile: Dockerfile
read_only: true
tmpfs:
- /usr/src/app/static
environment:
MILVUS_ENDPOINT: http://milvus-db:19530
COLLECTION_NAME: my_image_collection
Expand Down Expand Up @@ -123,21 +126,19 @@ services:
- http_proxy=
- https_proxy=
- no_proxy=
ports:
- "8554:8554"
- "1935:1935"
- "8888:8888"
- "8889:8889"
- "8890:8890/udp"
- "8189:8189/udp"
expose:
- "8554"
- "1935"
- "8888"
- "8889"
restart: on-failure:5
broker:
image: docker.io/library/eclipse-mosquitto:2.0.20
container_name: ibvs-broker
volumes:
- ./src/broker:/mosquitto/config
ports:
- "1883:1883"
expose:
- "1883"
restart: unless-stopped
healthcheck:
test: ["CMD", "mosquitto_sub", "-t", "$$SYS/#", "-C", "1", "-i", "healthcheck", "-W", "3"]
Expand All @@ -154,8 +155,8 @@ services:
privileged: false
tty: true
entrypoint: ["./run.sh"]
ports:
- '8080:8080'
expose:
- '8080'
# - '8554:8554'
environment:
- ENABLE_RTSP=true
Expand Down Expand Up @@ -219,11 +220,12 @@ services:
app:
image: ${DOCKER_REGISTRY}intel/image-based-video-search:v1.0.2-pre-RC1
container_name: ibvs-app
ports:
- "3000:3000"
build:
context: src/app
dockerfile: Dockerfile
expose:
- "3000"
read_only: true
depends_on:
streaming-pipeline:
condition: service_healthy
Expand All @@ -238,6 +240,26 @@ services:
retries: 3
start_period: 20s
restart: on-failure:5
nginx:
image: nginx:1.27-alpine
container_name: ibvs-reverse-proxy
ports:
- "80:80"
- "443:443"
- "8554:8554"
build:
context: src/nginx
dockerfile: Dockerfile
volumes:
- "./src/nginx/nginx.conf:/etc/nginx/nginx.conf:ro"
depends_on:
- app
environment:
- http_proxy=
- https_proxy=
- no_proxy=
- NO_PROXY=
restart: on-failure:5

volumes:
milvus-data:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,11 @@ a pre-step to prepare models may be needed

6. **Access the Application**:
- Open a browser and go to the following endpoints to access the application:
- App UI: `http://localhost:3000`
- Search UI: `http://localhost:9000/docs`
- MilvusDB UI: `http://localhost:8000/`
- Stream UI: `http://localhost:8889/stream`. To access this stream remotely, open this url `rtsp://<ip-addr>:8554/stream`. Replace `<ip-addr>` with your system IP address
> Note: To access `App UI`, `Search UI` and `MilvusDB UI` urls remotely, replace the `localhost` with your system IP address.
- App UI: `https://<ip-addr>/`
- Search UI: `https://<ip-addr>/docs`
- MilvusDB UI: `https://<ip-addr>/ibvs-milvus-ui`
- Stream UI: You can access https stream at `https://<ip-addr>/stream` and RTSP stream at `rtsp://<ip-addr>:8554/stream`.
> Note: Replace `<ip-addr>` with your host IP address


7. **Run the Application**:
Expand Down
9 changes: 6 additions & 3 deletions metro-ai-suite/image-based-video-search/src/app/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@ RUN npm install
COPY . .

# Build the Vue.js application
# RUN npm run build
RUN npm run build

# Install serve globally *before* switching user
RUN npm install -g serve

# Expose the port the app runs on
EXPOSE 3000
Expand All @@ -28,5 +31,5 @@ RUN useradd -ms /bin/bash ${USER} -o -u $UID && \
RUN mkdir -p /home/${USER}/ && chown -R ${USER}:${USER} /home/${USER}
USER ${USER}

# Start the application
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "3000"]
# Serve built static files
CMD ["serve", "-s", "dist", "-l", "3000"]
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ export default defineComponent({

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(this.map);
}).addTo(this.map as L.Map);

L.marker(
[33.4484, -112.0740]
).addTo(this.map)
).addTo(this.map as L.Map)
.bindPopup('11 N Central Ave #4, Phoenix, AZ')
.openPopup();

Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
/// <reference types="vite/client" />

declare module '*.vue' {
import { DefineComponent } from 'vue';
const component: DefineComponent<{}, {}, any>;
export default component;
}
20 changes: 20 additions & 0 deletions metro-ai-suite/image-based-video-search/src/nginx/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM nginx:1.27-alpine

# Install OpenSSL
RUN apk add --no-cache openssl bash

# Copy nginx config
COPY nginx.conf /etc/nginx/nginx.conf

# Copy cert generation script
COPY generate_certs.sh /usr/local/bin/generate_certs.sh
RUN chmod +x /usr/local/bin/generate_certs.sh

# Create SSL directory
RUN mkdir -p /etc/nginx/ssl

# Expose ports
EXPOSE 80 443

# Run script (which starts nginx)
ENTRYPOINT ["/usr/local/bin/generate_certs.sh"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/sh
set -e

SSL_DIR="/etc/nginx/ssl"

# Generate self-signed cert if not present
if [ ! -f "$SSL_DIR/server.crt" ] || [ ! -f "$SSL_DIR/server.key" ]; then
echo "🔐 Generating self-signed SSL certificate..."
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout "$SSL_DIR/server.key" \
-out "$SSL_DIR/server.crt" \
-subj "/C=IN/ST=KA/L=Bangalore/O=MyCompany/OU=Dev/CN=localhost"
fi

# Start nginx
nginx -g "daemon off;"
Loading