Code Monkey home page Code Monkey logo

minitwit's Introduction

MiniTwit

Project - DevOps

This repository is our uni project for the subject DevOps.

Website

Our project is currently running on: http://46.101.250.219:5000/

Running the project

The project is run through the use of Docker / Docker Compose:

$ docker-compose server --build

To run the project on Apple Silicon Macbook:

$ DOCKER_DEFAULT_PLATFORM=linux/arm64 docker-compose up server --build

minitwit's People

Contributors

flopper123 avatar florian335 avatar martinkirkegaarddk avatar snyk-bot avatar voikios avatar woodstr avatar

Stargazers

 avatar  avatar

Forkers

woodstr

minitwit's Issues

Report Writing

What to include in report from course page.

System's Perspective

A description and illustration of the:

  • Design and architecture of your ITU-MiniTwit systems
  • All dependencies of your ITU-MiniTwit systems on all levels of abstraction and development stages.
  • That is, list and briefly describe all technologies and tools you applied and depend on.
  • Important interactions of subsystems
  • Describe the current state of your systems, for example using results of static analysis and quality assessments.
  • Finally, describe briefly, if the license that you have chosen for your project is actually compatible with the licenses of all your direct dependencies.

Double check that for all the weekly tasks (those listed in the schedule) you include the corresponding information.

MSc students remember to argue for the choice of technologies and decisions for at least all cases for which we asked you to do so in the tasks at the end of each session.

Process' perspective

A description and illustration of:

  • How do you interact as developers?
  • How is the team organized?
  • A complete description of stages and tools included in the CI/CD chains.
  • That is, including deployment and release of your systems.
  • Organization of your repositor(ies).
  • That is, either the structure of of mono-repository or organization of artifacts across repositories.
  • In essence, it has to be be clear what is stored where and why.
  • Applied branching strategy.
  • Applied development process and tools supporting it
  • For example, how did you use issues, Kanban boards, etc. to organize open tasks
  • How do you monitor your systems and what precisely do you monitor?
  • What do you log in your systems and how do you aggregate logs?
  • Brief results of the security assessment.
  • Applied strategy for scaling and load balancing.
  • In case you have used AI-assistants for writing code during your project or to write the report:
  • Explain which system(s) you used during the project.
  • Reflect how it supported/hindered your process.

In essence it has to be clear how code or other artifacts come from idea into the running system and everything that happens on the way.

Lessons Learned Perspective

Describe the biggest issues, how you solved them, and which are major lessons learned with regards to:

  • evolution and refactoring
  • operation, and
  • maintenance

of your ITU-MiniTwit systems. Link back to respective commit messages, issues, tickets, etc. to illustrate these.

Also reflect and describe what was the "DevOps" style of your work. For example, what did you do differently to previous development projects and how did it work?

Describe workflow

Link: https://github.com/itu-devops/lecture_notes/blob/master/sessions/session_02/README_TASKS.md#3-describe-distributed-workflow

Think about, discuss in your groups, and note down in which way you are going to collaborate using Git in this project.

You should reflect and decide on the following points:

Which repository setup will we use?
Which branching model will we use?
Which distributed development workflow will we use?
How do we expect contributions to look like?
Who is responsible for integrating/reviewing contributions?
Information to at least all of the above points should end up in a markdown document in your main repository (likely called CONTRIBUTE.md).

We recommend that you do not rewrite history by rebasing or squashing your commits. The main reason is that it remains visible in the history who did what and when.

Enhance CI Pipelines with at least three static analysis tools

Need to include software quality gates. These must either abort the pull-request if a condition is not met (fx. code quality not up to standard, or security vulnerability present), or they should automatically change ("fix") something such as the format of the code.

To Add:

  • Snyk (implemented but only on 1 image): for finding and fixing docker vulnerabilities, need to set it up so that if a certain condition is not met (such as code having a high security risk) then the pull-request aborts
  • SonarCloud (on pull-request a report is made, but i dont think it's technically part of the CI pipeline?): for ensuring code quality, need to set it up so that if a certain condition is not met (such as the code having a bug, or too many code smells) then the pull-request aborts
  • MegaLinter (implemented): for automatically formatting code, and reporting errors

Check Group j

Add respective issue to group j, if one of the following is not working:

  • Do you see a public timeline?
  • Does the public timeline show messages that the application received from the simulator?
  • Can you create a new user?
  • Can you login as a new user?
  • Can you write a message?
  • After publishing a message, does it appear on your private timeline?
  • Can you follow another user?

Pentest Result

What we found

After running Nmap Vulnerability Scan Scripts we found that you have an SSH service running (port 22) that is vulnerable to several CVEs (CVE-2020-15778, CVE-2020-12062, CVE-2021-28041, CVE-2021-41617, CVE-2020-14145, CVE-2016-20012, and CVE-2021-36368). Some migt be more interesting than others. The report gives links for each CVE:

| vulners:
| cpe:/a:openbsd:openssh:8.2p1:
| CVE-2020-15778 6.8 https://vulners.com/cve/CVE-2020-15778
| C94132FD-1FA5-5342-B6EE-0DAF45EEFFE3 6.8 https://vulners.com/githubexploit/C94132FD-1FA5-5342-B6EE-0DAF45EEFFE3 EXPLOIT
| 10213DBE-F683-58BB-B6D3-353173626207 6.8 https://vulners.com/githubexploit/10213DBE-F683-58BB-B6D3-353173626207 EXPLOIT
| CVE-2020-12062 5.0 https://vulners.com/cve/CVE-2020-12062
| CVE-2021-28041 4.6 https://vulners.com/cve/CVE-2021-28041
| CVE-2021-41617 4.4 https://vulners.com/cve/CVE-2021-41617
| CVE-2020-14145 4.3 https://vulners.com/cve/CVE-2020-14145
| CVE-2016-20012 4.3 https://vulners.com/cve/CVE-2016-20012
|_ CVE-2021-36368 2.6 https://vulners.com/cve/CVE-2021-36368

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.