Skip to content
Open

Air #398

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
9c74e09
Resolve conflicts by taking remote version
Gitty2187 Nov 18, 2025
e7c79f4
grafana + GUI-minio + Retrieval from DB #364
Tehila-Git Nov 19, 2025
8d5b6d9
fix the file
Tehila-Git Nov 19, 2025
66d02fb
Clean up Dockerfile by removing CA certs comments
Tehila-Git Nov 19, 2025
aaa4b65
fix the file
Tehila-Git Nov 19, 2025
62bb0be
fix the file
Tehila-Git Nov 19, 2025
77829f9
fix the file
Tehila-Git Nov 19, 2025
003f923
fix the file
Tehila-Git Nov 19, 2025
9c5b895
Merge branch 'main' into TehilaD/GUI-minio
Tehila-Git Nov 19, 2025
fc996c4
Merge pull request #392 from KamaTechOrg/TehilaD/GUI-minio
Tehila-Git Nov 19, 2025
bf8c894
update bucket in the compression files
m0533199321 Nov 19, 2025
1f45db3
Update sensor-related code and tables
Gitty2187 Nov 19, 2025
8e33348
Merge pull request #393 from KamaTechOrg/malka/update_bucket_compression
m0533199321 Nov 19, 2025
b012e94
Delete
Gitty2187 Nov 19, 2025
9bceb47
Resolve conflicts by keeping my local versions (ours)
Gitty2187 Nov 19, 2025
612ed42
Resolve conflicts by keeping my local versions
Gitty2187 Nov 19, 2025
37b8b06
Merge pull request #394 from KamaTechOrg/sensors/update
Gitty2187 Nov 19, 2025
43a4d92
Rename JobManager and TaskManager container names
shiffiH Nov 19, 2025
4d7ef81
Rename sensor keys in anomaly detection logic
shiffiH Nov 19, 2025
b6420c1
all_flow
YaelVidder123 Nov 19, 2025
159d945
Merge pull request #395 from KamaTechOrg/Shiffi-end-to-end
shiffiH Nov 19, 2025
7523068
change
YaelVidder123 Nov 20, 2025
d1223dc
Merge branch 'main' into air
YaelVidder123 Nov 20, 2025
4b23d01
air-all
YaelVidder123 Nov 20, 2025
4bf3859
Merge branch 'air' of https://github.com/KamaTechOrg/AgCloud into air
YaelVidder123 Nov 20, 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
857 changes: 857 additions & 0 deletions GUI/grafana/dashboards/ultrasonic-dashboard.json

Large diffs are not rendered by default.

613 changes: 555 additions & 58 deletions GUI/src/vast/dashboard_api.py

Large diffs are not rendered by default.

85 changes: 46 additions & 39 deletions GUI/src/vast/desktop/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@ FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1
WORKDIR /app

