From c6e9b1cfb6d7240483fcca33a30d553b8e940d79 Mon Sep 17 00:00:00 2001 From: Shubham Verlekar Date: Thu, 16 Feb 2023 03:34:42 +0530 Subject: [PATCH] Update setup instructions and environment variables - Upgrade pip, setuptools, and wheel - Install dependencies - Add environment variables for OpenAI API token, Discord bot token, debug guild and channel, allowed guilds, admin roles, Dalle roles, GPT roles, welcome message, user input API keys, moderation alert channel, and user key DB path - Set volume mounts for container and shared folder - Raise the amount of returned recordings from 10 to 100 - Add docker and docker-compose installation instructions [Dockerfile] - Add OpenAI token, Discord token, Pinecone token, debug guild, debug channel, allowed guilds, admin roles, dalle roles, GPT roles, welcome message, user input API keys, moderation alert channel, and user key database path environment variables - Upgrade pip, setuptools, and wheel - Install dependencies - Copy minimal files to main image [docker-compose.yml] - Add Docker Compose configuration for GPT3Discord - Set environment variables for OpenAI API token, Discord bot token, debug guild and channel, allowed guilds, admin roles, Dalle roles, GPT roles, welcome message, user input API keys, moderation alert channel, and user key DB path - Set volume mounts for container and shared folder [README.md] - Raise the amount of returned recordings from 10 to 100 - Add docker and docker-compose installation instructions - Add environment variables to docker-compose.yml - Add instructions for non-server, non-docker installation (Windows included) --- Dockerfile | 18 ++++++++++++++++++ README.md | 47 ++++++++++++++++++++++++++++++++++++++++++++-- docker-compose.yml | 22 ++++++++++++++++++++++ sample.env | 2 +- 4 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index d49d566..6a67690 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ ARG PY_VERSION=3.9 + + # Build container FROM python:${PY_VERSION} as base FROM base as builder @@ -17,6 +19,7 @@ RUN apt-get update RUN curl https://sh.rustup.rs -sSf | bash -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" + RUN mkdir /install /src WORKDIR /install RUN pip install --target="/install" --upgrade pip setuptools wheel @@ -40,6 +43,21 @@ RUN pip install --target="/install" /src # Copy minimal to main image (to keep as small as possible) FROM python:${PY_VERSION}-slim + +ENV OPENAI_TOKEN="" +ENV DISCORD_TOKEN="" +ENV PINECONE_TOKEN="" +ENV DEBUG_GUILD="" +ENV DEBUG_CHANNEL="" +ENV ALLOWED_GUILDS="" +ENV ADMIN_ROLES="" +ENV DALLE_ROLES="" +ENV GPT_ROLES="" +ENV WELCOME_MESSAGE="" +ENV USER_INPUT_API_KEYS="" +ENV MODERATIONS_ALERT_CHANNEL="" +ENV USER_KEY_DB_PATH="" + ARG PY_VERSION COPY . . COPY --from=builder /install /usr/local/lib/python${PY_VERSION}/site-packages diff --git a/README.md b/README.md index 16cffe3..e326d04 100644 --- a/README.md +++ b/README.md @@ -415,7 +415,7 @@ As a last resort, you can try to run the bot using python in a basic way, with s cd (the folder where the files for GPT3Discord are located/cloned) python3.9 gpt3discord.py ``` - + + +### Docker and Docker Compose : +To use docker you can use the following command +``` +docker run -d --name gpt3discord -v /containers/gpt3discord:/data -v /containers/gpt3discord/share:/data/share --env-file /path/to/.env gpt3discord:latest +``` +Make sure that the /data and /data/share are created and the `env-file` path is correct. + + + + + +#### Docker Compose +To use Docker Compose, you need to have Docker and Docker Compose installed on your system. You can download and install them from the following links: + +- Docker +- Docker Compose + +[You will need to install Docker for Desktop if you are on a desktop machine such as Windows or Mac, trying to run this] + + +To start the gpt3discord container with Docker Compose, follow these steps: + +1. Open a terminal or command prompt and navigate to the directory that contains the docker-compose.yml file. +2. Open the docker-compose.yml file and replace the environment variable values with your actual tokens and IDs. +3. Run the following command to start the container in detached mode: + +``` +Copy codedocker-compose up -d +``` + +This will start the container and use the settings in the docker-compose.yml file. The -d option tells Docker Compose to run the container in the background (detached mode). + + +To stop the gpt3discord container, run the following command: + +``` +Copy codedocker-compose down +``` + +This will stop the container and remove the services and networks defined in the docker-compose.yml file. + +That's it! With these simple steps, you can start and stop the gpt3discord container using Docker Compose. ### Non-Server, Non-Docker installation (Windows included) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c45c697 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.8' +services: + gpt3discord: + image: gpt3discord:latest + container_name: gpt3discord + environment: + OPENAI_TOKEN: "" + DISCORD_TOKEN: "" + DEBUG_GUILD: "974519864045756446" + DEBUG_CHANNEL: "977697652147892304" + ALLOWED_GUILDS: "971268468148166697,971268468148166697" + ADMIN_ROLES: "Admin,Owner" + DALLE_ROLES: "Admin,Openai,Dalle,gpt" + GPT_ROLES: "openai,gpt" + WELCOME_MESSAGE: "Hi There! Welcome to our Discord server. We hope you'll enjoy our server and we look forward to engaging with you!" + USER_INPUT_API_KEYS: "False" + MODERATIONS_ALERT_CHANNEL: "977697652147892304" + USER_KEY_DB_PATH: "user_key_db.sqlite" + volumes: + - /containers/gpt3discord:/data + - /containers/gpt3discord/share:/data/share + restart: always diff --git a/sample.env b/sample.env index 0be17d6..b50a2d4 100644 --- a/sample.env +++ b/sample.env @@ -22,4 +22,4 @@ USER_INPUT_API_KEYS="False" # If True, users must use their own API keys for Ope MODERATIONS_ALERT_CHANNEL = "977697652147892304" # User API key db path configuration. This is where the user API keys will be stored. -USER_KEY_DB_PATH = "user_key_db.sqlite" +USER_KEY_DB_PATH = "user_key_db.sqlite" \ No newline at end of file