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 monitor
Ansible 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