Documentation
Getting Started
Documentation Index Installation Details Quickstart
Architecture
Alert Geometry Coverage Data Flow Sequences Design Standards Display System Architecture Eas Decoding Summary Eas Monitor V3 Architecture Sdr Service Architecture System Architecture Theory Of Operation
Development
Agents Certification Reliability Plan Component Library Contributing Fcc Part11 Compliance Matrix Javascript Api Large File Refactor Plan Navigation Releasing Sdr Frequency Validation User Interface Guide
Hardware
Alpha Led Guide Argon40 Zigbee Setup Capacity And Sizing Gpio Guide Gps Hat Setup Hwsetup Helper Neopixel Led Control Sdr Setup Serial To Ethernet Adapters Vfd Display Setup Waveshare Rs232 Wifi Setup
Guides
Alert Signals Analytics And Reporting Api Key Management Application Settings Audio Monitoring Audit Log Review Database Backups Database Browser Disk Space Cleanup Eas Config Tool Eas Test Signal Pipeline Gated Alerts Hardware Quickstart Health Monitoring Help Https Setup Icecast Streaming Setup Ipaws Feed Integration Local Authorities Local Mail Server Manual Eas Events Mfa Totp Setup Notifications One Button Upgrade Setup Instructions Smart Setup Sms Opt In Ssl Web Ui Guide Tailscale Setup Tts Normalization
Troubleshooting
Audio Sdr Fix Tool Firewall Requirements Polling Not Working Sdr Master Troubleshooting Guide Troubleshooting 504 Timeout Tts Troubleshooting
Security
Audit Log Integrity Public Routes Security
Reference
About Alpha M Protocol Changelog Dependency Attribution Diagrams Ecig Cap To Eas Implementation Guide V1 0 Fcc 26 38 Eas Cybersecurity Fips Data Sources Mdc1200 Nrsc4B Same Standard Nws Alert Parameters Nws Zone Catalog Ohio Eas Documentation Overview Protocols Overview Rbds Standard Repository Statistics Sage Endec Same Site Reorganization Vtec Event Linking
Policies
Privacy Policy Sms Messaging Terms Of Use Trademark Policy

Application Settings

EAS Station™ stores a small set of runtime application settings in the database so they can be changed from the web interface without editing .env or restarting services. These cover logging, file storage paths, dashboard branding, and the administrator password policy.


Opening the Page

  1. Navigate to the Settings hub (/settings).
  2. Click the Application Settings card (/admin/application/).

Access requires the system.configure permission (the admin role). Users without it receive a permission-denied response.

On first visit the page creates a default settings row automatically. If the database is unavailable, the page falls back to in-memory defaults and shows a warning banner asking you to run database migrations.


Available Settings

Logging

Setting Description Default
Log Level Root logger verbosity: DEBUG, INFO, WARNING, ERROR, or CRITICAL INFO
Log File Path to the application log file logs/eas_station.log

Log level changes are applied to the running process immediately on save — no restart required. Other settings require a service restart to take effect (except the backup directory, which is also applied live).

File Storage

Setting Description Default
Upload Folder Directory for uploaded files (e.g. custom audio) /opt/eas-station/uploads
Backup Directory Destination for database backup archives /var/backups/eas-station

When you save a new backup directory, EAS Station™ tries to create it right away and verifies it is writable by the service user. If creation fails (for example, the path is on a USB or NFS mount that is not yet available), the save still succeeds but the response includes a warning — backups will fail until the path exists and is writable. The new path is pushed into the live Flask configuration so the next backup uses it without a restart.

Dashboard Header (Branding)

Setting Description Limit
Dashboard Headline Custom headline shown on the public dashboard 120 characters
Dashboard Subtitle Custom subtitle shown under the headline 160 characters

Both fields are optional. Leave them blank to use the built-in defaults. Useful for identifying the station (e.g. "Putnam County EAS Monitor").

Project Honeypot (http:BL)

Setting Description Default
Enabled Check login-attempt IPs against Project Honeypot's http:BL reputation service Off
Access Key Your Project Honeypot API access key (write-only — the saved value is never redisplayed; leave blank on save to keep the existing key) (unset)

Saved through the same form/update endpoint as the settings above.

Data Retention

Automated pruning of aged records, configured separately via a JSON API (GET/PUT /admin/application/retention) rather than the main settings form. Each data category has its own configurable retention age; a value of 0 disables pruning for that category. A background RetentionScheduler thread runs the sweep on a periodic schedule. See app_core/retention.py for the full set of prunable categories.

Password Policy

Setting Description Default
Minimum Length Required password length (1–128 characters) 15
Require Uppercase At least one uppercase letter Off
Require Lowercase At least one lowercase letter Off
Require Digits At least one number Off
Require Special At least one special character Off
Password Expiration Days before a password expires (0–3650; 0 = never) 0

Policy rules are enforced when administrator passwords are created or reset — existing passwords are not affected until they are changed. When expiration is enabled, administrators see a warning banner starting 14 days before their password expires.


Bootstrap Settings (Not Editable Here)

Some settings must still live in your .env file because they are needed before the database connection exists:

  • SECRET_KEY — Flask session security key
  • DATABASE_URL — PostgreSQL connection URL
  • CACHE_REDIS_URL — Redis connection URL
  • CACHE_TYPE — Cache backend type
  • FLASK_ENV / FLASK_DEBUG — Flask startup mode

Manage these through Settings → Environment (/admin/environment) or by editing .env directly.


Routes Reference

Method Route Permission Purpose
GET /admin/application/ system.configure Render the settings page
POST /admin/application/update system.configure Save settings (form fields); returns JSON
GET /admin/application/status system.view_config Current settings as JSON
GET/PUT /admin/application/retention system.configure Read/update data-retention policies (JSON API)

The /status endpoint returns {"success": true, "settings": {...}}, or HTTP 404 if no settings row has been created yet.


Troubleshooting

"Database error loading application settings"

The application_settings table is missing or unreachable. The page shows defaults in read-only fashion until you run migrations:

cd /opt/eas-station && source venv/bin/activate
alembic upgrade head

Backup warning after saving

A message like "Saved, but /path is not writable by the service user" means the setting was stored, but the next backup will fail. Fix permissions:

sudo mkdir -p /var/backups/eas-station
sudo chown eas-station:eas-station /var/backups/eas-station

Log level not changing

The level is applied immediately to the running web process, but the poller and SDR services read it at startup — restart those units after changing it:

sudo systemctl restart eas-station-poller.service eas-station-sdr.service

Related Guides


This document is served from docs/guides/APPLICATION_SETTINGS.md in the EAS Station™ installation.