<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: s-vamshi</title>
    <description>The latest articles on DEV Community by s-vamshi (@svamshi).</description>
    <link>https://dev.to/svamshi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F557132%2Fae8e0bf7-a9fe-4d46-817f-eaf3317ceaa4.png</url>
      <title>DEV Community: s-vamshi</title>
      <link>https://dev.to/svamshi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/svamshi"/>
    <language>en</language>
    <item>
      <title>🚀 Deploying Spring Boot Microservices using Cyclops ☸️⚓</title>
      <dc:creator>s-vamshi</dc:creator>
      <pubDate>Tue, 06 Aug 2024 11:51:35 +0000</pubDate>
      <link>https://dev.to/svamshi/deploying-spring-boot-microservices-using-cyclops-2ba2</link>
      <guid>https://dev.to/svamshi/deploying-spring-boot-microservices-using-cyclops-2ba2</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;Let me quickly introduce you guys about Cyclops before we start.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Cyclops?
&lt;/h2&gt;

&lt;p&gt;Cyclops is a web-based tool designed to simplify the containerization process of apps in Kubernetes. Cyclops gives as an intuitive web form where we can configure our app seamlessly and also it provides us a dashboard where we can view all our pods, deployments, services. Moreover, it provides us key metrics like cluster's performance, resource utilization and health. It helps us to onboard quickly without spending much time on configuring things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Link:&lt;/strong&gt; &lt;a href="https://github.com/cyclops-ui/cyclops" rel="noopener noreferrer"&gt;https://github.com/cyclops-ui/cyclops&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that you know about Cyclops, let's dive in by deploying Spring Boot Microservices in Cyclops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Setting up Cyclops Locally&lt;/li&gt;
&lt;li&gt;Creating Microservices and Deploying to Cyclops&lt;/li&gt;
&lt;li&gt;How I Contributed to Cyclops&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Setting up Cyclops Locally &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;We need a Kubernetes Cluster to try out Cyclops. If you don't have one you can install MiniKube which provides use local kubernetes cluster. For more details on installation process, &lt;a href="https://minikube.sigs.k8s.io/docs/" rel="noopener noreferrer"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now that Minikube is installed, let's start it!&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube start
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now we need to install Cyclops into our cluster, to do that run below command:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.8.2/install/cyclops-install.yaml
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.8.2/install/demo-templates.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To access Cyclops outside of the cluster, run the below command:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now when you hit localhost:3000 in your browser, it shows you &lt;br&gt;
cyclops-ui!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Creating Microservices and Deploying to Cyclops &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I have created a student service which communicates with library service using rest template, &lt;a href="https://github.com/s-vamshi/sample-microservice" rel="noopener noreferrer"&gt;repo link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dockerfile of student service is as below&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM openjdk:17-jdk-alpine
WORKDIR /studentService
COPY target/studentService-0.0.1-SNAPSHOT.jar studentService.jar
EXPOSE 8090
ENTRYPOINT ["java", "-jar", "studentService.jar"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dockerfile of library service is as below&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM openjdk:17-jdk-alpine
WORKDIR /libraryService
COPY target/libraryService-0.0.1-SNAPSHOT.jar libraryService.jar
EXPOSE 8090
ENTRYPOINT ["java", "-jar", "libraryService.jar"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now we will build the images of both the services by checking out to each service folder where Dockerfile is present:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t student-service .
docker build -t library-service .
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Let's tag this images and push to docker hub!&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker tag student-service your-dockerhub-username/student-service:latest
docker tag library-service your-dockerhub-username/library-service:latest
docker push your-dockerhub-username/student-service:latest
docker push your-dockerhub-username/library-service:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To deploy this services we generally define Deployment and Service YAML files. But here Cyclops comes into play and does that for us. We just need to create modules and wait for it to be up and running!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now that we deployed microservices to Cyclops, we should also be able to access them from our browser and to do that forward the ports!&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl port-forward svc/student-service 8091:8091
kubectl port-forward svc/library-service 8092:8092
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How I Contributed to Cyclops &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Cyclops team has opened &lt;a href="https://github.com/cyclops-ui/cyclops/issues" rel="noopener noreferrer"&gt;issues(features/bugs)&lt;/a&gt; on their GitHub Repository for us to built Cyclops together!&lt;/p&gt;

&lt;p&gt;And issues on which I worked were:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/cyclops-ui/cyclops/issues/336" rel="noopener noreferrer"&gt;Broken links in deployed modules &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating a modules, the module card shows repo and path link. Now, this when path link was clicked it used to take use to broken Github link by eating current page.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br&gt;
I have made changes such that when path link is clicked it opens in a new tab. And also, broken path link was fixed by using &lt;em&gt;resolvedVersion _in url if present, if not then by using _version _ else using _main&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/cyclops-ui/cyclops/issues/440" rel="noopener noreferrer"&gt;Enhancing Node Conditions card &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nodes page used to show the status of the node when clicked on details of specific node.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br&gt;
I have also added &lt;em&gt;lastHeartbeatTime&lt;/em&gt;, &lt;em&gt;lastTransitionTime&lt;/em&gt;, and message of a particular condition of the node&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmdml4hby0wlibciokxv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmdml4hby0wlibciokxv.png" alt="Image description" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>opensource</category>
      <category>kubernetes</category>
      <category>react</category>
      <category>go</category>
    </item>
    <item>
      <title>Running Swirl Search🌌in an instant on Gitpod🌐💻and GitHub Codespaces🌩️🚀</title>
      <dc:creator>s-vamshi</dc:creator>
      <pubDate>Sun, 15 Oct 2023 06:51:40 +0000</pubDate>
      <link>https://dev.to/svamshi/running-swirl-searchin-an-instant-on-gitpodand-github-codespaces-l86</link>
      <guid>https://dev.to/svamshi/running-swirl-searchin-an-instant-on-gitpodand-github-codespaces-l86</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;Let me quickly introduce you guys about Swirl before we start.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Swirl?
&lt;/h2&gt;

&lt;p&gt;Swirl is an open-source search engine which is built using Python and Django. Things which makes Swirl more special is that individual developers and organizations can use Swirl without paying single penny and even customize the search results by connecting to Database (E.g. SQL, NoSQL), Public Data Services (E.g. Google) and Enterprise Sources (E.g. Jira).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjzganns2bks4iyk7koe.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjzganns2bks4iyk7koe.gif" alt="Swirl_Search_demo"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub Link:&lt;/strong&gt; &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;https://github.com/swirlai/swirl-search&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that you know about Swirl, let's try and explore Swirl using Cloud IDE.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Setting up Swirl using Gitpod&lt;/li&gt;
&lt;li&gt;Setting up Swirl using GitHub Codespaces&lt;/li&gt;
&lt;li&gt;Contributing to Swirl Community using Cloud IDE&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Setting up Swirl using Gitpod &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click on below button to Configure New Workspace in Gitpod&lt;br&gt;
&lt;a href="https://gitpod.io/#https://github.com/swirlai/swirl-search/tree/develop" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgitpod.io%2Fbutton%2Fopen-in-gitpod.svg" alt="Open in Gitpod"&gt;&lt;/a&gt;Alternatively, you can open &lt;a href="https://github.com/swirlai/swirl-search/tree/develop" rel="noopener noreferrer"&gt;Swirl Repo&lt;/a&gt; and prefix Swirl Repo URL with &lt;code&gt;https://gitpod.io/new/#&lt;/code&gt; after which it looks something like this &lt;a href="https://gitpod.io/#https://github.com/swirlai/swirl-search/tree/develop" rel="noopener noreferrer"&gt;https://gitpod.io/#https://github.com/swirlai/swirl-search/tree/develop&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;strong&gt;&lt;u&gt;NOTE:&lt;/u&gt;&lt;/strong&gt; Throughout this tutorial we will be working with Gitpod on the develop branch as per &lt;a href="https://github.com/swirlai/swirl-search#-contributing-to-swirl" rel="noopener noreferrer"&gt;contribution guidelines of Swirl&lt;/a&gt;. If you intend to use the main branch, please use the following URL: &lt;a href="https://gitpod.io/#https://github.com/swirlai/swirl-search/" rel="noopener noreferrer"&gt;https://gitpod.io/#https://github.com/swirlai/swirl-search/&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After opening the URL, we will see page as shown below:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf6bswajfnuxrqz63ere.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf6bswajfnuxrqz63ere.png" alt="Gitpod_Workspace"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on continue button to create and initialize Swirl Workspace.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3o966fcdmmyww2g2wzk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3o966fcdmmyww2g2wzk.gif" alt="Workspace_Creation"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We will observe that browser version of VScode getting configured. And in terminal,  this command &lt;code&gt;docker-compose pull &amp;amp;&amp;amp; docker-compose up&lt;/code&gt; will start running.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmg1zi5m151vp0y93j8s.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmg1zi5m151vp0y93j8s.PNG" alt="Browser_based_VScode"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After few seconds, we can observe &lt;code&gt;INFO Listening on TCP 0.0.0.0:8000&lt;/code&gt; log in the terminal.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8le7f4hwavesg48iasj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8le7f4hwavesg48iasj.png" alt="Command_success_in_Terminal"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now our server is ready to serve the incoming requests on port 8000, as we are using Gitpod it will generates a dynamic URL for  accessing content on port 8000 instead of localhost:8000 as we would in local development environment. &lt;br&gt;
To open this URL in browser, we can click on open browser button through notifications popup as shown below:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kgz2yd86jgsfchm2vmz.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kgz2yd86jgsfchm2vmz.PNG" alt="Vscode_port_notification"&gt;&lt;/a&gt;Alternatively, we can navigate to PORTS tab next to Terminal and click on link provided in the Address column for Port 8000.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flz2hed37errs0jjaswpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flz2hed37errs0jjaswpq.png" alt="Ports_tab_in_Vscode"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Oops, we encountered an error,&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldtxk121oryfe6fjyhhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldtxk121oryfe6fjyhhj.png" alt="Bad_request_error"&gt;&lt;/a&gt;let's check terminal logs to know more about error in VScode&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzyb0tyszufwpp74eygwt.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzyb0tyszufwpp74eygwt.PNG" alt="Error_log_in_terminal"&gt;&lt;/a&gt;Seems like the dynamic URL which Gitpod generated is not allowed to request our server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now we need to make sure that our server accepts requests from our dynamic URL, we can fix this by creating .env file &lt;br&gt;
&lt;code&gt;.env&lt;/code&gt; file should be created in root directory of the project as shown below:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkfzbvf3s14c46j50cjl.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkfzbvf3s14c46j50cjl.PNG" alt="File_directory_after_adding_env_file"&gt;&lt;/a&gt;&lt;br&gt;
And add this line in .env file &lt;code&gt;ALLOWED_HOSTS=localhost,127.0.0.1,*&lt;br&gt;
&lt;/code&gt;* in ALLOWED_HOSTS mean is that we are allowing every host to access our server.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25eix9h5la980e4k8too.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25eix9h5la980e4k8too.PNG" alt="env_file"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now that we created .env file, we need to inform docker to use this configuration.&lt;br&gt;
Open docker-compose.yaml and add following line at the end:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    env_file:
      - .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how it looks after we add above lines&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvzt78z11bhv6wk693w3.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvzt78z11bhv6wk693w3.PNG" alt="docker_compose_file"&gt;&lt;/a&gt;&lt;br&gt;
As we have changed docker-compose.yaml we need to restart our server for changes to reflect.&lt;br&gt;
To stop the server press &lt;code&gt;CTRL+C&lt;/code&gt; key.&lt;br&gt;
To start the server enter &lt;code&gt;docker-compose pull &amp;amp;&amp;amp; docker-compose up&lt;/code&gt; command in terminal.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2t559pftbz2fk1hsqe8m.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2t559pftbz2fk1hsqe8m.PNG" alt="restart_server"&gt;&lt;/a&gt;Follow Steps 4-6 to check if the URL is working.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcd89o6u7u112zquoel4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcd89o6u7u112zquoel4.gif" alt="main_steps_gif"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;&lt;u&gt;NOTE:&lt;/u&gt;&lt;/strong&gt; While committing changes &lt;strong&gt;do not&lt;/strong&gt; stage docker-compose.yaml file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up Swirl using GitHub Codespaces &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Click on below link to open Swirl Repository in &lt;strong&gt;develop&lt;/strong&gt; branch
&lt;a href="https://github.com/swirlai/swirl-search/tree/develop" rel="noopener noreferrer"&gt;https://github.com/swirlai/swirl-search/tree/develop&lt;/a&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm5hpn7ogov9vvu2lf1pi.PNG" alt="Develop_branch"&gt;
&lt;strong&gt;&lt;u&gt;NOTE:&lt;/u&gt;&lt;/strong&gt; We will be working with GitHub Codespaces on the &lt;strong&gt;develop&lt;/strong&gt; branch as per &lt;a href="https://github.com/swirlai/swirl-search#-contributing-to-swirl" rel="noopener noreferrer"&gt;contribution guidelines of Swirl&lt;/a&gt;. If you intend to use the &lt;strong&gt;main&lt;/strong&gt; branch, please use the following URL: 
&lt;a href="https://github.com/swirlai/swirl-search/" rel="noopener noreferrer"&gt;https://github.com/swirlai/swirl-search/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To create New Codespace on develop branch follow below steps:

&lt;ol&gt;
&lt;li&gt;Click on &lt;strong&gt;Code&lt;/strong&gt; button, which will open dropdown menu containing two tabs in it, namely &lt;strong&gt;Local&lt;/strong&gt; and &lt;strong&gt;Codespaces&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Then select &lt;strong&gt;Codespaces&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Finally, click on the &lt;strong&gt;Create codespace on develop&lt;/strong&gt; button to initiate the creation of codespace.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbotmb0h24v7mdkmsto5.PNG" alt="Creation_of_Codespace"&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;We will observe that browser version of VScode getting configured. In the terminal, the installation of pip and others requirements will start. After which &lt;code&gt;docker-compose pull &amp;amp;&amp;amp; docker-compose up&lt;/code&gt; command will start running.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9lj8pt7pea1cgjjoq7e.png" alt="Terminal_creation"&gt;
&lt;/li&gt;

&lt;li&gt;Now inorder to view logs of the server, press &lt;code&gt;CTRL+SHIFT+P&lt;/code&gt; key to open command palette and then search for &lt;code&gt;View Creation log&lt;/code&gt;. We can notice new terminal with logs of our server.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gqj0nd9ixfrci0r3o4b.png" alt="Command_palette"&gt;
&lt;/li&gt;

&lt;li&gt;After few seconds, we can observe &lt;code&gt;INFO Listening on TCP 0.0.0.0:8000&lt;/code&gt; log in the terminal.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg35cp99ucldm461toi3e.png" alt="Terminal_logs"&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fntbac6bzs5zgs2bks8x8.gif" alt="Logs_gif"&gt;
&lt;/li&gt;

&lt;li&gt;Now our server is ready to serve the incoming requests on port 8000, as we are using GitHub Codespaces it will generates a dynamic URL for accessing content on port 8000 instead of localhost:8000 as we would in local development environment. 
We can navigate to PORTS tab next to Terminal and click on browser icon after hovering on link provided in the Address column for Port 8000.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffwv608ihgvugsy32w4ai.png" alt="Port_8000"&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flneipt0x4opa3hjcbked.gif" alt="Ports_gifs"&gt;
&lt;/li&gt;

&lt;li&gt;In browser, you can observe Swirl login page with Username and Password fields. Enter &lt;strong&gt;Username&lt;/strong&gt; as admin and Password as &lt;strong&gt;Password&lt;/strong&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uoz5tggangfc4ub8ntd.gif" alt="Swirl_login_page"&gt;
&lt;/li&gt;

&lt;/ol&gt;

&lt;h2&gt;
  
  
  Contributing to Swirl Community using Cloud IDE &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using Codespaces
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create a new terminal by clicking on &lt;strong&gt;+&lt;/strong&gt; button.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonh2p7knflidgxx6bijd.png" alt="Creating_new_terminal"&gt;
&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;git fetch&lt;/code&gt; command to get changes from remote repo.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffck351h2dh3rsq2hjrwm.png" alt="Git_fetch_latest_changes"&gt;
&lt;/li&gt;
&lt;li&gt;Now that you are will to contribute to Swirl we need create a new branch and switch to it, to do this use &lt;code&gt;git checkout -b your-branch-name&lt;/code&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftle5trj4pfqq807i73sk.png" alt="New_branch_creation"&gt;
&lt;/li&gt;
&lt;li&gt;Do the changes accordingly and to check which files you created/modified use &lt;code&gt;git status&lt;/code&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkje0zxrxpquwhr33zb34.png" alt="Git_status"&gt;
&lt;/li&gt;
&lt;li&gt;To stage all the changes use &lt;code&gt;git add .&lt;/code&gt; and to commit the changes use &lt;code&gt;git commit -m "your commit message"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You will see a warning that you don't have write access to swirl repo and to get access we need to create a fork. Github will create use fork after we enter &lt;strong&gt;y&lt;/strong&gt; for Would you like to proceed question. 
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpsbr9ytg2enh7sfw5n4p.png" alt="Git_add_commit"&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79zk7lazvqeiq3yua891.png" alt="Git_fork_warning"&gt;
&lt;a&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;To push the branch with changes use &lt;code&gt;git push origin your-branch-name&lt;/code&gt;. After successfully pushing the changes you will get URL in terminal to create pull request(PR), copy it and paste in new tab.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfmgrpbfg0g3av03hg7v.png" alt="Git_push"&gt;
&lt;/li&gt;
&lt;li&gt;By default base repository comparing branch is &lt;strong&gt;main&lt;/strong&gt; change it to develop branch by clicking on it.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbv6ktck636ng7n75wfz6.png" alt="Default_comparing_branch"&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwrjehom9oualh1bit7e.png" alt="Changing_default_comparing_branch"&gt;
&lt;/li&gt;
&lt;li&gt;Finally edit the PR template accordingly based on your changes.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1h0773lwqukxdx8qx6d.png" alt="Final_PR"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Using Gitpod
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create a new terminal by clicking on &lt;strong&gt;+&lt;/strong&gt; button.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgy99pg58sy8lxv60zms6.PNG" alt="gp_terminal_creation"&gt;
&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;git fetch&lt;/code&gt; command to get changes from remote repo.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2hciqpvv6e0y729gimc.png" alt="gp_git_fetch"&gt;
&lt;/li&gt;
&lt;li&gt;Now that you are will to contribute to Swirl we need create a new branch and switch to it, to do this use &lt;code&gt;git checkout -b your-branch-name&lt;/code&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foefpboarp8eitrzexv3i.png" alt="Gitpod_new_branch"&gt;
&lt;/li&gt;
&lt;li&gt;Do the changes accordingly and to check which files you created/modified use &lt;code&gt;git status&lt;/code&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffdqv5gmp9sbwfbmg7ci8.png" alt="Gitpod_status"&gt;
&lt;strong&gt;&lt;u&gt;NOTE:&lt;/u&gt;&lt;/strong&gt; &lt;strong&gt;Do not&lt;/strong&gt; stage docker-compose.yaml file.&lt;/li&gt;
&lt;li&gt;To stage all the changes use &lt;code&gt;git add .&lt;/code&gt; and to unstage docker-compose.yaml file use &lt;code&gt;git reset -- docker-compose.yaml&lt;/code&gt; and to commit the changes use &lt;code&gt;git commit -m "your commit message"&lt;/code&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlxjqnyescnf1ccbdbdg.png" alt="Staging_gitpod"&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ub590crn8b3ct3gwa6k.png" alt="Gitpod_commit"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To push the changes, we need to grant GitHub access for Gitpod by following below steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to Source Control by clicking on git logo on side panel.&lt;/li&gt;
&lt;li&gt;Finally, click on horizontal three-dots button.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gy2zmmfeyc7qw7rcwbb.PNG" alt="Source_control"&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;push&lt;/strong&gt; button in the dropdown.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82lo6fjeb1weda96pq7e.PNG" alt="Push_dropdown"&gt;
&lt;/li&gt;
&lt;li&gt;We will get a popup about remote repo, now click on &lt;strong&gt;ok&lt;/strong&gt; to publish newly created branch as shown below 
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cblyuyjggljp7dhitkx.PNG" alt="Publish_branch"&gt;
&lt;/li&gt;
&lt;li&gt;We will get another popup whether to create fork of the repository click on &lt;strong&gt;Create_Fork&lt;/strong&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhbspvei50gkjo2ujkvcv.PNG" alt="Create_fork_button"&gt;
&lt;/li&gt;
&lt;li&gt;Allow GitHub extension to sign in.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4v1gci0wqykrycs3m4e7.PNG" alt="Allow_GitHub"&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Open Access Control&lt;/strong&gt; button in the Grant permissions notifications.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6jx2egkrw7itjy9cvjz.PNG" alt="Open_Access_Control"&gt;
&lt;/li&gt;
&lt;li&gt;A new tab will open, displaying Gitpod User settings.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3f8jappa0mtc8uinic8w.PNG" alt="Gitpod_User_settings"&gt;
&lt;/li&gt;
&lt;li&gt;Click on three vertical dots button present in GitHub row to edit permissions.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rjf2v6f0vw5a4fzhtku.PNG" alt="Edit_permissions"&gt;
&lt;/li&gt;
&lt;li&gt;Now checkmark on &lt;strong&gt;read:user&lt;/strong&gt;,&lt;strong&gt;repo&lt;/strong&gt; and &lt;strong&gt;workflow&lt;/strong&gt; and click on update permissions.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakzlohvs7ffp21hcvkhh.PNG" alt="Update_permissions"&gt;
&lt;/li&gt;
&lt;li&gt;Now enter &lt;code&gt;git push origin your-branch-name&lt;/code&gt;. From here follow Steps 7-9 from Contribution using Codespaces
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhuemao9q54q6pfyitl81.PNG" alt="Gitpod_final_push"&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;With the help of Gitpod and GitHub Codespaces we were able to run instantly Swirl Search with minimal commands and without the need of any installation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special Mentions:&lt;/strong&gt; Thank you &lt;a class="mentioned-user" href="https://dev.to/srbhr"&gt;@srbhr&lt;/a&gt; for your support and guidance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;🧑‍💻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slack Community:&lt;/strong&gt; &lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-22ozfml3o-oqe7sWvB5jw6xEwv1duW4g" rel="noopener noreferrer"&gt;Swirl Slack Community&lt;/a&gt;💬📢&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Twitter:&lt;/strong&gt; &lt;a href="https://twitter.com/SWIRL_SEARCH" rel="noopener noreferrer"&gt;Follow Swirl on Twitter/𝕏&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>python</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
