Develop: Document COMPOSE_PROFILES in .env.example, tighten comments #5590

Compose reads COMPOSE_PROFILES from .env automatically (no --profile flag
needed on every invocation), so adding it to .env.example lets developers
opt into the new "postgres" profile (or any other) once and forget about
it. Drive-by trims "Only starts this service if..." to "Only starts if..."
across compose.yaml, compose.nvidia.yaml, and the three setup/docker
compose files so all gated services use the same shorter phrasing.
This commit is contained in:
Michael Mayer 2026-05-20 16:30:01 +00:00
parent 69e27ba461
commit 0e14ef111d
6 changed files with 23 additions and 18 deletions

View file

@ -12,6 +12,10 @@
# multiple parallel dev environments without colliding on the shared network.
# COMPOSE_NETWORK_NAME=photoprism
# Optional services to start by default. Comma-separated list of profile names
# read by Docker Compose itself (so no --profile flag is required).
# COMPOSE_PROFILES=postgres
# Network interfaces to which Traefik and other services bind on the host.
# Defaults expose Traefik on every interface (so *.localssl.dev is reachable
# from the LAN) and keep direct service ports on loopback only.
@ -25,6 +29,7 @@
# Public base URL used in share links, OIDC & PWA URIs.
# PHOTOPRISM_SITE_URL=https://app.localssl.dev/
# Ports to which MariaDB and PostgreSQL should bind.
# Ports to which MariaDB and PostgreSQL should bind. PostgreSQL only starts
# when the "postgres" (or "all") profile is enabled via COMPOSE_PROFILES.
# MARIADB_PORT=4001
# POSTGRES_PORT=4002

View file

@ -171,7 +171,7 @@ services:
ollama:
image: ollama/ollama:latest
stop_grace_period: 15s
## Only starts this service if the "all", "ollama", or "vision" profile is specified::
## Only starts if the "all", "ollama", or "vision" profile is specified::
## docker compose --profile ollama up -d
profiles: ["all", "ollama", "vision"]
## Insecurely exposes the Ollama service on port 11434

View file

@ -219,7 +219,7 @@ services:
## Release Notes: https://www.postgresql.org/docs/release/
postgres:
image: postgres:18-alpine
## Only starts this service if the "all" or "postgres" profile is specified:
## Only starts if the "all" or "postgres" profile is specified:
## docker compose --profile postgres up -d
profiles: [ "all", "postgres" ]
stop_grace_period: 10s
@ -244,7 +244,7 @@ services:
## Web UI: https://qdrant.localssl.dev/dashboard
qdrant:
image: qdrant/qdrant:latest
## Only starts this service if the "all" or "qdrant" profile is specified:
## Only starts if the "all" or "qdrant" profile is specified:
## docker compose --profile qdrant up -d
profiles: [ "all", "qdrant" ]
stop_grace_period: 10s
@ -277,7 +277,7 @@ services:
## docker compose exec ollama ollama pull gemma3:latest
ollama:
image: ollama/ollama:latest
## Only starts this service if the "all", "ollama", or "vision" profile is specified:
## Only starts if the "all", "ollama", or "vision" profile is specified:
## docker compose --profile ollama up -d
profiles: [ "all", "ollama", "vision" ]
stop_grace_period: 10s
@ -328,7 +328,7 @@ services:
## see https://github.com/open-webui/open-webui
open-webui:
image: ghcr.io/open-webui/open-webui:main
## Only starts this service if the "all", "ollama", "open-webui", or "vision" profile is specified:
## Only starts if the "all", "ollama", "open-webui", or "vision" profile is specified:
## docker compose --profile open-webui up -d
profiles: [ "all", "ollama", "open-webui", "vision" ]
stop_grace_period: 10s
@ -356,7 +356,7 @@ services:
## see https://github.com/photoprism/photoprism-vision
photoprism-vision:
image: photoprism/vision:latest
## Only starts this service if the "all" or "vision" profile is specified:
## Only starts if the "all" or "vision" profile is specified:
## docker compose --profile vision up -d
profiles: [ "all", "vision" ]
stop_grace_period: 15s
@ -443,7 +443,7 @@ services:
## Login with "user / photoprism" and "admin / photoprism".
keycloak:
image: quay.io/keycloak/keycloak:25.0
## Only starts this service if the "all", "auth", or "keycloak" profile is specified:
## Only starts if the "all", "auth", or "keycloak" profile is specified:
## docker compose --profile keycloak up -d
profiles: [ "all", "auth", "keycloak" ]
stop_grace_period: 10s
@ -479,7 +479,7 @@ services:
## ./photoprism client add --id=cs5cpu17n6gj2qo5 --secret=xcCbOrw6I0vcoXzhnOmXhjpVSyFq0l0e -s metrics -n Prometheus -e 60 -t 1
prometheus:
image: prom/prometheus:latest
## Only starts this service if the "all", "auth", or "prometheus" profile is specified:
## Only starts if the "all", "auth", or "prometheus" profile is specified:
## docker compose --profile prometheus up -d
profiles: [ "all", "auth", "prometheus" ]
stop_grace_period: 10s

