Devoops
Paticipation in the course "DevOps, Software Evolution and Software Maintenance" Spring 2020
Install / Use
/learn @jlndk/DevoopsREADME
MiniTwit DevOps project

A Twitter clone made for the DevOps course at the IT University of Copenhagen. Over the course of the project, we took a barebones Python web application and both refactored it in a different language (C# with ASP.NET Core) and added many useful DevOps related features and practices.
This project is:
- Containerized using the Docker ecosystem, for easy deployment and scalability.
- Continuously integrated using GitHub Actions, with automatic unit testing, system testing, code linting, static analysis and coverage reporting.
- Continuously delivered with automatic GitHub releases.
- Continuously deployed on DigitalOcean.
- Fully logged using SeriLog, ElasticSearch and Kibana, ensuring scalable and easily accessible logging.
- Performance monitored with Prometheus and Grafana, with a nice developer dashboard.
Quick-start
To deploy on a production node, simply clone this repository to the node and run the following two commands:
sudo ./install.sh
./deploy.sh
The scripts should install all dependencies
Setup
This system works on Ubuntu 18.04 LTS, with docker and docker-compose as direct dependencies, and node_exporter as an optional dependency.
On a production environment, the environment variable MINITWIT_ENV has to be set to production to ensure the scripts run with the correct production variables.
Usage
On the production environment, simply run
./deploy.sh
to automatically spin up the docker containers for every part.
This uses a special docker-compose script (./doc.sh) to inject proper environment variables and run the docker containers properly.
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
