summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorHeiner Lohaus <hlohaus@users.noreply.github.com>2023-12-06 09:35:36 +0100
committerHeiner Lohaus <hlohaus@users.noreply.github.com>2023-12-06 09:35:36 +0100
commit3576dee75a1623aa2385b6afe8b922ad5affca26 (patch)
treef54f68590875e4e67adaab03139f18167ffc7fa1 /docker
parentAdd get_session_from_browser as cloudflare bypass (diff)
downloadgpt4free-3576dee75a1623aa2385b6afe8b922ad5affca26.tar
gpt4free-3576dee75a1623aa2385b6afe8b922ad5affca26.tar.gz
gpt4free-3576dee75a1623aa2385b6afe8b922ad5affca26.tar.bz2
gpt4free-3576dee75a1623aa2385b6afe8b922ad5affca26.tar.lz
gpt4free-3576dee75a1623aa2385b6afe8b922ad5affca26.tar.xz
gpt4free-3576dee75a1623aa2385b6afe8b922ad5affca26.tar.zst
gpt4free-3576dee75a1623aa2385b6afe8b922ad5affca26.zip
Diffstat (limited to '')
-rw-r--r--docker-compose.yml15
-rw-r--r--docker/Dockerfile42
-rwxr-xr-xdocker/start-selenium-node.sh17
3 files changed, 66 insertions, 8 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
index 43aa6c02..89b11f06 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,18 +1,17 @@
version: '3'
services:
- gpt4free-api: &gpt4free
+ gpt4free:
image: gpt4free:latest
+ shm_size: 2gb
build:
context: .
- dockerfile: Dockerfile
+ dockerfile: docker/Dockerfile
cache_from:
- gpt4free:latest
- ports:
- - '1337:1337'
- command: api
- gpt4free-gui:
- <<: *gpt4free
+ volumes:
+ - .:/app
ports:
- '8080:80'
- command: gui
+ - '1337:1337'
+ - '7900:7900' \ No newline at end of file
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