Skip to content
Merged
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 .vale.ini
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ BasedOnStyles =
[docs/reference/schemas/*.md]
BasedOnStyles =

# Tutorials use "we" voice and "will" to set expectations per Diataxis convention.
[docs/tutorials/*.md]
Google.We = NO
Google.Will = NO

# MkDocs abbreviation syntax (*[ABBR]: Definition) triggers false positives
# for the colon capitalization rule, since `: ` is a syntax delimiter.
[docs/includes/abbreviations.md]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ PGTune
Packagist
Percona
PgBouncer
Podman
Postgres
Protobuf
SBOM
Expand Down
2 changes: 2 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ that allows organizations to identify and reduce risk in the software supply cha

## Getting started

Get Dependency-Track running locally in minutes with the [quick start tutorial](tutorials/quickstart.md).

Explore the documentation using the navigation tabs:

- [Tutorials](tutorials/index.md): step-by-step walkthroughs for common workflows.
Expand Down
47 changes: 47 additions & 0 deletions docs/tutorials/docker-compose.quickstart.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Dependency-Track

services:
apiserver:
image: ghcr.io/dependencytrack/hyades-apiserver:snapshot
depends_on:
postgres:
condition: service_healthy
deploy:
resources:
limits:
memory: 2g
environment:
DT_DATASOURCE_URL: "jdbc:postgresql://postgres:5432/dtrack"
DT_DATASOURCE_USERNAME: "dtrack"
DT_DATASOURCE_PASSWORD: "dtrack"
ports:
- "127.0.0.1:8080:8080"
volumes:
- "apiserver-data:/data"
Comment on lines +17 to +20
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YAML sequence indentation under ports is invalid for this repo’s yamllint config (indent-sequences: false) and may also break Compose parsing. Indent the list items under ports.

Copilot uses AI. Check for mistakes.
restart: unless-stopped
Comment on lines +19 to +21
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YAML sequence indentation under volumes is incorrect here (the - apiserver-data:/data entry is not indented). This violates the repository’s yamllint rule (indent-sequences: false) and should be fixed by indenting list items under volumes.

Copilot uses AI. Check for mistakes.

frontend:
image: ghcr.io/dependencytrack/hyades-frontend:snapshot
environment:
API_BASE_URL: "http://localhost:8080"
ports:
- "127.0.0.1:8081:8080"
restart: unless-stopped
Comment on lines +27 to +29
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YAML sequence indentation under ports is incorrect (list items are not indented). This violates the repository’s yamllint rule (indent-sequences: false) and should be fixed by indenting the - ... entries under ports.

Copilot uses AI. Check for mistakes.

postgres:
image: postgres:18-alpine
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The quickstart Compose file pins PostgreSQL to postgres:18-alpine, but the docs’ dev-services defaults currently reference postgres:14-alpine (see docs/reference/configuration/properties.md). Using a newer major here may be unsupported and could make the quickstart fail for users. Consider aligning this image tag with the documented/supported PostgreSQL version (or clearly documenting the required PostgreSQL version for this quickstart).

Suggested change
image: postgres:18-alpine
image: postgres:14-alpine

Copilot uses AI. Check for mistakes.
environment:
POSTGRES_DB: "dtrack"
POSTGRES_USER: "dtrack"
POSTGRES_PASSWORD: "dtrack"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 3s
retries: 3
volumes:
- "postgres-data:/var/lib/postgresql/data"
Comment on lines +42 to +43
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YAML sequence indentation under volumes is incorrect (list items are not indented). This violates the repository’s yamllint rule (indent-sequences: false) and should be fixed by indenting the - ... entries under volumes.

Copilot uses AI. Check for mistakes.

volumes:
apiserver-data: {}
postgres-data: {}
51 changes: 51 additions & 0 deletions docs/tutorials/quickstart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Quick start

In this tutorial, we will get Dependency-Track running locally using Docker Compose
and log in to the frontend for the first time.

## What we need

- [Docker](https://docs.docker.com/get-docker/) or [Podman](https://podman.io/)
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The prerequisites mention Podman, but the next requirement and the commands are explicitly Docker Compose v2 (docker compose) and link to Docker’s Compose installation docs. This is confusing for Podman users and may not work as written. Consider either removing Podman from the prerequisites or adding Podman-specific install/commands (e.g., podman compose/podman-compose) and links.

Suggested change
- [Docker](https://docs.docker.com/get-docker/) or [Podman](https://podman.io/)
- [Docker](https://docs.docker.com/get-docker/)

Copilot uses AI. Check for mistakes.
- [Compose v2](https://docs.docker.com/compose/install/)

## Starting Dependency-Track

We download the Compose file and start the stack:

=== ":fontawesome-brands-linux: Linux / :fontawesome-brands-apple: macOS"

```shell
curl -O https://raw.githubusercontent.com/DependencyTrack/docs/main/docs/tutorials/docker-compose.quickstart.yml
docker compose -f docker-compose.quickstart.yml up
```

=== ":fontawesome-brands-windows: Windows (PowerShell)"

```powershell
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/DependencyTrack/docs/main/docs/tutorials/docker-compose.quickstart.yml" -OutFile "docker-compose.quickstart.yml"
docker compose -f docker-compose.quickstart.yml up
```

This will pull the required images, initialize the database, and start all services.

??? note "Compose file contents"
```yaml
--8<-- "docs/tutorials/docker-compose.quickstart.yml"
```

## Logging in

Once the stack is up, we open the frontend at **<http://localhost:8081>** and log in
with the default credentials:

| Username | Password |
|----------|----------|
| `admin` | `admin` |

!!! note
Dependency-Track will ask us to change the password upon first login.

## What's next

- [Configuration](../reference/configuration/application.md): Customize the deployment
- [Scaling](../guides/administration/scaling.md): Scale for production workloads
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ markdown_extensions:
- toc:
permalink: true
- pymdownx.details
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- pymdownx.snippets:
auto_append:
- docs/includes/abbreviations.md
Expand Down