EAS Station Setup Instructions
Quick Start
Portainer Deployment (Recommended)
The repository includes an empty .env file that the setup wizard can write to:
Deploy the stack in Portainer
- Add the Git repository
- No pre-configuration needed!
Access the setup wizard
- Navigate to:
http://your-server/setup - Complete the configuration using the web interface
- Navigate to:
Restart the stack in Portainer after saving configuration
Important: Configuration persists across container restarts but NOT across redeployments from Git (which resets the container). For permanent configuration:
- Option 1 (Recommended): After configuring via the wizard, copy your values into Portainer's "Environment variables" section:
- Edit your stack in Portainer
- Scroll to "Environment variables"
- Add:
SECRET_KEY=your-generated-key,POSTGRES_PASSWORD=your-password, etc.
This approach ensures your configuration persists across Git redeployments.
systemd (Command Line)
For command-line deployments:
# 1. Clone the repository
git clone https://github.com/KR8MER/eas-station.git
cd eas-station
# 3. Access the setup wizard
# Navigate to: http://localhost/setup
# 4. After configuration, restart
The .env file is already included in the repository, so no initialization script is needed.
Setup Wizard Features
The web-based setup wizard provides:
Core Configuration
- SECRET_KEY - One-click generation of secure 64-character token
- Database Connection - PostgreSQL host, port, credentials
- Timezone - Dropdown selection of US timezones
- Location - State code dropdown, county name
EAS Broadcast Settings
- EAS Originator - Dropdown of FCC-authorized codes (WXR, EAS, CIV, PEP)
- Station ID - Validated to 8 characters, no dashes
- FIPS Codes - Authorized county codes for manual broadcasts
- Zone Codes - Auto-derive from FIPS codes with one click
Audio & TTS
- Audio Ingest - Enable/disable SDR and ALSA sources
- TTS Provider - Dropdown selection (pyttsx3, Azure, Azure OpenAI)
Hardware Integration
- LED Sign - IP address configuration
- VFD Display - Serial port configuration
Troubleshooting
Configuration Not Persisting
If changes in the setup wizard don't persist after restarting:
Verify
.envis a file, not a directory:ls -la .env # Should show: -rw-r--r-- (file), not drwxr-xr-x (directory)Check that the volume mount is working:
# Should show a file, not a directoryAfter saving configuration, restart the stack:
Manual Configuration (Advanced)
If you prefer to configure manually instead of using the web wizard:
# 1. Copy the example file
cp .env.example .env
# 2. Generate a secret key
python3 -c "import secrets; print(secrets.token_hex(32))"
# 3. Edit .env with your values
nano .env
# 4. Start the stack
After Configuration
Once configured, the .env file will contain your settings. To modify:
Using the Setup Wizard (Recommended):
- Navigate to: http://localhost/setup
- Make changes
- Click "Save configuration"
Manually Editing .env:
- Edit the file:
nano .env
- Edit the file:
Auto-Derive Zone Codes
The setup wizard can automatically derive NWS zone codes from FIPS county codes:
- Enter FIPS codes in "Authorized FIPS Codes" field (e.g.,
039001,039003) - Click "Auto-Derive" button next to "Default Zone Codes"
- Zone codes will be populated automatically (e.g.,
OHZ001,OHC001)
This uses the existing county-to-zone mapping logic to save you from manual lookup.
Validation Features
The setup wizard validates your input:
- SECRET_KEY: Minimum 32 characters
- EAS_STATION_ID: Maximum 8 characters, no dashes
- DEFAULT_STATE_CODE: Must be valid 2-letter state abbreviation
- Timezone: Must be valid IANA timezone
- Port Numbers: Must be 1-65535
Clear error messages guide you to correct any issues.
Getting Help
- GitHub Issues: https://github.com/KR8MER/eas-station/issues
- Documentation: See
docs/directory - Setup Wizard Docs: See
docs/SETUP_WIZARD.md
This document is served from docs/guides/SETUP_INSTRUCTIONS.md in the EAS Station installation.