View file

@ -163,7 +163,7 @@ services:
image: ollama/ollama:latest
restart: unless-stopped
stop_grace_period: 15s
## Only starts this service if the "all", "ollama", or "vision" profile is specified::
## Only starts if the "all", "ollama", or "vision" profile is specified::
## docker compose --profile ollama up -d
profiles: ["all", "ollama", "vision"]
## Insecurely exposes the Ollama service on port 11434
@ -198,7 +198,7 @@ services:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
stop_grace_period: 5s
## Only starts this service if the "all", "ollama", "open-webui", or "vision" profile is specified::
## Only starts if the "all", "ollama", "open-webui", or "vision" profile is specified::
## docker compose --profile ollama up -d
profiles: [ "all", "ollama", "open-webui", "vision" ]
## Exposes Open WebUI at http://localhost:8080 (use an HTTPS reverse proxy for remote access):
@ -220,7 +220,7 @@ services:
watchtower:
image: nickfedor/watchtower
restart: unless-stopped
## Only starts this service if the "update" profile is specified::
## Only starts if the "update" profile is specified::
## docker compose --profile update up -d
profiles: [ "update" ]
environment:

View file

@ -168,7 +168,7 @@ services:
image: ollama/ollama:latest
restart: unless-stopped
stop_grace_period: 15s
## Only starts this service if the "all", "ollama", or "vision" profile is specified::
## Only starts if the "all", "ollama", or "vision" profile is specified::
## docker compose --profile ollama up -d
profiles: ["all", "ollama", "vision"]
## Insecurely exposes the Ollama service on port 11434
@ -214,7 +214,7 @@ services:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
stop_grace_period: 5s
## Only starts this service if the "all", "ollama", "open-webui", or "vision" profile is specified::
## Only starts if the "all", "ollama", "open-webui", or "vision" profile is specified::
## docker compose --profile ollama up -d
profiles: [ "all", "ollama", "open-webui", "vision" ]
## Exposes Open WebUI at http://localhost:8080 (use an HTTPS reverse proxy for remote access):
@ -236,7 +236,7 @@ services:
watchtower:
image: nickfedor/watchtower
restart: unless-stopped
## Only starts this service if the "update" profile is specified::
## Only starts if the "update" profile is specified::
## docker compose --profile update up -d
profiles: ["update"]
environment:

View file

@ -168,7 +168,7 @@ services:
image: ollama/ollama:latest
restart: unless-stopped
stop_grace_period: 15s
## Only starts this service if the "all", "ollama", or "vision" profile is specified::
## Only starts if the "all", "ollama", or "vision" profile is specified::
## docker compose --profile ollama up -d
profiles: ["all", "ollama", "vision"]
## Insecurely exposes the Ollama service on port 11434
@ -214,7 +214,7 @@ services:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
stop_grace_period: 5s
## Only starts this service if the "all", "ollama", "open-webui", or "vision" profile is specified::
## Only starts if the "all", "ollama", "open-webui", or "vision" profile is specified::
## docker compose --profile ollama up -d
profiles: [ "all", "ollama", "open-webui", "vision" ]
## Exposes Open WebUI at http://localhost:8080 (use an HTTPS reverse proxy for remote access):
@ -236,7 +236,7 @@ services:
watchtower:
image: nickfedor/watchtower
restart: unless-stopped
## Only starts this service if the "update" profile is specified::
## Only starts if the "update" profile is specified::
## docker compose --profile update up -d
profiles: ["update"]
environment: