diff --git a/README.md b/README.md index 6265a9f..e586299 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,66 @@ # JavadocViewerService +A Spring Boot web service that automatically fetches, manages, and serves Javadoc documentation for Maven artifacts. + +## Features + +- Fetches Javadoc JARs from Maven Central or custom Maven repositories +- Tracks multiple Maven artifacts with version detection +- Serves generated Javadoc via a simple Bootstrap web UI +- Scheduled updates via configurable cron expression +- Persists metadata in an embedded H2 database (Liquibase-managed) + +## Requirements + +Currently, this service is docker-only. + +## Docker + +```yaml +services: + jvs-dockerized: + image: git.mein-gateway.de/thischwa/javadocviewerservice:develop + volumes: + - /opt/javadocviewerservice-dockerized/jdvs.yml:/app/jdvs.yml:ro + - /opt/javadocviewerservice-dockerized/database:/app/database + - /opt/javadocviewerservice-dockerized/javadoc-storage:/app/javadoc-storage + restart: unless-stopped + ports: + - "127.0.0.1:8086:8080" +``` + +Volume mapping: + +| Mount | Purpose | +|---|---| +| `jdvs.yml:/app/jdvs.yml:ro` | Injects the repository configuration (which artifacts to track) as read-only — the only file you need to edit | +| `database:/app/database` | Persists the H2 database so tracked version metadata survives restarts and image updates | +| `javadoc-storage:/app/javadoc-storage` | Persists generated Javadoc HTML so it is not lost on container recreation | + + +## Configuration + +### `application.yml` + +Key defaults: + +| Property | Default | Description | +|---|---|---| +| `jdvs.base-dir` | `./javadoc-storage` | Storage root for generated Javadoc | +| `jdvs.cron` | `0 0/15 * * * ?` | Update schedule (every 15 min) | +| `jdvs.clean-on-start` | `false` | Wipe storage and DB on startup | +| `jdvs.run-on-start` | `false` | Run update immediately on startup | +| `jdvs.maven-central-url` | `https://repo1.maven.org/maven2` | Default Maven repository | + +### `jdvs.yml` + +Defines the repositories to track and individual settings (all key defaults can be overridden): + +```yaml +jdvs: + repositories: + - name: my-lib + group-id: com.example + artifact-id: my-lib + # maven-repo-url: https://custom.repo/maven # optional, defaults to Maven Central +```