Searx is a free and open-source metasearch engine, available under the GNU Affero General Public License version 3, with the aim of protecting the privacy of its users. To this end, Searx does not share users’ IP addresses or search history with the search engines from which it gathers results.
It’s easy to install using docker, but i wanted to add my own mysql server data. ( pipetune search engine data in below example )
There are many search plugins and quite hackable.
But there was a missing python module in a docker image.
ModuleNotFoundError: No module named ‘mysql’
So i build a new docker image based on the original
# Install docker and docker-compose cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker Edit the .env file to set the hostname Generate the secret key sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml Edit the searxng/settings.yml file according to your need Check everything is working: docker-compose up Run SearXNG in the background: docker-compose up -d
I’ve changed the docker-compose.yaml
Changed < image: searxng/searxng:latest into > build: . And changed the listen address < - "127.0.0.1:8080:8080" into > - "8080:8080"
Created a Dockerfile
FROM searxng/searxng:latest RUN pip install mysql-connector-python
Changed searxng/settings.yml
engines:
- name: tunesdb
engine: mysql_server
host: 10.12.0.xx
database: pipetunesearch
username: xxxxxxx
password: xxxxxxx
limit: 50
query_str: 'SELECT * from tunes WHERE tunename=%(query)s'
I could not use a like statement in de sql query .. have to look into that
query_str: 'SELECT * from tunes WHERE tunename like %(query)%' .. doesn´t work
Example showing own data
To complete this post the reverse proxy info ..
<VirtualHost *:443>
SSLEngine on
SSLProxyEngine On
SSLProtocol all -SSLv2 -SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile wildcard.cer
SSLCertificateKeyFile my.key
SSLCertificateChainFile GlobalSignRootCA.cer
SSLCertificateChainFile AlphaSSLCA-SHA256-G2.cer
CustomLog /var/log/httpd/search_ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ServerAdmin webmaster@henriaanstoot.nl
ServerName search.henriaanstoot.nl
ProxyRequests Off
ProxyPreserveHost On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
<Location />
ProxyPass http://dockerhostip:8080/
ProxyPassReverse http://dockerhostip:8080/
</Location>
ErrorLog /var/log/httpd/search.henriaanstoot.nl-error.log
CustomLog /var/log/httpd/search.henriaanstoot.nl-access.log combined
</VirtualHost>











































