Open-source community-driven fragrance database. Browse fragrances, brands, notes, perfumers, and community ratings.
Links
aromatheca/
core/ # Submodule -> aromatheca-api-core (Spring Boot)
web/ # Submodule -> aromatheca-web (Next.js)
docs/ # Submodule -> aromatheca-docs (API spec, schemas)
pages/ # GitHub Pages (project site + API reference)
nginx/ # Nginx reverse proxy config (local + prod)
docker-compose.yml # Local development stack
docker-compose.prod.yml # Production stack (coming soon)
.env.example # Environment variable template
git clone --recurse-submodules git@github.com:HigumaSoft/aromatheca.git
cd aromathecaIf you already cloned without submodules:
git submodule update --init --recursivecp .env.example .envEdit .env and set a secure POSTGRES_PASSWORD.
Full stack (requires app code in submodules):
docker compose upDatabase only (for early development):
docker compose up postgresStart nginx and postgres only, then run backend and frontend on host:
docker compose up nginx postgres| URL | Routes to |
|---|---|
| http://localhost:8090 | nginx (single entry point) |
| http://localhost:8090/api/ | Spring Boot backend |
| http://localhost:8090/ | Next.js frontend |
| http://localhost:8080 | Backend direct |
| http://localhost:3000 | Frontend direct |
This eliminates CORS issues during development — browser sees one origin.
| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Backend | http://localhost:8080 |
| Database | http://localhost:5432 |
| Gateway | http://localhost:8090 |
docker compose downTo also remove the database volume:
docker compose down -vPull latest from all submodules:
git submodule update --remote --mergeUpdate only the backend:
git submodule update --remote --merge coreAfter updating, commit the new pointer:
git add core
git commit -m "chore: update core to latest"See .env.example for all available variables and their defaults.
| Variable | Description | Default |
|---|---|---|
POSTGRES_DB |
Database name | aromatheca |
POSTGRES_USER |
Database user | aromatheca_user |
POSTGRES_PASSWORD |
Database password | change this |
POSTGRES_PORT |
Database port | 5432 |
CORE_PORT |
Backend port | 8080 |
WEB_PORT |
Frontend port | 3000 |