- Python 46.2%
- HTML 44.9%
- CSS 8.9%
| static/css | ||
| systemd | ||
| templates | ||
| .gitignore | ||
| auroralert.py | ||
| LICENSE | ||
| README.md | ||
| tasks.py | ||
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
- 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.
- 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.