{"id":33223988,"url":"https://github.com/chiefgyk3d/solarstorm_scout","last_synced_at":"2026-05-12T23:07:44.058Z","repository":{"id":324306832,"uuid":"1096768435","full_name":"ChiefGyk3D/solarstorm_scout","owner":"ChiefGyk3D","description":"Automated space-weather bot for Bluesky and Mastodon. SolarStorm Scout posts NOAA HF propagation, D-Region absorption, aurora forecasts, and GOES X-ray flux to help ham radio operators track changing radio conditions in real time.","archived":false,"fork":false,"pushed_at":"2025-11-15T02:27:29.000Z","size":3748,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-15T02:34:00.253Z","etag":null,"topics":["bluesky","bluesky-bot","ham-radio","hamradio","mastodon","mastodon-bot","noaa","noaa-data","noaa-weather","radio","spaceweather","weather"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChiefGyk3D.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-14T23:16:43.000Z","updated_at":"2025-11-15T02:25:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ChiefGyk3D/solarstorm_scout","commit_stats":null,"previous_names":["chiefgyk3d/solarstorm_scout"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ChiefGyk3D/solarstorm_scout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChiefGyk3D%2Fsolarstorm_scout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChiefGyk3D%2Fsolarstorm_scout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChiefGyk3D%2Fsolarstorm_scout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChiefGyk3D%2Fsolarstorm_scout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChiefGyk3D","download_url":"https://codeload.github.com/ChiefGyk3D/solarstorm_scout/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChiefGyk3D%2Fsolarstorm_scout/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284725595,"owners_count":27053255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bluesky","bluesky-bot","ham-radio","hamradio","mastodon","mastodon-bot","noaa","noaa-data","noaa-weather","radio","spaceweather","weather"],"created_at":"2025-11-16T15:02:02.455Z","updated_at":"2025-11-16T15:02:13.690Z","avatar_url":"https://github.com/ChiefGyk3D.png","language":"Python","funding_links":["https://patreon.com/chiefgyk3d?utm_medium=unknown\u0026utm_source=join_link\u0026utm_campaign=creatorshare_creator\u0026utm_content=copyLink"],"categories":[],"sub_categories":[],"readme":"# 🌞 SolarStorm Scout\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"media/banner.png\" alt=\"SolarStorm Scout Banner\" width=\"400\"\u003e\n\u003c/div\u003e\n\n**Space Weather Social Media Bot** - Automated HF propagation updates for Bluesky and Mastodon\n\n**🔴 Live Now:** Follow [@solarstormscout.bsky.social](https://bsky.app/profile/solarstormscout.bsky.social) on Bluesky | [@solarstormscout@social.chiefgyk3d.com](https://social.chiefgyk3d.com/@solarstormscout) on Mastodon\n\nSolarStorm Scout fetches real-time space weather data from NOAA and posts threaded updates about:\n- HF Propagation Conditions\n- D-Region Absorption Predictions\n- Aurora Forecasts\n- GOES Solar X-Ray Flux\n\nPerfect for amateur radio operators, space weather enthusiasts, and anyone interested in HF propagation!\n\n\u003e **⚠️ Note**: Space weather conditions can change rapidly. Data represents conditions at post time. For real-time updates, visit [NOAA Space Weather Prediction Center](https://www.swpc.noaa.gov/).\n\n## 🔕 Content Filtering\n\nAll posts include the **#SolarStormScout** hashtag. Since Bluesky and Mastodon don't currently provide options to control what appears in general/live feeds, users can filter out these automated posts by muting or blocking the hashtag:\n\n- **Bluesky**: Settings → Moderation → Muted words → Add \"#SolarStormScout\"\n- **Mastodon**: Preferences → Filters → Add filter for \"#SolarStormScout\"\n\nThis allows users who prefer not to see automated space weather updates to opt out while still allowing those interested to follow the account directly.\n\n## 🎯 Features\n\n- ✅ **Dual Platform Support**: Post to Bluesky and/or Mastodon\n- ✅ **Thread Support**: Posts 5-part threads with detailed information\n- ✅ **300 Character Limit**: Each post optimized for readability\n- ✅ **Configurable Interval**: Default 1.5 hours, fully customizable\n- ✅ **Multiple Deployment Options**: systemd timer, Docker, or manual\n- ✅ **Secrets Management**: Support for .env files and Doppler\n- ✅ **Real-time NOAA Data**: Direct from Space Weather Prediction Center\n- ✅ **Professional Formatting**: Clean, informative posts with hashtags\n\n## 📋 Thread Format\n\nEach update consists of 5 posts:\n\n### Post 1: Solar Indices\n\u003cimg src=\"media/solar_indices.png\" alt=\"Solar Indices Post\" width=\"500\"\u003e\n\n- Solar Flux Index (SFI)\n- A-index \u0026 K-index\n- Critical frequency (foF2)\n- Maximum Usable Frequency (MUF)\n- D-Layer absorption percentage\n- NOAA Scales (R/S/G)\n\n### Post 2: Band Conditions\n\u003cimg src=\"media/band_conditions.png\" alt=\"Band Conditions Post\" width=\"500\"\u003e\n\n- 160m through 6m band-by-band conditions\n- Quality indicators with emojis (🟢 Good, 🟡 Fair, 🔴 Closed)\n- Best bands for current conditions\n- MUF reference\n\n### Post 3: D-Region Absorption\n\u003cimg src=\"media/d-region.png\" alt=\"D-Region Absorption Post\" width=\"500\"\u003e\n\n- Current absorption status with D-RAP map image\n- Time-based context (day/night)\n- Band recommendations for conditions\n\n### Post 4: Aurora Forecast\n\u003cimg src=\"media/aurora.png\" alt=\"Aurora Forecast Post\" width=\"500\"\u003e\n\n- Aurora power level with aurora oval image\n- K-index\n- Visibility predictions\n- VHF propagation notes\n\n### Post 5: GOES X-Ray Flux\n\u003cimg src=\"media/x-ray.png\" alt=\"X-Ray Flux Post\" width=\"500\"\u003e\n\n- Current X-ray classification\n- 6-hour trend chart (generated)\n- Solar flare impact assessment\n- Radio blackout warnings\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Python 3.11 or higher (3.10 not supported due to numpy requirements)\n- Active Bluesky and/or Mastodon account\n- Linux system with systemd (for systemd installation)\n- Docker (for Docker installation)\n\n### Option 1: Automated Installation with Installer Script (Recommended)\n\nThe installer script supports both Python and Docker deployments.\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/ChiefGyk3D/solarstorm_scout.git\n   cd solarstorm_scout\n   ```\n\n2. **Create configuration:**\n   ```bash\n   cp .env.example .env\n   nano .env  # Edit with your credentials\n   ```\n\n3. **Run installer:**\n   ```bash\n   chmod +x scripts/install-solarstorm.sh\n   ./scripts/install-solarstorm.sh\n   ```\n\n4. **Follow prompts to:**\n   - Set posting interval (default: 1.5 hours)\n   - Choose deployment method: Python (venv or system) or Docker (GHCR or local build)\n   - Optionally run a test post\n\n\u003e **Note:** The installer automatically handles Docker installation if you select Docker deployment. Docker must be installed on your system before running the installer.\n\n### Option 2: Manual Docker Installation\n\nFor manual Docker deployment without the installer:\n\n1. **Pull from GitHub Container Registry:**\n   ```bash\n   docker pull ghcr.io/chiefgyk3d/solarstorm_scout:latest\n   ```\n\n2. **Create configuration:**\n   ```bash\n   cp .env.example .env\n   nano .env  # Edit with your credentials\n   ```\n\n3. **Run container:**\n   ```bash\n   docker run --rm --env-file=.env ghcr.io/chiefgyk3d/solarstorm_scout:latest\n   ```\n\n4. **Or build locally:**\n   ```bash\n   git clone https://github.com/ChiefGyk3D/solarstorm_scout.git\n   cd solarstorm_scout\n   docker build -t solarstorm_scout .\n   docker run --rm --env-file=.env solarstorm_scout\n   ```\n\n5. **Schedule with cron:**\n   ```bash\n   crontab -e\n   # Add: Run every 1.5 hours\n   0 */1 * * * docker run --rm --env-file=/path/to/.env ghcr.io/chiefgyk3d/solarstorm_scout:latest\n   30 */2 * * * docker run --rm --env-file=/path/to/.env ghcr.io/chiefgyk3d/solarstorm_scout:latest\n   ```\n\n### Option 3: Manual Installation\n\n1. **Install dependencies:**\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n2. **Configure:**\n   ```bash\n   cp .env.example .env\n   nano .env\n   ```\n\n3. **Run manually:**\n   ```bash\n   python3 -m solarstorm_scout.main\n   ```\n\n## 🔧 Configuration\n\n### Social Media Setup\n\n#### Bluesky\n1. Go to [Bluesky App Passwords](https://bsky.app/settings/app-passwords)\n2. Create new app password: \"SolarStorm Scout\"\n3. Copy password to `.env` file:\n   ```env\n   BLUESKY_ENABLED=true\n   BLUESKY_HANDLE=yourhandle.bsky.social\n   BLUESKY_APP_PASSWORD=your-app-password\n   ```\n\n#### Mastodon\n1. Log into your Mastodon instance\n2. Go to Preferences → Development → New Application\n3. Name: \"SolarStorm Scout\"\n4. **Required Scopes**:\n   - ✅ `read` - Verify account credentials\n   - ✅ `write:statuses` - Post status updates and threads\n   - ✅ `write:media` - Upload images to posts\n5. Click \"Submit\" to create the application\n6. Copy access token to `.env`:\n   ```env\n   MASTODON_ENABLED=true\n   MASTODON_API_BASE_URL=https://your-instance.social\n   MASTODON_ACCESS_TOKEN=your-access-token\n   ```\n\n### Doppler Secrets Manager (Optional)\n\nInstead of `.env` files, use Doppler:\n\n1. Create [Doppler](https://doppler.com) account\n2. Create project (e.g., \"solarstorm-scout\") and add secrets\n3. Create config within the project (e.g., \"dev\", \"prd\")\n4. Generate service token\n5. Set in environment:\n   ```env\n   DOPPLER_TOKEN=your-service-token\n   DOPPLER_PROJECT=solarstorm-scout\n   DOPPLER_CONFIG=prd\n   ```\n\n\u003e **Note:** Both `DOPPLER_PROJECT` and `DOPPLER_CONFIG` environment variables are required when using Doppler secrets management.\n\n## 🕐 Scheduling\n\n### systemd Timer (Linux)\n\nAutomatically configured by `install-solarstorm.sh` script.\n\n**View status:**\n```bash\nsudo systemctl status solarstorm-scout.timer\n```\n\n**View logs:**\n```bash\nsudo journalctl -u solarstorm-scout.service -f\n```\n\n**Manual run:**\n```bash\nsudo systemctl start solarstorm-scout.service\n```\n\n**Change interval:**\nEdit `/etc/systemd/system/solarstorm-scout.timer` and change `OnUnitActiveSec=` value, then:\n```bash\nsudo systemctl daemon-reload\nsudo systemctl restart solarstorm-scout.timer\n```\n\n### System Cron\n\nFor Docker or manual runs:\n\n```bash\ncrontab -e\n```\n\nAdd:\n```cron\n# Every 1.5 hours (at :00 and :30 past odd hours)\n0 1-23/2 * * * cd /path/to/solarstorm-scout \u0026\u0026 python3 -m solarstorm_scout.main\n30 0-22/2 * * * cd /path/to/solarstorm-scout \u0026\u0026 python3 -m solarstorm_scout.main\n\n# Or with Docker\n0 1-23/2 * * * docker run --rm --env-file=/path/to/.env ghcr.io/chiefgyk3d/solarstorm_scout:latest\n30 0-22/2 * * * docker run --rm --env-file=/path/to/.env ghcr.io/chiefgyk3d/solarstorm_scout:latest\n```\n\n## 📊 Data Sources\n\nAll data fetched from [NOAA Space Weather Prediction Center](https://www.swpc.noaa.gov/):\n\n- **Solar Flux Index**: 10.7cm radio emissions (F10.7)\n- **Planetary K-index**: Geomagnetic activity\n- **Aurora Power**: Hemispheric power index\n- **GOES X-Ray Flux**: Real-time solar X-ray monitoring\n\nData updated every run (default: 1.5 hours).\n\n## 🛠️ Development\n\n### Project Structure\n\n```\nsolarstorm_scout/\n├── solarstorm_scout/\n│   ├── __init__.py\n│   ├── main.py          # Main bot orchestrator\n│   ├── config.py        # Configuration \u0026 secrets\n│   ├── spaceweather.py  # NOAA data fetcher\n│   ├── formatter.py     # Message formatter\n│   ├── social.py        # Social media posters\n│   ├── chart_renderer.py # GOES X-ray chart generator\n│   └── demo.py          # Preview tool\n├── scripts/\n│   ├── install-solarstorm.sh    # Automated installer (Python + Docker)\n│   └── uninstall-solarstorm.sh  # Uninstaller\n├── systemd/\n│   ├── solarstorm-scout.service.template  # systemd service template\n│   └── solarstorm-scout.timer.template    # systemd timer template\n├── media/\n│   ├── banner.png       # README banner\n│   ├── logo.png         # Project logo\n│   ├── aurora.png       # Example aurora post\n│   ├── band_conditions.png  # Example band conditions post\n│   ├── d-region.png     # Example D-region post\n│   ├── solar_indices.png    # Example solar indices post\n│   ├── x-ray.png        # Example X-ray post\n│   └── streamelements.png   # Donation image\n├── .github/\n│   └── workflows/       # CI/CD pipelines\n├── .env.example\n├── requirements.txt\n├── pyproject.toml\n├── Dockerfile\n├── docker-compose.yml\n├── docker-compose.oneshot.yml\n├── LICENSE\n└── README.md\n```\n\n### Running Tests\n\n```bash\n# Install dev dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Format code\nblack solarstorm_scout/\n\n# Lint\nflake8 solarstorm_scout/\n```\n\n## 🔍 Troubleshooting\n\n### Bot not posting\n\n1. **Check service status:**\n   ```bash\n   sudo systemctl status solarstorm-scout.timer\n   sudo systemctl status solarstorm-scout.service\n   ```\n\n2. **View logs:**\n   ```bash\n   sudo journalctl -u solarstorm-scout.service -n 50\n   ```\n\n3. **Test manually:**\n   ```bash\n   cd /path/to/solarstorm-scout\n   source venv/bin/activate  # if using venv\n   python3 -m solarstorm_scout.main\n   ```\n\n### Authentication errors\n\n- **Bluesky**: Verify app password (not account password)\n- **Mastodon**: Check access token and API base URL\n- **Permissions**: Ensure scopes include `read` and `write`\n\n### NOAA data fetch errors\n\n- Check internet connectivity\n- NOAA APIs occasionally timeout - bot will retry on next run\n- View detailed logs: `LOG_LEVEL=DEBUG` in `.env`\n\n### Docker issues\n\n```bash\n# Pull latest image\ndocker pull ghcr.io/chiefgyk3d/solarstorm_scout:latest\n\n# Test container manually\ndocker run --rm --env-file=.env ghcr.io/chiefgyk3d/solarstorm_scout:latest\n\n# Build locally if needed\ndocker build --no-cache -t solarstorm_scout .\ndocker run --rm --env-file=.env solarstorm_scout\n```\n\n## 📝 License\n\nMozilla Public License 2.0 (MPL-2.0)\n\n**Commercial Use Requirements:**\n- ✅ You MAY use this software commercially\n- ✅ You MAY modify this software for commercial purposes\n- ⚠️ You MUST share any modifications to MPL-licensed files under the same MPL 2.0 license\n- ⚠️ Modified versions must clearly indicate changes were made\n- ✅ You can combine with proprietary software (file-level copyleft, not project-level)\n\n**In Summary:** If you modify any of the Python files in `solarstorm_scout/`, you must contribute those changes back under MPL 2.0. Your larger project can remain proprietary, but the modified bot code must be open source.\n\nSee [LICENSE](LICENSE) file for complete details.\n\n## 🤝 Contributing\n\nContributions welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n## 📧 Support\n\n- **Issues**: [GitHub Issues](https://github.com/ChiefGyk3D/solarstorm_scout/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/ChiefGyk3D/solarstorm_scout/discussions)\n\n## 🙏 Acknowledgments\n\n- **NOAA Space Weather Prediction Center** - For excellent public APIs\n- **Amateur Radio Community** - For inspiration and support\n- **Bluesky \u0026 Mastodon** - For open social media platforms\n\n## 📖 Related Projects\n\n- [Penguin Overlord](https://github.com/chiefgyk3d/penguin-overlord) - Discord bot with HAM radio features\n- [NOAA Space Weather](https://www.swpc.noaa.gov/) - Official NOAA space weather site\n\n---\n\n## 💝 Donations and Tips\n\nIf you find SolarStorm Scout useful, consider supporting development:\n\n**Donate**:\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://patreon.com/chiefgyk3d?utm_medium=unknown\u0026utm_source=join_link\u0026utm_campaign=creatorshare_creator\u0026utm_content=copyLink\" title=\"Patreon\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/patreon.svg\" width=\"32\" height=\"32\" alt=\"Patreon\"/\u003e\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://streamelements.com/chiefgyk3d/tip\" title=\"StreamElements\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/ChiefGyk3D/solarstorm_scout/main/media/streamelements.png\" width=\"32\" height=\"32\" alt=\"StreamElements\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003ePatreon\u003c/td\u003e\n      \u003ctd align=\"center\"\u003eStreamElements\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n### Cryptocurrency Tips\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable style=\"border:none;\"\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" style=\"padding:8px; min-width:120px;\"\u003e\n        \u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/bitcoin.svg\" width=\"28\" height=\"28\" alt=\"Bitcoin\"/\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"left\" style=\"padding:8px;\"\u003e\n        \u003cb\u003eBitcoin\u003c/b\u003e\u003cbr/\u003e\n        \u003ccode style=\"font-size:12px;\"\u003ebc1qztdzcy2wyavj2tsuandu4p0tcklzttvdnzalla\u003c/code\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" style=\"padding:8px; min-width:120px;\"\u003e\n        \u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/monero.svg\" width=\"28\" height=\"28\" alt=\"Monero\"/\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"left\" style=\"padding:8px;\"\u003e\n        \u003cb\u003eMonero\u003c/b\u003e\u003cbr/\u003e\n        \u003ccode style=\"font-size:12px;\"\u003e84Y34QubRwQYK2HNviezeH9r6aRcPvgWmKtDkN3EwiuVbp6sNLhm9ffRgs6BA9X1n9jY7wEN16ZEpiEngZbecXseUrW8SeQ\u003c/code\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" style=\"padding:8px; min-width:120px;\"\u003e\n        \u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/ethereum.svg\" width=\"28\" height=\"28\" alt=\"Ethereum\"/\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"left\" style=\"padding:8px;\"\u003e\n        \u003cb\u003eEthereum\u003c/b\u003e\u003cbr/\u003e\n        \u003ccode style=\"font-size:12px;\"\u003e0x554f18cfB684889c3A60219BDBE7b050C39335ED\u003c/code\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nMade with ❤️ by [ChiefGyk3D](https://github.com/ChiefGyk3D)\n\n## Author \u0026 Socials\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://social.chiefgyk3d.com/@chiefgyk3d\" title=\"Mastodon\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/mastodon.svg\" width=\"32\" height=\"32\" alt=\"Mastodon\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://bsky.app/profile/chiefgyk3d.com\" title=\"Bluesky\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/bluesky.svg\" width=\"32\" height=\"32\" alt=\"Bluesky\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://twitch.tv/chiefgyk3d\" title=\"Twitch\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/twitch.svg\" width=\"32\" height=\"32\" alt=\"Twitch\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.youtube.com/channel/UCvFY4KyqVBuYd7JAl3NRyiQ\" title=\"YouTube\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/youtube.svg\" width=\"32\" height=\"32\" alt=\"YouTube\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://kick.com/chiefgyk3d\" title=\"Kick\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/kick.svg\" width=\"32\" height=\"32\" alt=\"Kick\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.tiktok.com/@chiefgyk3d\" title=\"TikTok\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/tiktok.svg\" width=\"32\" height=\"32\" alt=\"TikTok\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://discord.chiefgyk3d.com\" title=\"Discord\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/discord.svg\" width=\"32\" height=\"32\" alt=\"Discord\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://matrix-invite.chiefgyk3d.com\" title=\"Matrix\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/matrix.svg\" width=\"32\" height=\"32\" alt=\"Matrix\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003eMastodon\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eBluesky\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eTwitch\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eYouTube\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eKick\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eTikTok\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eDiscord\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eMatrix\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c/div\u003e\n\n---\n\n**73 de SolarStorm Scout!** 📡🌞\n\n*Keep your HF bands alive and propagation thriving!*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiefgyk3d%2Fsolarstorm_scout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchiefgyk3d%2Fsolarstorm_scout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiefgyk3d%2Fsolarstorm_scout/lists"}