# ───────── system dependencies ─────────
# ───────────────────── optional CA certs ─────────────────────
COPY certs /app/certs
RUN if [ -d ./certs ] && [ "$(ls ./certs/*.crt 2>/dev/null)" ]; then \
cp ./certs/*.crt /usr/local/share/ca-certificates/ && update-ca-certificates; \
fi

ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
ENV PIP_CERT=/etc/ssl/certs/ca-certificates.crt

# ───────────────────── system deps ─────────────────────
RUN apt-get update && apt-get install -y --no-install-recommends \
libgl1 libegl1 libx11-6 libxcomposite1 libxext6 libxi6 libxtst6 libsm6 \
libxkbcommon0 libxkbcommon-x11-0 libxkbfile1 libxrender1 libxrandr2 \
Expand All @@ -13,54 +23,51 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libnspr4 libdbus-1-3 libkrb5-3 libgssapi-krb5-2 libasound2 libpulse0 \
fluxbox x11vnc xvfb wget net-tools python3-tk ca-certificates \
procps iproute2 xauth git vlc libvlc5 libvlccore9 \
fonts-dejavu-core fonts-noto-core fonts-noto-color-emoji\
&& rm -rf /var/lib/apt/lists/*
fonts-dejavu-core fonts-noto-core fonts-noto-color-emoji && \
rm -rf /var/lib/apt/lists/*

# (optional) minimal extra XCB deps for PyQt
# Extra XCB deps for PyQt
RUN apt-get update && apt-get install -y --no-install-recommends \
libxcb-xinerama0 libxcb-cursor0 libxcb-keysyms1 libxcb-render-util0 \
libxcb-randr0 && rm -rf /var/lib/apt/lists/*

# ───────── optional CA certs ─────────
COPY certs /app/certs
RUN if [ -d ./certs ] && [ "$(ls ./certs/*.crt 2>/dev/null)" ]; then \
echo "Configuring NetFree certificates..."; \
cp ./certs/*.crt /usr/local/share/ca-certificates/; \
update-ca-certificates; \
fi

ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
ENV PIP_CERT=/etc/ssl/certs/ca-certificates.crt

# ───────── noVNC for remote GUI ─────────
# ───────────────────── noVNC ─────────────────────
RUN mkdir -p /opt && \
wget --tries=3 --timeout=30 -O /tmp/novnc.tar.gz https://github.com/novnc/noVNC/archive/refs/tags/v1.4.0.tar.gz && \
tar xzf /tmp/novnc.tar.gz -C /opt && \
mv /opt/noVNC-1.4.0 /opt/noVNC && \
rm /tmp/novnc.tar.gz && \
git clone --depth 1 https://github.com/novnc/websockify /opt/noVNC/utils/websockify

# ───────── Python deps ─────────
# ───────────────────── PulseAudio FIX ─────────────────────
RUN apt-get update && apt-get install -y --no-install-recommends pulseaudio && \
mkdir -p /etc/pulse && \
echo "load-module module-native-protocol-unix" >> /etc/pulse/default.pa && \
echo "load-module module-always-sink" >> /etc/pulse/default.pa && \
echo "set-default-sink default" >> /etc/pulse/default.pa

RUN mkdir -p /run/user/1000 && chmod -R 777 /run/user/1000

# ───────────────────── Python deps ─────────────────────
COPY requirements.txt /app/requirements.txt

# upgrade pip FIRST
RUN pip install --no-cache-dir --upgrade pip setuptools wheel

# install requirements
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install --no-cache-dir --upgrade pip \
&& pip install --no-cache-dir \
"PyQt6==6.9.0" \
"PyQt6-WebEngine==6.9.0" \
"argon2-cffi" \
"requests" \
"numpy" \
--extra-index-url https://pypi.org/simple \
--prefer-binary \
--break-system-packages \
&& pip show PyQt6 PyQt6-WebEngine argon2-cffi
RUN pip install plotly
RUN pip install PyJWT
# ───────── app setup ─────────
RUN useradd -m -s /bin/bash appuser \
&& mkdir -p /app /tmp/.X11-unix \
&& chown -R appuser:appuser /app /tmp /opt/noVNC /var/tmp

# install PyQt + extras
RUN pip install --no-cache-dir \
PyQt6==6.9.0 \
PyQt6-WebEngine==6.9.0 \
argon2-cffi \
requests \
numpy

# ───────────────────── App setup ─────────────────────
RUN useradd -m -s /bin/bash appuser && \
mkdir -p /app /tmp/.X11-unix && chown -R appuser:appuser /app /tmp /opt/noVNC /var/tmp

RUN apt-get update && apt-get install -y --no-install-recommends gosu && rm -rf /var/lib/apt/lists/*

Expand All @@ -70,15 +77,15 @@ RUN sed -i 's/\r$//' /app/start.sh && chmod +x /app/start.sh && chown -R appuser

RUN mkdir -p /app/secrets && chmod -R 777 /app/secrets

RUN mkdir -p /run/user/1000 && chmod -R 777 /run/user/1000

USER appuser
EXPOSE 5900 6080

EXPOSE 5900 6080
ENV PYTHONPATH=/app/src:/app
ENV DISPLAY=:0
ENV NO_VNC_PORT=6080
ENV PORT=19100
ENV MEDIA_BASE=http://media-proxy:8080

CMD ["/app/start.sh"]



11 changes: 4 additions & 7 deletions GUI/src/vast/desktop/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ set -x
export DISPLAY=:0
rm -f /tmp/.X0-lock

echo "[INFO] Starting PulseAudio..."
pulseaudio --start --exit-idle-time=-1 --log-target=stderr
sleep 1

echo "[INFO] Starting Xvfb..."
Xvfb :0 -screen 0 1920x1080x24 &
sleep 3
Expand All @@ -22,10 +26,3 @@ echo "[INFO] Starting noVNC..."

echo "[INFO] Starting PyQt application..."
exec python /app/src/vast/main.py



# # ------------------------------
# # 🚀 Launch the main PyQt application
# # ------------------------------
# exec /opt/venv/bin/python /app/src/vast/main.py
Loading