bml-proxy/README.md

64 lines
2.5 KiB
Markdown

# BML Proxy Docker
On April 1, 2022 BML enabled [Cloudflares Anti-bot](https://www.cloudflare.com/products/bot-management/) features and all the
existing scripts to interact with BML API stopped working.
This repo contains build files for a [proxy](https://git.shihaam.dev/shihaam/bml-proxy) to bypass anti-bot.
## Codebase repo:
- [https://git.shihaam.dev/shihaam/bml-proxy](https://git.shihaam.dev/shihaam/bml-proxy)
## Installation
1. [Install docker](https://docs.docker.com/engine/install/) `curl -fsSL https://get.docker.com | sudo sh`
2. Give yourself docker group and relogin.
`sudo usermod -aG docker $USER;sudo su - $USER`
3. Generate ssh key (if you havent already)
`ssh-keygen`
4. [Add your .pub key to my gitea server](https://git.shihaam.dev/user/settings/keys)
`cat ~/.ssh/id_*.pub`
5. Clone the repo `git clone git@git.shihaam.dev:shihaam/bml-proxy.git`
6. Go to cloned dir `cd bml-proxy`
7. Start the docker container `docker compose up -d`
## How to use
This docker image exposes a proxied BML API on localhost port 3030. Any and all requests to the BML API should instead be made to this proxy instead.
BML API URL = https://bankofmaldives.com.mv/internetbanking/api/ \
Docker Image URL = http://localhost:3030/api/
### Best practices on usage:
It is recommded that you use nginx reverse proxy and cloudflare proxy with this for security and compatability reasons
1. Install Nginx, Certbot, and Nginx Cerbot plugin `sudo apt install nginx python3-certbot python3-certbot-nginx` \
example nginx config: place this is in a file at "/etc/nginx/sites-enabled"
```nginx
server {
server_name SUB.DOMAIN.COM;
listen 80;
location / {
proxy_pass http://localhost:3030;
}
}
```
2. Point your sub.doman.com to server IP (its important you disable cloudflare proxy)
3. Use certbot to get SSL `sudo certbot --nginx -d sub.domain.com`
4. Enable Cloudflare to fix encoding issue.
5. Use your programs to request to request to this proxy URL instead of BML URL
#### Example
You would normally hit the following URL to retrieve today's transactions:
```
https://www.bankofmaldives.com.mv/internetbanking/api/account/{BML_ACCOUNT_NUMBER}/history/today
```
With this Docker image you will use the following:
```
https://sub.domain.com/account/{BML_ACCOUNT_NUMBER}/history/today
```
## Disclaimer
This package is no way associated with [Bank of Maldives](https://www.bankofmaldives.com.mv/).
I am not responsible for any losses incurred from the use of this package.
Use at your own risk.