GithubHelp home page GithubHelp logo

wongsaang / chatgpt-ui Goto Github PK

View Code? Open in Web Editor NEW
1.4K 13.0 324.0 2.73 MB

A ChatGPT web client that supports multiple users, multiple languages, and multiple database connections for persistent data storage. Provides Docker images and quick deployment scripts.

Home Page: https://wongsaang.github.io/chatgpt-ui/

License: MIT License

Dockerfile 0.78% Vue 87.10% TypeScript 3.12% JavaScript 6.24% Shell 2.76%
chatgpt openai chatgpt-client node-chatgpt nuxt-chatgpt vue-chatgpt docker docker-chatgpt chatgpt-web django vue

chatgpt-ui's Introduction

ChatGPT UI

A ChatGPT web client that supports multiple users, multiple languages, and multiple database connections for persistent data storage.

The server of this project:https://github.com/WongSaang/chatgpt-ui-server

Special sponsors

  • Aissts - Support multiple types of robots, Pay as you go, no need for high subscription fees. Register now for a chance to get free credit.

Documentation

demo.mp4

chatgpt-ui's People

Contributors

afeigege avatar aindoria avatar amirhmoradi avatar cheaterscript avatar cxy-gpt avatar erritis avatar freshield avatar paramon avatar shizacat avatar wongsaang avatar xiaowen581 avatar zeekozhu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chatgpt-ui's Issues

请教怎样开启HTTPS访问

为了开启HTTPS访问,我计划使用nginx反向代理。客户端页面需要让出80端口,我尝试将docker-compose.yml中client的ports改为'81:80'。原来的页面加:81端口访问,但原页面好像无法正常使用了,请问我改端口的方法对吗?或者还有其他的方法添加SSL证书开启HTTPS?

ps:很棒的客户端,感谢分享!

Use docker-compose to deployment get POST http://192.168.8.182:20080/api/conversation/ 400 (Bad Request)

Deploy use docker-compose.yml, but when I sent a message I got error messages:

index.90447dd7.js:57          POST http://192.168.8.182:20080/api/conversation/ 400 (Bad Request)

Here's my docker-compose.yml

version: '3'
services:
  client:
    image: wongsaang/chatgpt-ui-client:latest
    environment:
      - SERVER_DOMAIN=http://backend-web-server
      - NUXT_PUBLIC_APP_NAME='ChatGPT UI'
      - NUXT_PUBLIC_TYPEWRITER=true
      - NUXT_PUBLIC_TYPEWRITER_DELAY=100
    depends_on:
      - backend-web-server
    ports:
      - '20080:80'
    networks:
      - chatgpt_ui_network
  backend-wsgi-server:
    image: wongsaang/chatgpt-ui-wsgi-server:latest
    environment:
      - APP_DOMAIN=192.168.8.182:9000
      #      - DB_URL=postgres://postgres:postgrespw@localhost:49153/chatgpt # If this parameter is not set, the built-in Sqlite will be used by default. It should be noted that if you do not connect to an external database, the data will be lost after the container is destroyed.
      - DJANGO_SUPERUSER_USERNAME=admin # default superuser name
      - DJANGO_SUPERUSER_PASSWORD=password # default superuser password
      - [email protected] # default superuser email
      # If you want to use the email verification function, you need to configure the following parameters
#      - EMAIL_HOST=SMTP server address
#      - EMAIL_PORT=SMTP server port
#      - EMAIL_HOST_USER=
#      - EMAIL_HOST_PASSWORD=
#      - EMAIL_USE_TLS=True
#- HTTP_PROXY=http://192.168.8.182:7890
#      - HTTPS_PROXY=http://192.168.8.182:7890
    ports:
      - '8000:8000'
    networks:
      - chatgpt_ui_network
  backend-web-server:
    image: wongsaang/chatgpt-ui-web-server:latest
    environment:
      - BACKEND_URL=http://backend-wsgi-server:8000
    ports:
      - '9000:80'
    depends_on:
      - backend-wsgi-server
    networks:
      - chatgpt_ui_network

networks:
  chatgpt_ui_network:
    driver: bridge

The delete conversation function is not working, what should I do?

I have tried logging in with both the admin account and a regular user account, and then granting all permissions to the user account. However, the delete all conversations button and the delete button for individual conversations still do not appear. What should I do to make this function work?
By the way, do you have a comprehensive guide for the values of settings that users can add?

