spot for /e/
A privacy-respecting, hackable metasearch engine.
Spot was forked from searx: read documentation and the wiki for more information.
- eelo theme
- redis cache on http requests (TTL 1 day)
- docker packaging thinking to be production ready
6 services are used for production:
- filtron as reverse HTTP proxy to filter requests by different rules.
- morty as proxy to serve thumbnails.
- nginx as http server to serve static files.
- Spot the meta search engine.
- tor as open network that helps you defend against traffic analysis.
- redis as memory storage to cache http requests
graph TD
A(reverse proxy) --> |http://localhost:8088| B(filtron)
A(reverse proxy) --> |https://localhost:8089| C(morty)
C --> |image link| C
B --> D(nginx)
D --> |static file| D
D --> |API| E(spot)
E --> H(tor1)
E --> I(tor2)
E --> J(torN)
E --> |cache| K(redis)
You can run spot with docker-compose. First of all you have to install docker and docker-compose on your host, then follow instructions below to run spot for production or local environment.
Run the docker-compose to start the project
docker-compose up -d
Then go to http://localhost:8088.
You can directly run spot, with a python command inside a docker container which contains all dependencies. After running the docker-compose stack you can stop the default spot service and run the debug one with Flask server.
docker-compose rm -sf spot
docker run -it --rm -v $(pwd):/ws -w /ws --hostname spot --network=my-spot_default --env-file .env registry.gitlab.e.foundation:5000/e/cloud/my-spot/env bash
PYTHONPATH=$(pwd) SEARX_DEBUG=1 python -X dev searx/webapp.py