https://github.com/calemroelofs/theia
Web Application Server Sentinel
https://github.com/calemroelofs/theia
celery devops-tools django monitoring-server python redis security ssl
Last synced: 2 months ago
JSON representation
Web Application Server Sentinel
- Host: GitHub
- URL: https://github.com/calemroelofs/theia
- Owner: CalemRoelofs
- License: gpl-3.0
- Created: 2021-07-07T18:36:01.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-09-06T18:11:30.000Z (almost 5 years ago)
- Last Synced: 2025-03-08T07:39:29.061Z (over 1 year ago)
- Topics: celery, devops-tools, django, monitoring-server, python, redis, security, ssl
- Language: SCSS
- Homepage:
- Size: 1.17 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Theia - Web Application Server Sentinel
For my end of year project for my course in contemporary software development, I've decided to create a server monitor combining elements of Nagios, OpenVAS and MxToolbox.
Theia is going to fulfil a number of roles:
- Registry of applications
- Keep track of what apps live on what servers
- Who wrote them
- Who maintains them
- When they were deployed
- Passive security auditing
- What ports are open?
- Are the SSL certs valid?
- Are the proper security headers in place?
- What's the latency to the host?
- State change alerting
- Some ports just opened on a server?
- The SSL certs just expired?
- Someone just changed the `content-security-policy`?
- Notify the sysadmins/devops/developer to let them know via:
- Slack
- Discord
- Telegram
- Microsoft Teams
- Email with SMTP
The basic idea is to have an application in place that not only tracks what infrastructure is in place, but also maintains historic records of certain changes that happen to that infrastructure for auditing at a later date, or alerting administrators immediately of something unexpected.
## Usage
```bash
docker-compose up -d --build
```
The server will run on port 8080 by default but this can be changed in the `docker-compose.yml` file.
If you want to use the Django Admin Panel, to set up a superuser find the id of the container and run `docker exec -it {container_id} python manage.py createsuperuser`.
## To-Do
- Test CRUD validations for:
- Servers
- Webhooks
- Implement:
- Exporting changelog history for a server
- Bugs:
- Messages aren't rendering in Teams for some reason despite being returned 200
- Nice to have:
- Format messages properly
- Add a basic login system
- Allow users to see the profile history for a server at a given date/time
- Figure out what else to put in the top navbar
- Add pagination for changelogs and alertlogs
- Write a nicer and more descriptive README