FAQ
how to backup and restore the database?
QD uses sqlite3 as the framework database by default, and the database.db
file is saved in config
directory. When deploying with a Docker container, you can use the docker cp
command to back up the database file, and then use the docker cp
command to restore the database file in the new container.
# database backup
docker cp container_name:/usr/src/app/config/database.db .
# Database recovery
docker cp database.db container_name:/usr/src/app/config/
how to configure the email server in Docker?
docker run -d --name qd -p 8923:80 -v $(pwd)/qd/config:/usr/src/app/config --env MAIL_SMTP=$STMP_Server_ --env MAIL_PORT=$Mailbox_server_port --env MAIL_USER=$Username --env MAIL_PASSWORD=$Password --env DOMAIN=$Domain qdtoday/qd
how to use MySQL in Docker?
docker run -d --name qd -p 8923:80 -v $(pwd)/qd/config:/usr/src/app/config --ENV DB_TYPE=mysql --ENV JAWSDB_MARIA_URL=mysql://$username:$password@$hostname:$port/$database_name?auth_plugin= qdtoday/qd
how to build a Docker image by myself?
Please refer to the build file Dockerfile of this image.
How to view the API and Jinja2 template variables supported by the current framework?
Please access the home page of the framework, and then click the Common API/Filter
button in the upper left corner to view the API and Jinja2 template variables supported by the current framework.
how to submit a bug issue?
Please enable Debug
mode after encountering a problem, and then submit detailed error information to Issue.
Which requests are necessary for QD?
Empirically, the following requests are necessary:
- login page
- POST to login page
- Issue a request for username, password
- The page that caused the page to jump after sending
- The first page before and after page turning
Will my username and password be revealed?
In order to help users initiate requests, user names and passwords still need to be recorded. This can only rely on the self-discipline of server maintainers to ensure the security of back-end data. But in the framework design, each user is encrypted with a secure key when storing. Encrypting user data with a key can ensure that user data cannot be decrypted only by obtaining the database. (Encrypted user data includes templates uploaded by users, variables set by users for tasks, etc.)
If you are still worried, you can build the QD framework by yourself, download the template and run it on your own server.
Prompt PermissionError: [Errno 1] Operation not permitted
If it is an ARM32 Debian system, please check whether the
Docker
version is less than20.10.0
, and whether thelibseccomp
version is less than2.4.4
. If so, please upgrade the above components.Update
libseccomp
reference operation:sh# Get signing keys to verify the new packages, otherwise they will not install sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138 # Add the Buster backport repository to apt sources.list echo 'deb http://httpredir.debian.org/debian buster-backports main contrib non-free' | sudo tee -a /etc/apt/sources.list.d/debian-backports.list sudo apt update sudo apt install libseccomp2 -t buster-backports
Source:
Check if the
/usr/src/app
directory inside the container is mapped to the outside of the container.Note that the framework only needs to map the
/usr/src/app/config
directory.
Prompt warning message: Connect Redis falied: Error 10061
QD uses redis
as a flow limiting tool. If the redis
service is not installed, the framework will prompt the following warning message.
[W xxxxxx xx:xx:xx QD.RedisDB redisdb:28] Connect Redis falied: Error 10061 connecting to localhost:6379. No connection could be made because the target machine actively refused it.
However, redis
is not required in this framework, if you don't need to use the flow-limiting
feature, you can ignore the warning message.
It is recommended to use
Docker compose
to deploy the QD framework, and the Docker compose configuration already installs the redis container by default.
Prompt warning message: Import PyCurl module falied
QD uses the pycurl
module to send HTTP proxy requests. If the pycurl
module is not installed, the framework will prompt the following warning message:
[W xxxxxx xx:xx:xx QD.Http.Fetcher fetcher:34] Import PyCurl module falied: No module named 'pycurl'
However, pycurl
is not required in this framework, if you don't need to use the proxy
function, you can ignore the warning message.
The
pycurl
module is cumbersome to install on the Windows system, and thelibcurl
library needs to be installed. For the specific installation method, please refer to pycurl official documentation.It is recommended to use a container or linux system to deploy the QD framework. The docker container has a pre-installed Curl environment, and the pycurl module is installed by default
How to Register Notification Tools
You can register different notification tools to receive notifications when specific events (such as failed check-ins) occur.
Please refer to Pusher for details.
Subscribe updating page prompts undefined error
The subscribe updating web page prompts an error code of undefined, or the console shows WebSocket connection failed but does not show the reason for the error
Please check if the "reverse proxy" configuration is correct, refer to Nginx reverse proxy WebSocket service connection error
Reference configuration is as follows:
Nginxserver { listen 80; # Modify server_name by yourself server_name qd.example.com; location / { proxy_pass http://ip:port; # Set WebSocket Configuration proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Set other optional configuration proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }