Deploy: change default HTTP port 8080 -> 8760
8080 is a very common, collision-prone port. 8760 (hours in a year) is an uncommon default that also avoids Home Assistant's 8123. Applied across Dockerfile (ASPNETCORE_URLS/EXPOSE), compose (mapping + healthcheck), the Unraid template, README and a code comment. The METERVAULT_PORT host override still works. Claude-Session: https://claude.ai/code/session_01Kib2MniVFbD95fkgLgBBnB
This commit is contained in:
@@ -41,9 +41,9 @@ full design.
|
||||
|
||||
```bash
|
||||
docker compose -f deploy/docker-compose.yml up -d
|
||||
# open http://localhost:8080 → Import → "Load reference data" for a populated demo
|
||||
# open http://localhost:8760 → Import → "Load reference data" for a populated demo
|
||||
# ...or start pre-populated: METERVAULT_SEED=true docker compose -f deploy/docker-compose.yml up -d
|
||||
# API docs at http://localhost:8080/swagger
|
||||
# API docs at http://localhost:8760/swagger
|
||||
```
|
||||
|
||||
Configuration is via environment variables (`Section__Key` double-underscore mapping), e.g.:
|
||||
@@ -67,7 +67,7 @@ of an environment variable, resolved at runtime.
|
||||
## Pushing readings (Home Assistant)
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8080/api/v1/readings \
|
||||
curl -X POST http://localhost:8760/api/v1/readings \
|
||||
-H "X-Api-Key: $METERVAULT_API_KEY" -H "Content-Type: application/json" \
|
||||
-d '[{"meterId": 1, "time": "2026-01-01T12:00:00Z", "value": 47200}]'
|
||||
```
|
||||
|
||||
+2
-2
@@ -25,8 +25,8 @@ RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=build /app/publish ./
|
||||
ENV ASPNETCORE_URLS=http://+:8080 \
|
||||
ENV ASPNETCORE_URLS=http://+:8760 \
|
||||
ASPNETCORE_ENVIRONMENT=Production \
|
||||
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
|
||||
EXPOSE 8080
|
||||
EXPOSE 8760
|
||||
ENTRYPOINT ["dotnet", "MeterVault.App.dll"]
|
||||
|
||||
@@ -40,9 +40,9 @@ services:
|
||||
# MeterVault__ApiKeys__0: your-secret-key
|
||||
# MeterVault__AllowAnonymousApi: "true"
|
||||
ports:
|
||||
- "${METERVAULT_PORT:-8080}:8080"
|
||||
- "${METERVAULT_PORT:-8760}:8760"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -fsS http://localhost:8080/healthz || exit 1"]
|
||||
test: ["CMD-SHELL", "curl -fsS http://localhost:8760/healthz || exit 1"]
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
<Privileged>false</Privileged>
|
||||
<Overview>Self-hosted energy & utility metering: ingest from Home Assistant/Tasmota/MQTT, normalize to consumption, and produce cost dashboards. Needs a TimescaleDB instance.</Overview>
|
||||
<Category>HomeAutomation: Tools: Productivity:</Category>
|
||||
<WebUI>http://[IP]:[PORT:8080]/</WebUI>
|
||||
<WebUI>http://[IP]:[PORT:8760]/</WebUI>
|
||||
<Icon>https://git.finalfactory.de/FinalFactory/MeterVault/raw/branch/master/docs/icon.png</Icon>
|
||||
|
||||
<Config Name="WebUI Port" Target="8080" Default="8080" Mode="tcp" Description="HTTP port" Type="Port" Display="always" Required="true">8080</Config>
|
||||
<Config Name="WebUI Port" Target="8760" Default="8760" Mode="tcp" Description="HTTP port" Type="Port" Display="always" Required="true">8760</Config>
|
||||
|
||||
<Config Name="Database connection" Target="ConnectionStrings__Default" Default="Host=timescaledb;Port=5432;Database=metervault;Username=metervault;Password=changeme" Mode="" Description="PostgreSQL/TimescaleDB connection string" Type="Variable" Display="always" Required="true">Host=timescaledb;Port=5432;Database=metervault;Username=metervault;Password=changeme</Config>
|
||||
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ try
|
||||
app.UseStatusCodePagesWithReExecute("/not-found", createScopeForStatusCodePages: true);
|
||||
app.UseSerilogRequestLogging();
|
||||
app.UseReverseProxyTrust();
|
||||
// No HTTPS redirection: the app serves plain HTTP (port 8080) behind a reverse proxy
|
||||
// No HTTPS redirection: the app serves plain HTTP (port 8760) behind a reverse proxy
|
||||
// that terminates TLS (SDD §10). HTTPS redirection here would break the container and proxy.
|
||||
app.UseAntiforgery();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user