Skip to main content

FreeAskInternet

FreeAskInternet is a completely free, private and locally running search aggregator & answer generate using LLM, Without GPU needed. The user can ask a question and the system will use searxng to make a multi engine search and combine the search result to the ChatGPT3.5 LLM and generate the answer based on search results. All process running locally and No GPU or OpenAI or Google API keys are needed.

git clone https://github.com/nashsu/FreeAskInternet.git
cd ./FreeAskInternet
docker-compose up -d 

Feeling spicy ? Try this shit out:

networks:
  freeaskinternet_default:
    external: true
    name: "freeaskinternet_default"

services:

  freeaskinternet-backend-1:
    command:
      - "server.py"
    container_name: "freeaskinternet-backend-1"
    entrypoint:
      - "python3"
    environment:
      - "PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "LANG=C.UTF-8"
      - "GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568"
      - "PYTHON_VERSION=3.9.15"
      - "PYTHON_PIP_VERSION=22.0.4"
      - "PYTHON_SETUPTOOLS_VERSION=58.1.0"
      - "PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/66030fa03382b4914d4c4d0896961a0bdeeeb274/public/get-pip.py"
      - "PYTHON_GET_PIP_SHA256=1e501cf004eac1b7eb1f97266d28f995ae835d30250bec7f8850562703067dc6"
    expose:
      - "8000/tcp"
    hostname: "55226ab67b8a"
    image: "docker.io/nashsu/free_ask_internet:latest"
    ipc: "private"
    labels:
      com.docker.compose.config-hash: "f5f70b9ca8856bc79cbc29ef1d8b507e48287735f54d6f1faba0ab4f39e2fd2c"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: "llm-freegpt35:service_started:false"
      com.docker.compose.image: "sha256:98fe4e92e1c51ddf4963400c19edc998ecab4d928ecf56cad59c519881572d7f"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "backend"
      com.docker.compose.version: "2.27.0"
    logging:
      driver: "json-file"
      options: {}
    networks:
      - "freeaskinternet_default"
    restart: "on-failure"
    working_dir: "/app"

  freeaskinternet-chatgpt-next-web-1:

    command:
      - "/bin/sh"
      - "-c"
      - "if [ -n \"$PROXY_URL\" ]; then     export HOSTNAME=\"127.0.0.1\";     protocol=$(echo $PROXY_URL\
        \ | cut -d: -f1);     host=$(echo $PROXY_URL | cut -d/ -f3 | cut -d: -f1);     port=$(echo $PROXY_URL\
        \ | cut -d: -f3);     conf=/etc/proxychains.conf;     echo \"strict_chain\" > $conf;     echo\
        \ \"proxy_dns\" >> $conf;     echo \"remote_dns_subnet 224\" >> $conf;     echo \"tcp_read_time_out\
        \ 15000\" >> $conf;     echo \"tcp_connect_time_out 8000\" >> $conf;     echo \"localnet 127.0.0.0/255.0.0.0\"\
        \ >> $conf;     echo \"localnet ::1/128\" >> $conf;     echo \"[ProxyList]\" >> $conf;     echo\
        \ \"$protocol $host $port\" >> $conf;     cat /etc/proxychains.conf;     proxychains -f $conf\
        \ node server.js;     else     node server.js;     fi"

    container_name: "freeaskinternet-chatgpt-next-web-1"

    entrypoint:
      - "docker-entrypoint.sh"

    environment:
      - "CUSTOM_MODELS=-all,+gpt-3.5-turbo"
      - "OPENAI_API_KEY=FreeAskInternet"
      - "BASE_URL=http://backend:8000"
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "NODE_VERSION=18.20.2"
      - "YARN_VERSION=1.22.19"
      - "PROXY_URL="
      - "GOOGLE_API_KEY="
      - "CODE="

    hostname: "d91bd72f9ceb"

    image: "yidadaa/chatgpt-next-web"

    ipc: "private"

    labels:
      com.docker.compose.config-hash: "995ddb15df366e72330778bffbf3b3ff94fb96314af4399cf0e9da8daa43cac3"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: "llm-freegpt35:service_started:false"
      com.docker.compose.image: "sha256:f4666e8c59d9e864d55aad3700f0de304bded7fb3d0acd6008938959627a2c66"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "chatgpt-next-web"
      com.docker.compose.version: "2.27.0"
      org.opencontainers.image.created: "2024-05-14T09:37:52.274Z"
      org.opencontainers.image.description: "A cross-platform ChatGPT/Gemini UI (Web / PWA / Linux / Win\
        \ / MacOS). 一键拥有你自己的跨平台 ChatGPT/Gemini 应用。"
      org.opencontainers.image.licenses: "MIT"
      org.opencontainers.image.revision: "cf635a5e6fe21b5ae4cfc4f17ec7f7f2f8aa053e"
      org.opencontainers.image.source: "https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web"
      org.opencontainers.image.title: "ChatGPT-Next-Web"
      org.opencontainers.image.url: "https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web"
      org.opencontainers.image.version: "v2.12.3"

    logging:
      driver: "json-file"
      options: {}

    networks:
      - "freeaskinternet_default"

    ports:
      - "3030:3000/tcp"

    restart: "always"

    working_dir: "/app"

  freeaskinternet-freeaskinternet-ui-1:
    container_name: "freeaskinternet-freeaskinternet-ui-1"
    entrypoint:
      - "/bin/sh"
      - "/data/generate-config.sh"
    environment:
      - "BACKEND_HOST=backend:8000"
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "NGINX_VERSION=1.25.4"
      - "PKG_RELEASE=1"
      - "NJS_VERSION=0.8.3"
    hostname: "9f1f027ddc20"
    image: "docker.io/nashsu/free_ask_internet_ui:latest"
    ipc: "private"
    labels:
      com.docker.compose.config-hash: "65a0a9b2dd098c91d00b45b0faedfdc18643c654a04420912e1f72223dfbf066"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: "backend:service_started:false"
      com.docker.compose.image: "sha256:01d7402232616e6c6ebc5ca7804cc7543616debe6193b1f105ae7fae8e45a5fa"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "freeaskinternet-ui"
      com.docker.compose.version: "2.27.0"
      maintainer: "NGINX Docker Maintainers <docker-maint@nginx.com>"
    logging:
      driver: "json-file"
      options: {}
    networks:
      - "freeaskinternet_default"
    ports:
      - "3000:80/tcp"
    restart: "always"
    working_dir: "/data"

  freeaskinternet-llm-freegpt35-1:

    command:
      - "node"
      - "app.js"

    container_name: "freeaskinternet-llm-freegpt35-1"

    entrypoint:
      - "docker-entrypoint.sh"

    environment:
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "NODE_VERSION=21.7.3"
      - "YARN_VERSION=1.22.19"

    expose:
      - "3040/tcp"

    hostname: "6c4928cf1b1c"

    image: "missuo/freegpt35:latest"

    ipc: "private"

    labels:
      com.docker.compose.config-hash: "2e9af5a824aefce8a20b83f617ef893932790f93b878e46fae9f4997e63b8b5c"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: ""
      com.docker.compose.image: "sha256:c75d531daf82f0b2b1a9b2e782dfb30465c39c7fe54c6afd616a3e39d2cb7d30"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "llm-freegpt35"
      com.docker.compose.version: "2.27.0"
      org.opencontainers.image.created: "2024-04-21T05:57:41.050Z"
      org.opencontainers.image.description: "Utilize the unlimited free GPT-3.5-Turbo API service provided\
        \ by the login-free ChatGPT Web."
      org.opencontainers.image.licenses: "AGPL-3.0"
      org.opencontainers.image.revision: "b4c62270753d648aec9b56194f03d04425371b64"
      org.opencontainers.image.source: "https://github.com/missuo/FreeGPT35"
      org.opencontainers.image.title: "FreeGPT35"
      org.opencontainers.image.url: "https://github.com/missuo/FreeGPT35"
      org.opencontainers.image.version: "v1.0.3"

    logging:
      driver: "json-file"
      options: {}

    networks:
      - "freeaskinternet_default"

    restart: "always"

    working_dir: "/usr/src/app"

  freeaskinternet-llm-glm4-1:
    command:
      - "npm"
      - "start"
    container_name: "freeaskinternet-llm-glm4-1"
    entrypoint:
      - "docker-entrypoint.sh"
    environment:
      - "TZ=Asia/Shanghai"
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "NODE_VERSION=20.12.2"
      - "YARN_VERSION=1.22.19"
    expose:
      - "8000/tcp"
    hostname: "671d6b06305b"
    image: "vinlic/glm-free-api:latest"
    ipc: "private"
    labels:
      com.docker.compose.config-hash: "c7da6e379caf5847357ed8a50ccebfd99520f4ab74da202981bf805eb601aaa6"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: ""
      com.docker.compose.image: "sha256:25297b723d80f324fe5fe2f575ac77dc99b554f19e1e99aac04e04f331cf3152"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "llm-glm4"
      com.docker.compose.version: "2.27.0"
    logging:
      driver: "json-file"
      options: {}
    networks:
      - "freeaskinternet_default"
    restart: "always"
    working_dir: "/app"

  freeaskinternet-llm-kimi-1:
    command:
      - "npm"
      - "start"
    container_name: "freeaskinternet-llm-kimi-1"
    entrypoint:
      - "docker-entrypoint.sh"
    environment:
      - "TZ=Asia/Shanghai"
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "NODE_VERSION=20.12.2"
      - "YARN_VERSION=1.22.19"
    expose:
      - "8000/tcp"
    hostname: "c2b7a29ac31b"
    image: "vinlic/kimi-free-api:latest"
    ipc: "private"
    labels:
      com.docker.compose.config-hash: "a323333684f35efaab9c9a2d890c77dd6b94bdfde91a7ba4f21712eba2b93d2d"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: ""
      com.docker.compose.image: "sha256:98ff6a7e693d2d864c46435394a1c259403f0a35d7de1ad4e7d3f01257a93575"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "llm-kimi"
      com.docker.compose.version: "2.27.0"
    logging:
      driver: "json-file"
      options: {}
    networks:
      - "freeaskinternet_default"
    restart: "always"
    working_dir: "/app"

  freeaskinternet-llm-qwen-1:
    command:
      - "npm"
      - "start"
    container_name: "freeaskinternet-llm-qwen-1"
    entrypoint:
      - "docker-entrypoint.sh"
    environment:
      - "TZ=Asia/Shanghai"
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "NODE_VERSION=20.13.1"
      - "YARN_VERSION=1.22.19"
    expose:
      - "8000/tcp"
    hostname: "134e3a7697e8"
    image: "vinlic/qwen-free-api:latest"
    ipc: "private"
    labels:
      com.docker.compose.config-hash: "6bf517a5d6f525418f968c76ee2a308ba3dfabb7e3f6ce22a8544848befde6ee"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: ""
      com.docker.compose.image: "sha256:1dc8a3918999b6f37bac7199081e413e89907c741e52c4445b4f837b1988be55"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "llm-qwen"
      com.docker.compose.version: "2.27.0"
    logging:
      driver: "json-file"
      options: {}
    networks:
      - "freeaskinternet_default"
    restart: "always"
    working_dir: "/app"

  freeaskinternet-searxng-1:

    cap_drop:
      - "ALL"

    container_name: "freeaskinternet-searxng-1"

    entrypoint:
      - "/sbin/tini"
      - "--"
      - "/usr/local/searxng/dockerfiles/docker-entrypoint.sh"

    environment:
      - "SEARXNG_BASE_URL=https://localhost/"
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "INSTANCE_NAME=searxng"
      - "AUTOCOMPLETE="
      - "BASE_URL="
      - "MORTY_KEY="
      - "MORTY_URL="
      - "SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml"
      - "UWSGI_SETTINGS_PATH=/etc/searxng/uwsgi.ini"
      - "UWSGI_WORKERS=%k"
      - "UWSGI_THREADS=4"

    expose:
      - "8080/tcp"

    hostname: "57bd913a80a3"

    image: "docker.io/searxng/searxng:latest"

    ipc: "private"

    labels:
      com.docker.compose.config-hash: "0d074aae5f883d0f2b78373c201d847e610d78f3fe27f2d7f4f7da9bc460581b"
      com.docker.compose.container-number: "1"
      com.docker.compose.depends_on: ""
      com.docker.compose.image: "sha256:253fcf66aef5e3654f1fc3ca986853301e91db905eb31d7e9ac658f871b686da"
      com.docker.compose.oneoff: "False"
      com.docker.compose.project: "freeaskinternet"
      com.docker.compose.project.config_files: "/srv/Files/FreeAskInternet/docker-compose.yaml"
      com.docker.compose.project.working_dir: "/srv/Files/FreeAskInternet"
      com.docker.compose.service: "searxng"
      com.docker.compose.version: "2.27.0"
      description: "A privacy-respecting, hackable metasearch engine."
      maintainer: "searxng <https://github.com/searxng/searxng>"
      org.label-schema.build-date: "2024-05-16T05:34:24Z"
      org.label-schema.name: "searxng"
      org.label-schema.schema-version: "1.0"
      org.label-schema.url: "https://github.com/searxng/searxng"
      org.label-schema.usage: "https://github.com/searxng/searxng-docker"
      org.label-schema.vcs-ref: "2f2d93b292a62c0d78187f3cac0cda7599efc066"
      org.label-schema.vcs-url: "https://github.com/searxng/searxng"
      org.label-schema.version: "2024.5.16+2f2d93b29"
      org.opencontainers.image.created: "2024-05-16T05:34:24Z"
      org.opencontainers.image.documentation: "https://github.com/searxng/searxng-docker"
      org.opencontainers.image.revision: "2f2d93b292a62c0d78187f3cac0cda7599efc066"
      org.opencontainers.image.source: "https://github.com/searxng/searxng"
      org.opencontainers.image.title: "searxng"
      org.opencontainers.image.url: "https://github.com/searxng/searxng"
      org.opencontainers.image.version: "2024.5.16-2f2d93b29"
      version: "2024.5.16+2f2d93b29"

    logging:
      driver: "json-file"
      options:
        max-file: "1"
        max-size: "1m"

    networks:
      - "freeaskinternet_default"

    restart: "always"

    volumes:
      - "/srv/Files/FreeAskInternet/searxng:/etc/searxng"

    working_dir: "/usr/local/searxng"

version: "3.6"