Update deployment and schema documentation
This commit is contained in:
@@ -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.
|
- [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.
|
- [.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.
|
- [.env.remote.example](.env.remote.example) - sample environment values for the remote stack.
|
||||||
|
|
||||||
## Stack Overview
|
## Stack Overview
|
||||||
@@ -48,7 +48,6 @@ Key configuration:
|
|||||||
- `DEFAULT_ADMIN_USERNAME`
|
- `DEFAULT_ADMIN_USERNAME`
|
||||||
- `DEFAULT_ADMIN_NAME`
|
- `DEFAULT_ADMIN_NAME`
|
||||||
- `DEFAULT_ADMIN_PASSWORD`
|
- `DEFAULT_ADMIN_PASSWORD`
|
||||||
- `PASSWORD_HASH_ITERATIONS`
|
|
||||||
|
|
||||||
### `player`
|
### `player`
|
||||||
|
|
||||||
@@ -57,7 +56,7 @@ The screen runtime that renders playlists and receives commands.
|
|||||||
Responsibilities:
|
Responsibilities:
|
||||||
|
|
||||||
- serves the player UI on port `8081`
|
- 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`
|
- connects to the bridge in remote mode through `BRIDGE_PUBLIC_URL`
|
||||||
- registers live connections and accepts control commands
|
- registers live connections and accepts control commands
|
||||||
|
|
||||||
@@ -65,7 +64,6 @@ Key configuration:
|
|||||||
|
|
||||||
- `PLAYER_PUBLIC_URL`
|
- `PLAYER_PUBLIC_URL`
|
||||||
- `PLAYER_INTERNAL_URL`
|
- `PLAYER_INTERNAL_URL`
|
||||||
- `BRIDGE_INTERNAL_URL`
|
|
||||||
- `PLAYER_IDENTIFIER`
|
- `PLAYER_IDENTIFIER`
|
||||||
- `BRIDGE_PUBLIC_URL` in remote mode
|
- `BRIDGE_PUBLIC_URL` in remote mode
|
||||||
- `PULSE_SIGNAGE_SHARED_SECRET`
|
- `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_USERNAME` | web | Bootstrap admin username. |
|
||||||
| `DEFAULT_ADMIN_NAME` | web | Bootstrap admin display name. |
|
| `DEFAULT_ADMIN_NAME` | web | Bootstrap admin display name. |
|
||||||
| `DEFAULT_ADMIN_PASSWORD` | web | Bootstrap admin password. |
|
| `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. |
|
| `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. |
|
| `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. |
|
| `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:
|
Each compose file creates its own named network:
|
||||||
|
|
||||||
- `pulse-signage` for the public stack
|
- `pulse-signage` for the public stack
|
||||||
- `pulse-signage-remote` for remote player deployment.
|
- `pulse-signage-remote` for the remote player deployment.
|
||||||
|
|
||||||
## Notes
|
## 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.
|
- 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 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 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
|
## Recommended Setup
|
||||||
|
|
||||||
|
|||||||
+9
-3
@@ -76,7 +76,8 @@ Tables generally use a numeric auto-increment `id` primary key. The relationship
|
|||||||
|
|
||||||
### `c_templates`
|
### `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:
|
- Foreign key:
|
||||||
- `canvas_size_id` -> `c_canvas_sizes.id` with `ON DELETE SET NULL`
|
- `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`
|
### `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`
|
### `i_rss_feed_items`
|
||||||
|
|
||||||
@@ -182,7 +183,12 @@ Tables generally use a numeric auto-increment `id` primary key. The relationship
|
|||||||
|
|
||||||
### `i_api_sources`
|
### `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`
|
### `i_timetable_groups`
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user