Sign out option?

It'd be great if there was a 'sign out' button for security reasons.

docker build 后无法使用

docker build --target wsgi-server -t chatgpt-server-wsgi-server:latest .

docker run --rm -p 9000:8000 chatgpt-server-wsgi-server:latest

报错:
exec ./entrypoint.sh: no such file or directory

CSRF verification

Hello.

How can I white list csrf for cloudflare proxy in the docker compose yaml?

I tried using the sub domain name but it still encounter the csrf verification error.

Thank you.

Something went wrong when registering

Hello

I get the message "something went wrong" whenever making a new account.
I think it's a bug.

Althought "something went wrong", the account gets created and able to login.

Let me know what other information you need to help resolve the problem

输出代码太慢且样式错误

大佬现在这种一字一字输出很不适合大段内容啊,尤其是代码,太磨蹭了。
而且代码输出过程中可能是没检测到markdown的```结束符,样式一直在跳动,跳完了样式也是错误的,没有代码上色

Lose database when updating containers

When I update the containers via docker-compose, my whole database gets lost, including API key and users. Is there a way to avoid that? Also, even if I re-add the same user/password again, I struggle to log into the client in the same browser, but it works in a different browser, which I assume is a cache issue, but I don't understand why it wouldn't work if its the same user/pass?

Docker-compose with PostgreSQL

Hi, the default docker-compose set-up is running fine, thank you for the great job!
Now for permanent usage, I would like to use PostgreSQL instead of SQLite and I`m struggling at lot to make it work ;-)
Could you describe the steps to configure your project to use postgres in a docker-compose scenario?

admin 403

Forbidden (403)
CSRF verification failed. Request aborted.

More information is available with DEBUG=True.

The chat response will be aborted with "Server closed the connection unexpectedly"

Hello @WongSaang ,

I think it's a very good application.
The chat response will be aborted with the following error if it takes longer than 30 seconds:

Failed to send message. Server closed the connection unexpectedly.

Checking the developer tool, the location where the error occurs is as follows:

