An application created for the 'DevOps, Software Evolution and Software Maintenance' course at ITU in Copenhagen. This application was refactored from the original minitwit project written in Python using flask.
Since then, it's been refactored to use TypeScript using modern DevOps features and practices:
- Continuous integration using GitHub Actions, with automatic unit testing, static analysis and coverage reporting.
- Continuous delivery through GitHub releases.
- Containerized using Docker.
- Logging support using Pino, ElasticSearch and Kibana.
- Performance monitoring using Promethus which is integrated through Grafana.
For contributing, please read the CONTRIBUTING.md guide.
A new docker image is built when a new release is published using Github Actions and the docker stack is managed by shepherd which checks for new docker versions every five minutes.
- Create the following
.env
file in the main directory:
MONGO_INITDB_ROOT_USERNAME=dbuser
MONGO_INITDB_ROOT_PASSWORD=changeme
MONGO_INITDB_DATABASE=minitwit
CONNECTION_STRING=mongodb://changeme:changeme@db:27017/minitwit?authSource=admin
TOKEN_SECRET=changeme
KIBANA_SYSTEM_PASSWORD=changeme
ELASTIC_PASSWORD=changeme
LOGSTASH_INTERNAL_PASSWORD=changeme
ELASTICSEARCH_PASSWORD=changeme
KIBANA_PASSWORD=changeme
sudo docker swarm init
sudo docker stack deploy -c deployment.yml minitwit
with deployment.yml
- Alexander Bastian Magno Jacobsen
- Anton Marius Nielsen
- Deniz Isik
- Deniz Yildirim
- Mikkel Lindgreen Bech