Use this project to look for your Opala or any other car.
It will use OLX platform according to your parameters.
- Running on demand or scheduled via CLI
- Also available as Docker image and Helm Chart
- Define target region (support multiple separated by comma)
- Define car date range (eg: from 1975 to 1980)
- Using local database (SQLite) to save all information
- Download images into data folder for each offer
- Score based on attributes to find good cars
- Detect new item and skip if it already exists
- Telegram alert - New offer
- Telegram alert - Update price
- MQTT integration - dashboard with statistics
- Dashboard with offers, statistics and charts
- Binary for Windows platform
- Help
opala:~$ make help- Docker
opala:~$ make build
opala:~$ make start
opala:~$ make status
opala:~$ make log- Helm
opala:~$ cd helm
opala:~$ helm upgrade -i olx-car-opala-es ./olx-car -f config/opala-es.yaml --force --create-namespace --namespace olx
opala:~$ helm upgrade -i olx-car-opala-go ./olx-car -f config/opala-go.yaml --force --create-namespace --namespace olx- Windows
- Download the latest relase ZIP file
- Build your own binary:
PS C:\ > .\release.bat- Starting with CAR_ is used as filter
- Starting with SCORE_ will give additional points
| VARIABLE | DESCRIPTION | EXAMPLE |
|---|---|---|
| APP_IMAGE | Container image | uknbr/olx_car |
| APP_VERSION | Container version | latest |
| APP_ID | Container name | opala |
| DAEMON_INTERVAL | Interval in minutes | 10 |
| DAEMON_LOG | Log level | DEBUG |
| DAEMON_MODE | Enable loop | True or False |
| DATA_MOUNT_ENABLE | Enable data | True or False |
| DATA_MOUNT_PATH | Data path | /data |
| CAR_BRAND | Brand | gm-chevrolet |
| CAR_MODEL | Model | opala |
| CAR_TITLE | Offer title | opala |
| CAR_DATE_BEGIN | Year range (begin) | 1975 |
| CAR_DATE_END | Year range (end) | 1980 |
| CAR_KM | Filter by odometer | 90000 |
| CAR_REGION | Target state | sp,mg,rj |
| MQTT_ENABLE | Enable MQTT | True or False |
| MQTT_HOST | MQTT host/IP | localhost |
| MQTT_PORT | MQTT port | 1883 |
| TELEGRAM_ENABLE | Enable Telegram | True or False |
| TELEGRAM_BOT_TOKEN | Telegram token | - |
| TELEGRAM_CHAT_ID | Telegram chat | - |
| HTTPS_PROXY | Proxy address:port | - |
| HTTP_PROX | Proxy address:port | - |
| NO_PROXY | Skip proxy | localhost |
| SCORE_YEAR | Preferred | 1979 |
| SCORE_COLOR | Preferred color | Preto |
| SCORE_DOOR | Preferred doors | 2 |
| SCORE_FUEL | Preferred fuel | Gasolina |
| SCORE_TRANSMISSION | Preferred transmission | Manual |
| SCORE_PRICE | Maximum price | 30000 |
| SCORE_KEYWORD | Words on description | SS,6cc |
| SCORE_KM | Maximum odometer | 80000 |
| MYSQL_SYNC | Enable MySQL sync | True or False |
| MYSQL_DATABASE | DB name | olx |
| MYSQL_HOST | DB host | localhost |
| MYSQL_PORT | DB port | 3306 |
| MYSQL_USER | DB user | - |
| MYSQL_PASS | DB password | - |
- Make sure you have MQTT server running
- Adjust variables based on Configuration
- Install/Configure MQTT client in our Smartphone
- Make sure you have your bot created using @BotFather
curl -s https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getUpdates | jq .result[].message.chat.id- Adjust variables based on Configuration
- Make sure you have MySQL server running
- Adjust variables based on Configuration
Data Visualization using tools:
- MySQL
- Adminer
- Grafana
- Prometheus
opala:~$ make monitorAnsible playbook:
opala:~$ cd setup/
opala:~$ ansible-playbook setup.yaml- Support another Database (MySQL)
- Support K8s using helm
- Support multiple cars and brands
- Dashboard and Statistics
- Configure parameters related to score
- Detect good opportunities by score
- Alerts based on parameters
- Support Windows platform
- Weekly reports
- Prepare your VM with Ansible
- Simple server monitoring





