{"id":23109482,"url":"https://github.com/msadeqsirjani/navisite","last_synced_at":"2025-08-16T18:32:24.443Z","repository":{"id":64428023,"uuid":"575442618","full_name":"msadeqsirjani/Navisite","owner":"msadeqsirjani","description":"Getting to know the basic concepts of cloud computing, working with docker, creating an orchestration using Kubernetes","archived":false,"fork":false,"pushed_at":"2024-05-01T08:33:47.000Z","size":14653,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-05-01T12:11:58.092Z","etag":null,"topics":["cloud","container","docker","docker-compose","dotnet","kubernetes","kubernetes-cluster","kubernetes-deployment","minimal-api","nginx","postgresql","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msadeqsirjani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-07T14:22:59.000Z","updated_at":"2024-05-01T08:33:51.000Z","dependencies_parsed_at":"2023-02-09T02:15:58.250Z","dependency_job_id":null,"html_url":"https://github.com/msadeqsirjani/Navisite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msadeqsirjani%2FNavisite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msadeqsirjani%2FNavisite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msadeqsirjani%2FNavisite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msadeqsirjani%2FNavisite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msadeqsirjani","download_url":"https://codeload.github.com/msadeqsirjani/Navisite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230049147,"owners_count":18164846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","container","docker","docker-compose","dotnet","kubernetes","kubernetes-cluster","kubernetes-deployment","minimal-api","nginx","postgresql","reverse-proxy"],"created_at":"2024-12-17T01:36:48.902Z","updated_at":"2024-12-17T01:36:49.424Z","avatar_url":"https://github.com/msadeqsirjani.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n\n[![LinkedIn][linkedin-shield]][sadeq-linkedin-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/msadeqsirjani/Navisite\"\u003e\n    \u003cimg src=\"images/Docker-Logo.png\" alt=\"Docker-Logo\" height=\"80\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/msadeqsirjani/Navisite\"\u003e\n    \u003cimg src=\"images/Docker-Compose-Logo.png\" alt=\"Docker-Compose-Logo\" height=\"80\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/msadeqsirjani/Navisite\"\u003e\n    \u003cimg src=\"images/Kubernetes-Logo.png\" alt=\"Kubernetes-Logo\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch2 align=\"center\"\u003eNavisite\u003c/h2\u003e\n  \u003cimg src='./images/navisite.png' style='width=400px; height=200px; text-align=center;' /\u003e\n\n  \u003cp align=\"center\"\u003e\n    Hey !!\n    \u003cbr /\u003e\n    In This Repo We are going to Learn Some Docker, Docker-Compose And Kubernetes together\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/msadeqsirjani/Navisite\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/msadeqsirjani/Navisite/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/msadeqsirjani/Navisite/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-Repository\"\u003eAbout The Repository\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#road-map\"\u003eRoadMap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About The Repository\n\n[![Product Name Screen Shot][product-screenshot]](https://example.com)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built With\n\nList of major frameworks/libraries used to bootstrap this project.\n\n\u003c!-- Leave any add-ons/plugins for the acknowledgements section. --\u003e\n\n- [![Docker][docker]][docker-url]\n- [![Linux][linux]][linux-url]\n- [![Kubernetes][kubernetes]][kubernetes-url]\n- [![Nginx][nginx]][nginx-url]\n- [![.NET][.net]][.net-url]\n- [![Postgres][postgres]][postgres-url]\n\u003c!-- * [![Docker-Compose][Docker-Compose]][Docker-Compose-url] --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\nTo get a local copy up and running follow these simple steps.\n\n### Prerequisites\n\n#### 1. Installing Docker and Docker-Compose\n\n- **Note 1**: Replace **version** with the latest version number from the Docker Engine - Community repository.\n- **Note 2**: For X86_64 Architecture CPUs use amd64 in place of **arch** if you are using a different architecture than x86_64, you can find the correct arch by running `uname -m` on your machine.\n\n  - ### In Ubuntu\n\n    1. Update Your apt\n\n       ```sh\n       sudo apt-get update\n       ```\n\n    2. Download Docker Desktop for Ubuntu\n\n       ```sh\n       wget https://desktop.docker.com/linux/main/amd64/docker-desktop-\u003cversion\u003e-\u003carch\u003e.deb\n       ```\n\n    3. Installing Docker Desktop\n\n       ```sh\n       sudo apt install ./docker-desktop-\u003cversion\u003e-\u003carch\u003e.deb\n       ```\n\n  - ### In Arch Linux\n\n    1. Update Your Pacman\n\n       ```sh\n       sudo pacman -Syu\n       ```\n\n    2. Downloading and Installing Docker and Docker-Compose Plugin for Arch\n\n       ```sh\n       sudo pacman -S docker docker-compose\n       ```\n\n  - ### In Windows Command Prompt\n\n    1. Download Docker Desktop With This Command\n\n       ```sh\n       Invoke-WebRequest https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe\n       ```\n\n    2. Type Command Below For installing Docker Desktop\n\n       ```sh\n       start /w \"\" \"Docker Desktop Installer.exe\" install\n       ```\n\n### Installation\n\ninstalling and setting up the app\n\n1. Clone the repo\n\n   ```sh\n   git clone https://github.com/msadeqsirjani/Navisite.git\n   ```\n\n2. Install ... packages\n\n   ```sh\n   ... install\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n## Usage\n\n\u003c!-- Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources. --\u003e\n\n_For more examples, please refer to the [Documentation](https://example.com)_\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ROADMAP --\u003e\n\n## Roadmap\n\n### Phase (1)\n\n1. \u003e Choose a Web-Server image from [Docker Hub](https://hub.docker.com/) (Like: Nginx, Apache, etc.)\n   - **Nginx** is the one we are going to use in this project.\n   - Downloading WebServer Image From Docker Hub\n     - [ ] Downloading Nginx Image From Docker Hub\n2. \u003e Writing Dockerfile For WebServer That Do One of these Tasks :\n   \u003e\n   \u003e 1. \u003e Acting as Reverse Proxy for a simple application.\n   \u003e 2. \u003e Hosting an HTML Page.\n\n- \u003e _Note_ : First Task Can Have Extra Points For Architecture and Richer Configuration\n\n  1. \u003e WebServer must be able to host a Content of a Folder Outside of the Container\n     - [ ] Writing Dockerfile that can host a Content of a Folder Outside of the Container\n  2. \u003e Choosing a way of Configuring the WebServer (Like: copying in image, mounting a volume, etc.)\n     - [ ] ... is the one we are going to use in this project.\n\n3. \u003e Choose a Database image from [Docker Hub](https://hub.docker.com/) (Like: Elasticsearch, MySQL, MongoDB, etc.)\n   - **PostgreSQL** is the one we are going to use in this project.\n   - Downloading Database Image From Docker Hub\n     - [ ] Downloading PostgreSQL Image From Docker Hub\n\n- \u003e _Note_ : The related image configuration must written in docker-compose.yml file that have these four features :\n  \u003e\n  \u003e 1.  \u003e The Configuration file must be Stateful (Meaning that the data will be saved even if the container is removed)\n  \u003e 2.  \u003e Each container must use Limited amount of resources (Like: CPU, Memory, etc.)\n  \u003e 3.  \u003e For choosen database Define a separate username and password\n  \u003e 4.  \u003e Need to run automatically after each system restart.\n  - [ ] Downloading The Database Image From Docker Hub\n  - [ ] The Related image Configuration must write\n\n4. \u003e By using Pervious Step Dockerfile do the build opration note that both images must run together\n   - [ ] Writing docker-compose.yml File\n5. \u003e Push the built image to Docker Hub\n   - [ ] Pushing The Built Image To Docker Hub\n   - [ ] Putting Docker Hub Image Link In issue Phase 1\n\n### Phase (2)\n\nIn this phase, we plan to launch a self-hosted version of kubernetes together. We suggest you minikube.\n\n1. \u003e At first, as always, we apply the update command\n```bash\nsudo apt-get update\n```\n\n2. \u003e At first, as always, we apply the update command\n```bash\nsudo apt-get install curl\n```\n\n3. \u003e In continuation of the previous case, the binary installation files are downloaded from the domains with the http tag, and what is better is to enter the following command as well.\n```bash\nsudo apt-get install apt-transport-https\n```\n\n4. \u003e As you know, to install minikube, you must use the hypervisor feature and install a version of virtual box on your operating system. This can be done as follows\n```bash\nsudo apt install virtualbox virtualbox-ext-packs\n```\n\n5. \u003e In this step, we download the minikube installation binary files\n```bash\nwget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64\n```\n\n6. \u003e In order to be able to apply the commands related to the execution of minikube, we must move the executable files to the following path.\n```bash\nsudo cp minikube-linux-amd64 /usr/local/bin/minikube\n```\n\n7. \u003e We give the necessary access to the executable files of minikube as follows.\n```bash\nsudo chmod 755 /usr/local/bin/minikube\n```\n\n8. \u003e Now we have installed minikube and we can enter the following command in the command line to check the correctness of the program installation.\n```bash\nminikube version\n```\n\n9. \u003e There are 3 ways to communicate with minikube. The most important and powerful method is to use command line commands or kubectl\n```bash\ncurl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl\n```\n\u003e With the above command, we download the kubectl binary installation files.\n\n10. \u003e The necessary access to the kubectl executable is given as follows\n```bash\nchmod +x ./kubectl\n```\n\n11. \u003e We move the kubectl execution file to the execution path of other programs.\n```bash\nsudo mv ./kubectl /usr/local/bin/kubectl\n```\n\n12. \u003e We have now installed kubectl. We can make sure of the correct performance by executing the following command\n```bash\nkubectl version -o json\n```\n\n13. \u003e By running the following command, minikube will run on a virtualbox\n```bash\nminikube start\n```\n\n14. \u003e You can connect to minikube using kubectl using the following commands\n```bash\nkubectl config view\nkubectl cluster-info\nkubectl get nodes\n```\n\n15. \u003e At the end, you can get the necessary information from the latest status of minikube with the following command\n```bash\nminikube status\n```\n\n\nSee the [open issues](https://github.com/msadeqsirjani/Navisite/issues) for a full list of proposed features (and known issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\nMohammad Sadeq Sirjani - [@msadeqsirjani](https://twitter.com/msadeqsirjani) - m.sadeq.sirjani@gmail.com\n\nProject Link: [https://github.com/msadeqsirjani/Navisite](https://github.com/msadeqsirjani/Navisite)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n\n## Acknowledgments\n\n- [Docker-Compose](https://docs.docker.com/compose/)\n- [Dockerfile](https://docs.docker.com/engine/reference/builder/)\n- [Choose an Open Source License](https://choosealicense.com)\n- [Malven's Flexbox Cheatsheet](https://flexbox.malven.co/)\n- [Malven's Grid Cheatsheet](https://grid.malven.co/)\n- [Img Shields](https://shields.io)\n  \u003c!-- * [GitHub Emoji Cheat Sheet](https://www.webpagefx.com/tools/emoji-cheat-sheet) --\u003e\n  \u003c!-- * [GitHub Pages](https://pages.github.com) --\u003e\n  \u003c!-- * [Font Awesome](https://fontawesome.com) --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\u003c!-- https://ileriayo.github.io/markdown-badges/ --\u003e\n\n\u003c!-- Contributors --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/msadeqsirjani/Cloud-Computing-Project.svg?style=for-the-badge\n[contributors-url]: https://github.com/msadeqsirjani/Cloud-Computing-Project/graphs/contributors\n\n\u003c!-- Forks --\u003e\n\n[forks-shield]: https://img.shields.io/github/forks/msadeqsirjani/Cloud-Computing-Project.svg?style=for-the-badge\n[forks-url]: https://github.com/msadeqsirjani/Cloud-Computing-Project/network/members\n\n\u003c!-- Stars --\u003e\n\n[stars-shield]: https://img.shields.io/github/stars/msadeqsirjani/Cloud-Computing-Project.svg?style=for-the-badge\n[stars-url]: https://github.com/msadeqsirjani/Cloud-Computing-Project/stargazers\n\n\u003c!-- Issues --\u003e\n\n[issues-shield]: https://img.shields.io/github/issues/msadeqsirjani/Cloud-Computing-Project.svg?style=for-the-badge\n[issues-url]: https://github.com/msadeqsirjani/Cloud-Computing-Project/issues\n\n\u003c!-- License --\u003e\n\n[license-shield]: https://img.shields.io/github/license/msadeqsirjani/Cloud-Computing-Project.svg?style=for-the-badge\n[license-url]: https://github.com/msadeqsirjani/Cloud-Computing-Project/blob/master/LICENSE.txt\n\n\u003c!-- Linkedin --\u003e\n\n[linkedin-shield]: https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\n[sadeq-linkedin-url]: https://www.linkedin.com/in/msadeqsirjani/\n\n\u003c!-- Product-Screenshot --\u003e\n\n[product-screenshot]: images/screenshot.png\n\n\u003c!-- Kubernetes --\u003e\n\n[kubernetes]: https://img.shields.io/badge/kubernetes-%23326ce5.svg?style=for-the-badge\u0026logo=kubernetes\u0026logoColor=white\n[kubernetes-url]: https://kubernetes.io/\n\n\u003c!-- Docker  --\u003e\n\n[docker]: https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white\n[docker-url]: https://www.docker.com/\n\n\u003c!-- Docker-Compose --\u003e\n\n[docker-compose]: https://img.shields.io/badge/dockercompose-35495E?style=for-the-badge\u0026logo=dockercompose\u0026logoColor=4FC08D\n[docker-compose-url]: https://docs.docker.com/compose/\n\n\u003c!-- .NET --\u003e\n\n[.net]: https://img.shields.io/badge/dotnet-4122aa?style=for-the-badge\u0026logo=dotnet\u0026logoColor=fbfbfb\n[.net-url]: https://dotnet.microsoft.com/en-us/\n\n\u003c!-- Nginx --\u003e\n\n[nginx]: https://img.shields.io/badge/nginx-%23009639.svg?style=for-the-badge\u0026logo=nginx\u0026logoColor=white\n[nginx-url]: https://www.nginx.com/\n\n\u003c!-- Linux --\u003e\n\n[linux]: https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\n[linux-url]: https://www.linux.org/\n\n\u003c!-- Postgres --\u003e\n\n[postgres]: https://img.shields.io/badge/Postgres-31648c.svg?style=for-the-badge\u0026logo=Postgres\u0026logoColor=white\n[postgres-url]: https://www.postgresql.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsadeqsirjani%2Fnavisite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsadeqsirjani%2Fnavisite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsadeqsirjani%2Fnavisite/lists"}