Skip to content
Open

Develop #2645

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"githubPullRequests.ignoredPullRequestBranches": [
"develop"
]
}
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -823,3 +823,5 @@ Steps to add Spanish language:
- add file `lift-core_es_ES.properties` at the folder `/resources/i18n`

Please note that default translation file is `lift-core.properties`

Testing VS Code Workspace Web
189 changes: 189 additions & 0 deletions how-to-run-locally-linux.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
Copilot said: # Run a quick local test of
Run a quick local test of OBP-API on a MiniOS Linux notebook

This document explains how to install required tools (Docker, Docker Compose, git, curl, jq), start a Postgres test database, run the repository development docker-compose, and perform two quick API smoke tests (root and banks). Follow the appropriate package-manager section for your MiniOS variant.

Assumptions

You have a minimal Linux (MiniOS) with network access.
You have sudo privileges.
Steps are written to work with a fresh environment; adapt if some tools are already installed.

1. Install prerequisites

Choose the block for your distro.
Debian / Ubuntu (apt)
bash

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release git jq

# Install Docker (convenience script)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

# Install Docker Compose (standalone)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Apply docker group immediately (or log out/in)
newgrp docker

Fedora (dnf)
bash

sudo dnf install -y git curl jq
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

# Docker Compose binary
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
newgrp docker

Alpine (apk)
bash

sudo apk update
sudo apk add git curl jq docker py3-pip
sudo rc-update add docker boot
sudo service docker start
sudo usermod -aG docker $USER

# Install docker-compose via pip
sudo pip3 install docker-compose
newgrp docker

Arch (pacman)
bash

sudo pacman -Syu --noconfirm git curl jq docker docker-compose
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

Verify Docker:
bash

docker version
docker run --rm hello-world

2. Clone the repository
bash

cd ~
git clone https://github.com/wanmad-br/OBP-API.git

3. Start a Postgres test container

We create a Postgres container with user obp, password f, database obp_mapped and expose it on port 5432.
bash

docker run -d --name obp-postgres \
-e POSTGRES_USER=obp \
-e POSTGRES_PASSWORD=f \
-e POSTGRES_DB=obp_mapped \
-p 5432:5432 \
postgres:14

Check it's running:
bash

docker ps --filter name=obp-postgres
docker logs -f obp-postgres # optional: view logs

(Optional) Connect to DB:
bash

docker exec -it obp-postgres psql -U obp -d obp_mapped

4. Configure OBP compose to use the DB and start the stack

The repository includes a development docker-compose in development/docker. The compose file expects to connect to the DB via host.docker.internal (the compose sets an extra_hosts mapping to host-gateway). Export the OBP DB URL before starting.
bash

cd ~/OBP-API/development/docker

export OBP_DB_URL='jdbc:postgresql://host.docker.internal:5432/obp_mapped?user=obp&password=f'

Start the development environment (build + run Redis + obp-api):
bash

docker-compose up --build

Notes:

If your Docker uses the new plugin-based command, use docker compose up --build.
Keep this terminal open to watch logs. Wait until the obp-api container shows that the server (Jetty) is listening on port 8080.

5. Quick API smoke tests

Open a new terminal (or background the compose) and run the two tests below.

Root endpoint (API metadata — public endpoint)

bash

curl -i http://localhost:8080/obp/v3.1.0/root

If you get 404, try other supported versions such as /obp/v3.0.0/root or /obp/v2.2.0/root.

List banks (public endpoint)

bash

curl -sS http://localhost:8080/obp/v3.1.0/banks | jq .

If jq is not installed, omit the | jq . part:
bash

curl -sS http://localhost:8080/obp/v3.1.0/banks

Expected result: HTTP 200 and JSON describing the API (root) and a list (possibly empty) of banks.
6. Troubleshooting

If the obp-api cannot connect to Postgres:
Ensure obp-postgres container is running and port 5432 is reachable from the host.
Confirm OBP_DB_URL was exported before starting compose.
On some Linux hosts, host.docker.internal may not work. If you see host resolution errors, either:
Replace host.docker.internal with the host IP in OBP_DB_URL, e.g. jdbc:postgresql://<HOST_IP>:5432/..., or
Edit development/docker/docker-compose.yml to point the obp-api service DB settings to a DB service in the same compose, or
Start Postgres inside the same compose (requires editing the compose file).

Check logs:

bash

docker logs -f obp-api-app
docker logs -f obp-api-redis
docker logs -f obp-postgres

If the app performs schema creation/migrations on startup, wait until those steps are complete (watch the logs for progress).

7. Stop and cleanup

Stop the compose stack:
bash

# from development/docker
docker-compose down
# or, if using plugin:
# docker compose down

Stop and remove the Postgres test container:
bash

docker stop obp-postgres
docker rm obp-postgres

Remove images/volumes if you want a full cleanup (optional).
8. Optional alternatives / tips

To avoid host.docker.internal issues, you can create a docker-compose override that includes a Postgres service so everything runs in the same compose network.
If you want a single copy-paste automation script (Debian/Ubuntu style) that:
installs Docker & docker-compose,
clones the repo,
starts Postgres and the compose,
runs the curl tests — I can produce that script for you.