From dc47948513caafa4bf78908d3022be6785fce7a9 Mon Sep 17 00:00:00 2001 From: Mark Rapson Date: Fri, 28 Aug 2026 20:22:58 +0100 Subject: [PATCH] Update deployment and schema documentation --- docker-compose/README.md | 11 ++++------- docs/schema.md | 12 +++++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/docker-compose/README.md b/docker-compose/README.md index a29aca9..5486ab4 100644 --- a/docker-compose/README.md +++ b/docker-compose/README.md @@ -6,7 +6,7 @@ This folder contains the Docker Compose definitions for Pulse Signage, including - [docker-compose.yml](docker-compose.yml) - full public stack with web, player, player bridge, and MySQL. - [.env.example](.env.example) - sample environment values for the public stack. -- [docker-compose.remote.yml](docker-compose.remote.yml) - remote player-only stack for machines that sit behind the player bridge. +- [docker-compose.remote.yml](docker-compose.remote.yml) - remote player-only stack using a published player image. - [.env.remote.example](.env.remote.example) - sample environment values for the remote stack. ## Stack Overview @@ -48,7 +48,6 @@ Key configuration: - `DEFAULT_ADMIN_USERNAME` - `DEFAULT_ADMIN_NAME` - `DEFAULT_ADMIN_PASSWORD` -- `PASSWORD_HASH_ITERATIONS` ### `player` @@ -57,7 +56,7 @@ The screen runtime that renders playlists and receives commands. Responsibilities: - serves the player UI on port `8081` -- connects to MySQL in local mode +- connects to MySQL in the public stack - connects to the bridge in remote mode through `BRIDGE_PUBLIC_URL` - registers live connections and accepts control commands @@ -65,7 +64,6 @@ Key configuration: - `PLAYER_PUBLIC_URL` - `PLAYER_INTERNAL_URL` -- `BRIDGE_INTERNAL_URL` - `PLAYER_IDENTIFIER` - `BRIDGE_PUBLIC_URL` in remote mode - `PULSE_SIGNAGE_SHARED_SECRET` @@ -168,7 +166,6 @@ Leave it blank only if you intentionally want to run without request signing in | `DEFAULT_ADMIN_USERNAME` | web | Bootstrap admin username. | | `DEFAULT_ADMIN_NAME` | web | Bootstrap admin display name. | | `DEFAULT_ADMIN_PASSWORD` | web | Bootstrap admin password. | -| `PASSWORD_HASH_ITERATIONS` | web | Password hashing cost. | | `PLAYER_INTERNAL_URL` | web, player | Internal player URL used by the dashboard and player runtime. | | `BRIDGE_INTERNAL_URL` | web | Bridge URL used by the web app for player snapshot and command forwarding. | | `WEB_INTERNAL_URL` | player-bridge | Internal web URL used by the bridge to call the dashboard app directly. | @@ -209,7 +206,7 @@ Remote stack ports: Each compose file creates its own named network: - `pulse-signage` for the public stack -- `pulse-signage-remote` for remote player deployment. +- `pulse-signage-remote` for the remote player deployment. ## Notes @@ -217,7 +214,7 @@ Each compose file creates its own named network: - A remote player must use the same `PULSE_SIGNAGE_SHARED_SECRET` as the bridge it connects to. - The bridge service is the dashboard-facing command path for connected remote players. - The remote player should point `BRIDGE_PUBLIC_URL` at the bridge, not at the public web endpoint. -- The `PULSE_SIGNAGE_WEB_IMAGE` and `PULSE_SIGNAGE_PLAYER_IMAGE` tags default to the published `pulse-signage-web` and `pulse-signage-player` repositories with `latest` and `v1.2.3` style tags, but they can be overridden for local builds or custom releases. +- The `PULSE_SIGNAGE_WEB_IMAGE` and `PULSE_SIGNAGE_PLAYER_IMAGE` tags default to the published `pulse-signage-web` and `pulse-signage-player` repositories with `latest` tags, but they can be overridden for custom releases. ## Recommended Setup diff --git a/docs/schema.md b/docs/schema.md index 2b4c50f..efdfc8f 100644 --- a/docs/schema.md +++ b/docs/schema.md @@ -76,7 +76,8 @@ Tables generally use a numeric auto-increment `id` primary key. The relationship ### `c_templates` -- `id`, `name`, `canvas_size_id`, `background_image_path`, `background_color`, `created_at`, `created_by`, `modified_at`, `modified_by` +- `id`, `name`, `canvas_size_id`, `background_image_path`, `background_color`, `background_gradient`, `created_at`, `created_by`, `modified_at`, `modified_by` +- `background_gradient` stores normalized linear gradient settings as JSON text, including angle and colour stops. - Foreign key: - `canvas_size_id` -> `c_canvas_sizes.id` with `ON DELETE SET NULL` @@ -170,7 +171,7 @@ Tables generally use a numeric auto-increment `id` primary key. The relationship ### `i_rss_feeds` -- `id`, `name`, `feed_url`, `update_interval_value`, `update_interval_unit`, `item_limit`, `created_at`, `created_by`, `modified_at`, `modified_by` +- `id`, `name`, `feed_url`, `update_interval_value`, `update_interval_unit`, `item_limit`, `enabled`, `last_pulled_at`, `created_at`, `created_by`, `modified_at`, `modified_by` ### `i_rss_feed_items` @@ -182,7 +183,12 @@ Tables generally use a numeric auto-increment `id` primary key. The relationship ### `i_api_sources` -- `id`, `name`, `api_url`, `auth_method`, `auth_username`, `auth_password`, `auth_bearer_token`, `auth_header_name`, `auth_header_value`, `items_path`, `update_interval_value`, `update_interval_unit`, `last_pulled_at`, `last_pull_error`, `last_response_status`, `last_response_content_type`, `last_response_json`, `created_at`, `created_by`, `modified_at`, `modified_by` +- `id`, `name`, `api_url`, `auth_method`, `auth_username`, `auth_password`, `auth_bearer_token`, `auth_header_name`, `auth_header_value`, `items_path`, `update_interval_value`, `update_interval_unit`, `enabled`, `last_pulled_at`, `last_pull_error`, `last_response_status`, `last_response_content_type`, `last_response_json`, `created_at`, `created_by`, `modified_at`, `modified_by` + +### `i_weather_locations` + +- `id`, `name`, `location_label`, `latitude`, `longitude`, `timezone`, `provider`, `temperature_unit`, `wind_unit`, `precipitation_unit`, `update_interval_value`, `update_interval_unit`, `enabled`, `last_pulled_at`, `last_pull_error`, `last_response_json`, `created_at`, `created_by`, `modified_at`, `modified_by` +- Stores configured weather locations and the most recent provider response used for forecast previews and weather regions. ### `i_timetable_groups`