From 3576dee75a1623aa2385b6afe8b922ad5affca26 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Wed, 6 Dec 2023 09:35:36 +0100 Subject: Add selenium to dockerfile Load model and provider list in gui Remove needs_auth in HuggingChat Add default model and login url in gui --- docker/Dockerfile | 42 ++++++++++++++++++++++++++++++++++++++++++ docker/start-selenium-node.sh | 17 +++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 docker/Dockerfile create mode 100755 docker/start-selenium-node.sh (limited to 'docker') diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..354f66d1 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,42 @@ +FROM selenium/node-chrome + +ENV SE_SCREEN_WIDTH 1920 +ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret + +USER root + +# Python packages +RUN apt-get -qqy update \ + && apt-get -qqy install \ + python3 \ + python-is-python3 \ + pip + +# Cleanup +RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ + && apt-get -qyy autoremove \ + && apt-get -qyy clean + +# Update entrypoint +COPY docker/start-selenium-node.sh /opt/bin/ + +# Change background image +COPY g4f.png /usr/share/images/fluxbox/ubuntu-light.png + +# Switch user +USER 1200 + +# Set the working directory in the container. +WORKDIR /app + +# Copy the project's requirements file into the container. +COPY requirements.txt /app/ + +# Upgrade pip for the latest features and install the project's Python dependencies. +RUN pip install --upgrade pip && pip install -r requirements.txt + +# Copy the entire package into the container. +COPY g4f /app/g4f + +# Expose ports +EXPOSE 80 1337 \ No newline at end of file diff --git a/docker/start-selenium-node.sh b/docker/start-selenium-node.sh new file mode 100755 index 00000000..a02d0e82 --- /dev/null +++ b/docker/start-selenium-node.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Start the pulseaudio server +pulseaudio -D --exit-idle-time=-1 + +# Load the virtual sink and set it as default +pacmd load-module module-virtual-sink sink_name=v1 +pacmd set-default-sink v1 + +# Set the monitor of v1 sink to be the default source +pacmd set-default-source v1.monitor + +rm -f /tmp/.X*lock + +# Start app servers +python -m g4f.cli api & +python -m g4f.cli gui \ No newline at end of file -- cgit v1.2.3 From c667f1cec521534781de51e316d5edeed89bdb89 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Wed, 6 Dec 2023 11:54:50 +0100 Subject: Improve docker image --- docker/Dockerfile | 3 +- docker/start-selenium-node.sh | 17 ---------- docker/supervisor.conf | 76 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 18 deletions(-) delete mode 100755 docker/start-selenium-node.sh create mode 100755 docker/supervisor.conf (limited to 'docker') diff --git a/docker/Dockerfile b/docker/Dockerfile index 354f66d1..0c52940d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,6 +2,7 @@ FROM selenium/node-chrome ENV SE_SCREEN_WIDTH 1920 ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret +ENV PYTHONUNBUFFERED 1 USER root @@ -18,7 +19,7 @@ RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ && apt-get -qyy clean # Update entrypoint -COPY docker/start-selenium-node.sh /opt/bin/ +COPY docker/supervisor.conf /etc/supervisor/conf.d/selenium.conf # Change background image COPY g4f.png /usr/share/images/fluxbox/ubuntu-light.png diff --git a/docker/start-selenium-node.sh b/docker/start-selenium-node.sh deleted file mode 100755 index a02d0e82..00000000 --- a/docker/start-selenium-node.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Start the pulseaudio server -pulseaudio -D --exit-idle-time=-1 - -# Load the virtual sink and set it as default -pacmd load-module module-virtual-sink sink_name=v1 -pacmd set-default-sink v1 - -# Set the monitor of v1 sink to be the default source -pacmd set-default-source v1.monitor - -rm -f /tmp/.X*lock - -# Start app servers -python -m g4f.cli api & -python -m g4f.cli gui \ No newline at end of file diff --git a/docker/supervisor.conf b/docker/supervisor.conf new file mode 100755 index 00000000..6d82f6c9 --- /dev/null +++ b/docker/supervisor.conf @@ -0,0 +1,76 @@ +[program:xvfb] +priority=0 +command=/opt/bin/start-xvfb.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/xvfb-stdout.log +stderr_logfile=/var/log/supervisor/xvfb-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:vnc] +priority=5 +command=/opt/bin/start-vnc.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/vnc-stdout.log +stderr_logfile=/var/log/supervisor/vnc-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:novnc] +priority=10 +command=/opt/bin/start-novnc.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/novnc-stdout.log +stderr_logfile=/var/log/supervisor/novnc-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:g4f-cli] +priority=15 +command=python -m g4f.cli api +directory=/app +stopasgroup=true +autostart=true +autorestart=true + +;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs" +redirect_stderr=true +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 + +[program:g4f-gui] +priority=15 +command=python -m g4f.cli gui +directory=/app +stopasgroup=true +autostart=true +autorestart=true + +;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs" +redirect_stderr=true +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 \ No newline at end of file -- cgit v1.2.3