if (ctrl.signal.aborted === true) {

I think it is caught in a timeout somewhere(nginx? or gunicorn?), is it possible to fix it?

Which files contain the theme colours etc?

Hi, I've tested this and it's great! But I was wondering where the theme colours etc are stored for the css of the client, as I'd like to change the theme up a little, if thats possible?

能否使对话连续的输出

大佬,能否使对话连续输出,即一个字一个字连续输出,而不是输出几行然后停止,等一会又输出几行。还有一个就是,如果网页后台了,输出就好像停止了,切换回来才会继续。

Progressive web app

Hello

Would it be possible to provide the website as a PWA (PROGRESSIVE WEB APP)? It would allow installation as an app on the android os.

Thank you

It won't connect to MySQL

ubuntu@ip-172-26-12-199:~/chatgpt-ui$ sudo docker-compose up
/snap/docker/2746/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography (40.0) will be the last to support Python 3.6.
  from cryptography.hazmat.backends import default_backend
Recreating chatgpt-ui_backend-wsgi-server_1 ... done
Recreating chatgpt-ui_backend-web-server_1  ... done
Recreating chatgpt-ui_client_1              ... done
Attaching to chatgpt-ui_backend-wsgi-server_1, chatgpt-ui_backend-web-server_1, chatgpt-ui_client_1
backend-web-server_1   | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
backend-web-server_1   | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
backend-web-server_1   | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
backend-web-server_1   | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
backend-web-server_1   | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
backend-web-server_1   | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
backend-web-server_1   | 20-envsubst-on-templates.sh: Running envsubst on /etc/nginx/templates/default.conf.template to /etc/nginx/conf.d/default.conf
backend-web-server_1   | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
backend-web-server_1   | /docker-entrypoint.sh: Configuration complete; ready for start up
backend-web-server_1   | 2023/03/11 11:26:49 [notice] 1#1: using the "epoll" event method
backend-web-server_1   | 2023/03/11 11:26:49 [notice] 1#1: nginx/1.22.1
backend-web-server_1   | 2023/03/11 11:26:49 [notice] 1#1: built by gcc 11.2.1 20220219 (Alpine 11.2.1_git20220219) 
backend-web-server_1   | 2023/03/11 11:26:49 [notice] 1#1: OS: Linux 4.15.0-1021-aws
backend-web-server_1   | 2023/03/11 11:26:49 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:4096
backend-web-server_1   | 2023/03/11 11:26:49 [notice] 1#1: start worker processes
backend-web-server_1   | 2023/03/11 11:26:49 [notice] 1#1: start worker process 34
backend-wsgi-server_1  | Traceback (most recent call last):
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 282, in ensure_connection
backend-wsgi-server_1  |     self.connect()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 263, in connect
backend-wsgi-server_1  |     self.connection = self.get_new_connection(conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 247, in get_new_connection
backend-wsgi-server_1  |     connection = Database.connect(**conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/__init__.py", line 123, in Connect
backend-wsgi-server_1  |     return Connection(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/connections.py", line 185, in __init__
backend-wsgi-server_1  |     super().__init__(*args, **kwargs2)
backend-wsgi-server_1  | MySQLdb.OperationalError: (2005, "Unknown MySQL server host 'host.docker.internal' (-2)")
backend-wsgi-server_1  | 
backend-wsgi-server_1  | The above exception was the direct cause of the following exception:
backend-wsgi-server_1  | 
backend-wsgi-server_1  | Traceback (most recent call last):
backend-wsgi-server_1  |   File "/app/manage.py", line 22, in <module>
backend-wsgi-server_1  |     main()
backend-wsgi-server_1  |   File "/app/manage.py", line 18, in main
backend-wsgi-server_1  |     execute_from_command_line(sys.argv)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
backend-wsgi-server_1  |     utility.execute()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
backend-wsgi-server_1  |     self.fetch_command(subcommand).run_from_argv(self.argv)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
backend-wsgi-server_1  |     self.execute(*args, **cmd_options)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
backend-wsgi-server_1  |     output = self.handle(*args, **options)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 96, in wrapped
backend-wsgi-server_1  |     res = handle_func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 97, in handle
backend-wsgi-server_1  |     self.check(databases=[database])
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 475, in check
backend-wsgi-server_1  |     all_issues = checks.run_checks(
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/checks/registry.py", line 88, in run_checks
backend-wsgi-server_1  |     new_errors = check(app_configs=app_configs, databases=databases)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/checks/model_checks.py", line 36, in check_all_models
backend-wsgi-server_1  |     errors.extend(model.check(**kwargs))
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 1536, in check
backend-wsgi-server_1  |     *cls._check_indexes(databases),
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 1955, in _check_indexes
backend-wsgi-server_1  |     connection.features.supports_expression_indexes
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__
backend-wsgi-server_1  |     res = instance.__dict__[self.name] = self.func(instance)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/features.py", line 371, in supports_expression_indexes
backend-wsgi-server_1  |     not self.connection.mysql_is_mariadb
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__
backend-wsgi-server_1  |     res = instance.__dict__[self.name] = self.func(instance)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 439, in mysql_is_mariadb
backend-wsgi-server_1  |     return "mariadb" in self.mysql_server_info.lower()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__
backend-wsgi-server_1  |     res = instance.__dict__[self.name] = self.func(instance)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 425, in mysql_server_info
backend-wsgi-server_1  |     return self.mysql_server_data["version"]
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__
backend-wsgi-server_1  |     res = instance.__dict__[self.name] = self.func(instance)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 399, in mysql_server_data
backend-wsgi-server_1  |     with self.temporary_connection() as cursor:
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
backend-wsgi-server_1  |     return next(self.gen)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 694, in temporary_connection
backend-wsgi-server_1  |     with self.cursor() as cursor:
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 323, in cursor
backend-wsgi-server_1  |     return self._cursor()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 299, in _cursor
backend-wsgi-server_1  |     self.ensure_connection()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 281, in ensure_connection
backend-wsgi-server_1  |     with self.wrap_database_errors:
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/utils.py", line 91, in __exit__
backend-wsgi-server_1  |     raise dj_exc_value.with_traceback(traceback) from exc_value
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 282, in ensure_connection
backend-wsgi-server_1  |     self.connect()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 263, in connect
backend-wsgi-server_1  |     self.connection = self.get_new_connection(conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 247, in get_new_connection
backend-wsgi-server_1  |     connection = Database.connect(**conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/__init__.py", line 123, in Connect
backend-wsgi-server_1  |     return Connection(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/connections.py", line 185, in __init__
backend-wsgi-server_1  |     super().__init__(*args, **kwargs2)
backend-wsgi-server_1  | django.db.utils.OperationalError: (2005, "Unknown MySQL server host 'host.docker.internal' (-2)")
client_1               | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
client_1               | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
client_1               | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
client_1               | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
client_1               | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
client_1               | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
client_1               | 20-envsubst-on-templates.sh: Running envsubst on /etc/nginx/templates/default.conf.template to /etc/nginx/conf.d/default.conf
client_1               | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
client_1               | /docker-entrypoint.sh: Configuration complete; ready for start up
client_1               | 2023/03/11 11:26:50 [notice] 1#1: using the "epoll" event method
client_1               | 2023/03/11 11:26:50 [notice] 1#1: nginx/1.23.3
client_1               | 2023/03/11 11:26:50 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4) 
client_1               | 2023/03/11 11:26:50 [notice] 1#1: OS: Linux 4.15.0-1021-aws
client_1               | 2023/03/11 11:26:50 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:4096
client_1               | 2023/03/11 11:26:50 [notice] 1#1: start worker processes
client_1               | 2023/03/11 11:26:50 [notice] 1#1: start worker process 34
backend-wsgi-server_1  | Traceback (most recent call last):
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 282, in ensure_connection
backend-wsgi-server_1  |     self.connect()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 263, in connect
backend-wsgi-server_1  |     self.connection = self.get_new_connection(conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 247, in get_new_connection
backend-wsgi-server_1  |     connection = Database.connect(**conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/__init__.py", line 123, in Connect
backend-wsgi-server_1  |     return Connection(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/connections.py", line 185, in __init__
backend-wsgi-server_1  |     super().__init__(*args, **kwargs2)
backend-wsgi-server_1  | MySQLdb.OperationalError: (2005, "Unknown MySQL server host 'host.docker.internal' (-2)")
backend-wsgi-server_1  | 
backend-wsgi-server_1  | The above exception was the direct cause of the following exception:
backend-wsgi-server_1  | 
backend-wsgi-server_1  | Traceback (most recent call last):
backend-wsgi-server_1  |   File "/app/manage.py", line 22, in <module>
backend-wsgi-server_1  |     main()
backend-wsgi-server_1  |   File "/app/manage.py", line 18, in main
backend-wsgi-server_1  |     execute_from_command_line(sys.argv)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
backend-wsgi-server_1  |     utility.execute()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
backend-wsgi-server_1  |     self.fetch_command(subcommand).run_from_argv(self.argv)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
backend-wsgi-server_1  |     self.execute(*args, **cmd_options)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 88, in execute
backend-wsgi-server_1  |     return super().execute(*args, **options)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 447, in execute
backend-wsgi-server_1  |     self.check_migrations()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 564, in check_migrations
backend-wsgi-server_1  |     executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/executor.py", line 18, in __init__
backend-wsgi-server_1  |     self.loader = MigrationLoader(self.connection)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 58, in __init__
backend-wsgi-server_1  |     self.build_graph()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 235, in build_graph
backend-wsgi-server_1  |     self.applied_migrations = recorder.applied_migrations()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 81, in applied_migrations
backend-wsgi-server_1  |     if self.has_table():
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 57, in has_table
backend-wsgi-server_1  |     with self.connection.cursor() as cursor:
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 323, in cursor
backend-wsgi-server_1  |     return self._cursor()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 299, in _cursor
backend-wsgi-server_1  |     self.ensure_connection()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 281, in ensure_connection
backend-wsgi-server_1  |     with self.wrap_database_errors:
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/utils.py", line 91, in __exit__
backend-wsgi-server_1  |     raise dj_exc_value.with_traceback(traceback) from exc_value
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 282, in ensure_connection
backend-wsgi-server_1  |     self.connect()
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 263, in connect
backend-wsgi-server_1  |     self.connection = self.get_new_connection(conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
backend-wsgi-server_1  |     return func(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 247, in get_new_connection
backend-wsgi-server_1  |     connection = Database.connect(**conn_params)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/__init__.py", line 123, in Connect
backend-wsgi-server_1  |     return Connection(*args, **kwargs)
backend-wsgi-server_1  |   File "/usr/local/lib/python3.10/site-packages/MySQLdb/connections.py", line 185, in __init__
backend-wsgi-server_1  |     super().__init__(*args, **kwargs2)
backend-wsgi-server_1  | django.db.utils.OperationalError: (2005, "Unknown MySQL server host 'host.docker.internal' (-2)")
backend-wsgi-server_1  | [2023-03-11 11:26:51 +0000] [1] [INFO] Starting gunicorn 20.1.0
backend-wsgi-server_1  | [2023-03-11 11:26:51 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
backend-wsgi-server_1  | [2023-03-11 11:26:51 +0000] [1] [INFO] Using worker: sync
backend-wsgi-server_1  | [2023-03-11 11:26:51 +0000] [8] [INFO] Booting worker with pid: 

After so many attempts, it refuses to connect to MySQL running on my hist machine. I tried with local IP, localhost, and the sever IP. None of them would work.

backend beautification

Brother, I think the back-end permission setting page can be considered to beautify it. At present, I feel that this part affects the use a bit 😄 Thanks for updating and sharing!

what's the version of openAPI used in the web server?

I tried this project and everything goes well until I found my account getting terminiated. although the server was launched in singapore. what's the version of openapi used in the web server? I found there is another warning in another project:
image

thanks

/admin 404, page not found

Hello again!

Using the following YML for docker compose, all looks well, yet I am unable to open the admin page, instead I get an error 404. Is there anything wrong with the changes I have made to the default configuration?

version: '3'
services:
  client:
    image: wongsaang/chatgpt-ui-client:latest
    environment:
      - SERVER_DOMAIN=https://chatgpt.MYDOMAIN.COM
      - NUXT_PUBLIC_APP_NAME='ChatGPT UI'
      - NUXT_PUBLIC_TYPEWRITER=true
      - NUXT_PUBLIC_TYPEWRITER_DELAY=100
    depends_on:
      - backend-web-server
    ports:
      - '2480:80'
    networks:
      - chatgpt_ui_network
  backend-wsgi-server:
    image: wongsaang/chatgpt-ui-wsgi-server:latest
    environment:
      - APP_DOMAIN=127.0.0.1:2428
      #      - DB_URL=postgres://postgres:postgrespw@localhost:49153/chatgpt # If this parameter is not set, the built-in Sqlite will be used by default. It should be noted that if you do not connect to an external database, the data will be lost after the container is destroyed.
      - DJANGO_SUPERUSER_USERNAME=admin # default superuser name
      - DJANGO_SUPERUSER_PASSWORD=password # default superuser password
      - [email protected] # default superuser email
      # If you want to use the email verification function, you need to configure the following parameters
#      - EMAIL_HOST=SMTP server address
#      - EMAIL_PORT=SMTP server port
#      - EMAIL_HOST_USER=
#      - EMAIL_HOST_PASSWORD=
#      - EMAIL_USE_TLS=True
    volumes:
      - /volume1/docker/chatpgpt-ui/db.sqlite3:/app/db.sqlite3
    ports:
      - '8000:8000'
    networks:
      - chatgpt_ui_network
  backend-web-server:
    image: wongsaang/chatgpt-ui-web-server:latest
    environment:
      - BACKEND_URL=http://127.0.0.1:8000
    ports:
      - '2428:80'
    depends_on:
      - backend-wsgi-server
    networks:
      - chatgpt_ui_network

networks:
  chatgpt_ui_network:
    driver: bridge

I made a couple of changes as ports 80 and 9000 are unavailable/already in use. Changed ports to 2480 and 2428.

Thanks! : )

Using davinci-003-model instead of chatgpt model

First of all, great works!
However, I noticed that it is using the official davinci-003-model rather than the ChatGPT model.
I guess it's better to state that davinci-003-model is used at this state.

Environment variables for theme colours

Could you please add the ability to set custom theme colors via environment variables, for more flexible UI visuals?

Perhaps, for simplicity of implementation, an environment variable for the general colors of both the light & dark themes like this:

DARK_PRIMARY=#HexCode
DARK_SECONDARY=#HexCode
DARK_ACCENT=#HexCode
etc

LIGHT_PRIMARY=#HexCode
LIGHT_SECONDARY=#HexCode
LIGHT_ACCENT=#HexCode
etc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.