Aurora borealis notification service
  • Python 46.2%
  • HTML 44.9%
  • CSS 8.9%
Find a file
2026-04-14 06:49:38 +03:00
static/css Upload files to "static/css" 2026-04-14 05:05:53 +03:00
systemd Add systemd/auroralert.service 2026-04-14 06:24:44 +03:00
templates Upload files to "templates" 2026-04-14 05:02:53 +03:00
.gitignore Initial commit 2026-04-14 04:57:14 +03:00
auroralert.py Upload files to "/" 2026-04-14 05:04:37 +03:00
LICENSE Initial commit 2026-04-14 04:57:14 +03:00
README.md Update README.md 2026-04-14 06:49:38 +03:00
tasks.py Upload files to "/" 2026-04-14 05:04:37 +03:00

Auroralert

Aurora borealis notification service. Hosted as a website, thanks to apprise it can get you notified via discord/telegram/gotify... whenever there is a probability of an aurora.

Features

User management

It creates a database to register users, their settings and notification history.

Admin interface

A small admin interface allows for a quick overview of the users.

User settings

Each user defines a location, at which thresholds they want to be notified, and their notification channel urls.

To-do

  • Add forecast
  • Change the admin account determination from username based to first entry in the db or something
  • Refine location based probability
  • Add weather/visibility
  • Add overview line in the admin view
  • Get rid of Flask

Disclaimer

  1. The project has been started with me putting 5 prompts into huggingface.com/chat for fun. Of course it was not working but it gave me an interface which did not look like a .txt, unlike what I would have produced. Therefore there are still remnants of vibecode in this repo, which become less and less at every update.
  2. The project is still running Flask and is therefore not ripe for production phase.

Prerequisites

  • Python modules
    • Flask
    • Apprise
    • SQLite3
    • Celery

See Installation.

A broker, at the moment redis is assumed running on port 5369. See redis

Installation

git clone https://forgejo.hel.alfredolin.eu/Alfredolin/Auroralert.git && cd auroralert && python -m venv ./venv && source venv/bin/activate && python -m pip install flask celery apprise

Starting up

Celery

Auroralert needs a celery worker and a celery beat, in another terminal from the auroralert folder, do: source venv/bin/activate && celery -A tasks worker -B --loglevel=info

Redis

Redis should come with most distributions. Starting it should be as simple as opening a new terminal and: redis-server or redis-server --daemonize yes if you want to run as daemon/close the terminal afterwards.

Auroralert

From the main folder, activate the virtual environment and run auroralert: source venv/bin/activate && python auroralert.py

Now Auroralert web interface should be reachable from your machine on the configured port (default is 5000, inherited from Flask/werkzeug) i.e. open your browser and type http://127.0.0.1:5000

Daemonize

This will assume you have systemd, else please follow redis and celery documentation.

Redis is probably already up and running. If not please follow the doc.

Celery beat and worker can each be daemonized, see their doc. If you do, take note that in the conf, CELERY_APP should be "tasks" and CELERY_NODES should be e.g. "worker". Remember to give the correct user/group permissions to /run/celery and /var/log/celery after creating them.

You can also daemonize auroralert as a systemd service by adding auroralert.service in /etc/systemd/system/, see example file in /systemd. To apply the change, do sudo systemctl daemon-reload and test the service with sudo systemctl start auroralert. If it works properly, you can do sudo systemctl enable auroralert to have it running after reboot.