<?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: Akashdeep Dhar</title>
    <description>The latest articles on DEV Community by Akashdeep Dhar (@t0xic0der).</description>
    <link>https://dev.to/t0xic0der</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F317359%2Fc2f5a48c-866c-4b9f-9195-3d092b248a1f.jpeg</url>
      <title>DEV Community: Akashdeep Dhar</title>
      <link>https://dev.to/t0xic0der</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/t0xic0der"/>
    <language>en</language>
    <item>
      <title>Simply Accessible Container Performance Monitoring with SuperVisor</title>
      <dc:creator>Akashdeep Dhar</dc:creator>
      <pubDate>Thu, 04 Mar 2021 02:56:08 +0000</pubDate>
      <link>https://dev.to/t0xic0der/simply-accessible-container-performance-monitoring-with-supervisor-4d0b</link>
      <guid>https://dev.to/t0xic0der/simply-accessible-container-performance-monitoring-with-supervisor-4d0b</guid>
      <description>&lt;h2&gt;
  
  
  Observability of containers
&lt;/h2&gt;

&lt;p&gt;Containerization is an awesome next-step forward when it comes to deploying services and applications reliably without needing to worry about the intricacies of adding dependencies and configuring environments. One can easily deploy, utilize, upgrade and remove these with just a few lines of commands and the unintrusiveness nature of the containers is almost very rewarding for the sysadmins - now that they do not have to worry about taking care of the residual configurations!&lt;/p&gt;

&lt;p&gt;Although observability of such containers is an entirely different story, due to the fact that every container is a disjoint system in its own right with a lot of configuration variables to consider, performance statistics to study and execution histories to read through. Having all such complexities to think about could potentially lead to the creation of a very convoluted tool that may make system monitoring look overwhelming to the users - that is something I tried to address with this service of mine.&lt;/p&gt;

&lt;p&gt;The earliest commit made to this project was about three months ago, but it has been something I have been conceptualizing forever. SuperVisor is a combination of two services - the first is a driver service that monitors the container station system deeply and dispatches metrics, while the second is a frontend service that takes up the metrics served by the former and parses them in an interactive and functional dashboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your personalized dashboard for monitoring your container stations
&lt;/h3&gt;

&lt;p&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%2F6qd0ildvvbwfraa5hen1.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%2F6qd0ildvvbwfraa5hen1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How do I set it up at my&amp;nbsp;end?
&lt;/h2&gt;

&lt;p&gt;You would really want to take it for a spin if you liked what you saw above. Setting up SuperVisor on a Docker station is literally as easy as following the provided three steps in sequence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here's an animated follow-up about how you can set up the driver service at your&amp;nbsp;end.
&lt;/h3&gt;

&lt;p&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%2For1xqwb80s53om7toaxy.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%2For1xqwb80s53om7toaxy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step #1&lt;/strong&gt;&lt;br&gt;
Run the following commands to start up the driver service and take a note of sync URI, termsocket URI and passcode carefully.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d \
  --restart unless-stopped \
  --name supervisor-frontend-service \
  -p 9696:9696 \
  t0xic0der/supervisor-frontend-service:v1.1.0b-amd64 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker logs supervisor-frontend-service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; ,---.                    .    ,o               
 `---..   .,---.,---.,---.|    |.,---.,---.,---.
     ||   ||   ||---'|     \  / |`---.|   ||    
 `---'`---'|---'`---'`      `'  ``---'`---'`    
           |
 * Driver Service v1.1.0-beta
 * IP version        : 4
 * Passcode          : 6097A8C00A2BC97C
 * Sync URI          : http://0.0.0.0:8888/
 * TermSocket URI    : http://0.0.0.0:6969/
 * Monitor service   : Psutil v5.8.0
 * Container service : DockerPy v4.4.1
 * WebSocket service : Terminado v0.9.2
 * Endpoint service  : Falcon v2.0.0
 * HTTP server       : Werkzeug v1.0.1
 * Running on http://0.0.0.0:8888/ (Press CTRL+C to quit)
 * TermSocket started on port 6969
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step #2&lt;/strong&gt;&lt;br&gt;
Run the following command to start up the frontend service and head over to &lt;code&gt;http://&amp;lt;HOSTNAME&amp;gt;:9696/&lt;/code&gt; using a browser of your choice.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d \
  --restart unless-stopped \
  --name supervisor-frontend-service \
  -p 9696:9696 \
  t0xic0der/supervisor-frontend-service:v1.1.0b-amd64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step #3&lt;/strong&gt;&lt;br&gt;
Now enter the sync URI, termsocket URI and passcode which you acquired from the first step and enter them on the login page to get started. Do not copy the ones provided above as they are here just for representation.&lt;/p&gt;

&lt;p&gt;You will be welcomed by the dashboard page which lists all the available containers, images, networks and volumes. From there on, I would recommend exploring further to see what SuperVisor is capable of!&lt;/p&gt;




&lt;h2&gt;
  
  
  In action
&lt;/h2&gt;

&lt;p&gt;Here are some screenshots which might convince you to give it a try if you are not already 😁&lt;/p&gt;

&lt;h3&gt;
  
  
  Container listing with a variety of options to analyze, study and inspect&amp;nbsp;them
&lt;/h3&gt;

&lt;p&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%2Fpmtf4tj70prkzluf4irh.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%2Fpmtf4tj70prkzluf4irh.png" alt="alt text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Not just it monitors containers but it also monitors the system on which they&amp;nbsp;run
&lt;/h3&gt;

&lt;p&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%2Ff8gajrl4ejecekzjzq6k.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%2Ff8gajrl4ejecekzjzq6k.png" alt="alt text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Know about the entire revision history of an image without going to the&amp;nbsp;registry
&lt;/h3&gt;

&lt;p&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%2Fxsipkbvgcwvsrjpziws1.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%2Fxsipkbvgcwvsrjpziws1.png" alt="alt text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Granular process-state control for the container station&amp;nbsp;system
&lt;/h3&gt;

&lt;p&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%2F6ywgc9j1yyzt6nqbtbpy.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%2F6ywgc9j1yyzt6nqbtbpy.png" alt="alt text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Dynamically loading log display for containers with one-second refresh&amp;nbsp;rate
&lt;/h3&gt;

&lt;p&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%2Fu80e685y8ex5f2qqf1vo.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%2Fu80e685y8ex5f2qqf1vo.png" alt="alt text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Diagnose containers throughout by attaching a console as a web-terminal
&lt;/h3&gt;

&lt;p&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%2Fd7xeyd8jb9qno5crgx11.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%2Fd7xeyd8jb9qno5crgx11.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Epilogue
&lt;/h2&gt;

&lt;p&gt;Find the frontend service here &lt;a href="https://hub.docker.com/r/t0xic0der/supervisor-frontend-service" rel="noopener noreferrer"&gt;https://hub.docker.com/r/t0xic0der/supervisor-frontend-service&lt;/a&gt; and the driver service here &lt;a href="https://hub.docker.com/r/t0xic0der/supervisor-driver-service%E2%80%8A-%E2%80%8Aimages" rel="noopener noreferrer"&gt;https://hub.docker.com/r/t0xic0der/supervisor-driver-service - images&lt;/a&gt; would be actively published here on every release.&lt;/p&gt;

&lt;p&gt;As this is a beta testing release, bugs would be actively sorted out and features would be constantly added in - so criticisms, praise, advice and everything else are most welcome! If you like what you saw here, please go ahead and star these repositories to show your support and motivate me &lt;a href="https://github.com/t0xic0der/supervisor-frontend-service/" rel="noopener noreferrer"&gt;https://github.com/t0xic0der/supervisor-frontend-service/&lt;/a&gt; and &lt;a href="https://github.com/t0xic0der/supervisor-driver-service/" rel="noopener noreferrer"&gt;https://github.com/t0xic0der/supervisor-driver-service/&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>opensource</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Sanctuary - A secure synchronous lightweight chatroom with zero logging and total transience </title>
      <dc:creator>Akashdeep Dhar</dc:creator>
      <pubDate>Thu, 16 Apr 2020 08:57:48 +0000</pubDate>
      <link>https://dev.to/t0xic0der/sanctuary-a-secure-synchronous-lightweight-chatroom-with-zero-logging-and-total-transience-f8k</link>
      <guid>https://dev.to/t0xic0der/sanctuary-a-secure-synchronous-lightweight-chatroom-with-zero-logging-and-total-transience-f8k</guid>
      <description>&lt;h3&gt;
  
  
  Imagine situations when...
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You want to send evidence to the human resource department about workplace harassment but you run the risk of losing your job if you are discovered doing so!&lt;/li&gt;
&lt;li&gt;You have lost all your communication equipment on a secret mission though you need to dispatch a directive securely to your units without anybody else taking a peek!&lt;/li&gt;
&lt;li&gt;You are talking to your sweetheart and suddenly their phone is snatched away - There is probably no way for you to get rid of all conversations from both the sides!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;

&lt;p&gt;I have created a secure synchronous lightweight chatroom web application with the following features -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides real-time conversation using synchronous sockets&lt;/li&gt;
&lt;li&gt;Zero logging or data storage to minimize vulnerabilities&lt;/li&gt;
&lt;li&gt;No-frills alias and password-protected chatroom creation&lt;/li&gt;
&lt;li&gt;Refresh, close tab, logout or purge chatroom to cover tracks&lt;/li&gt;
&lt;li&gt;Transient chatrooms stay valid for 60 minutes before auto-purge&lt;/li&gt;
&lt;li&gt;Complete support for HTML5 formatting tags in conversations&lt;/li&gt;
&lt;li&gt;Lightweight and responsive so usable across multiple devices&lt;/li&gt;
&lt;li&gt;State-of-the-art chatroom user session management&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  You can find the repository here
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/astrosonic/sanctuary"&gt;Sanctuary by t0xic0der&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using stuffs like
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Socket.IO&lt;/strong&gt; for &lt;em&gt;real-time, bidirectional and event-based communication&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flask&lt;/strong&gt; for &lt;em&gt;web backbone, complex scalability and WSGI layer&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hashing techniques&lt;/strong&gt; for &lt;em&gt;password protection, identification and authentication&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why would I need a tool like this?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;There are not many no-frills messaging applications out there.&lt;/li&gt;
&lt;li&gt;All platforms gather your data and footprints are recorded.&lt;/li&gt;
&lt;li&gt;Most platforms would want you to register at their platform first.&lt;/li&gt;
&lt;li&gt;Application would also require resources for installation.&lt;/li&gt;
&lt;li&gt;All conversations are mostly logged in remote servers.&lt;/li&gt;
&lt;li&gt;Cryptography used in encrypting your messages is not reliable.&lt;/li&gt;
&lt;li&gt;There is no way to maintain anonymity during conversations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Okay, I'm listening...
&lt;/h3&gt;

&lt;p&gt;Glad that you are listening! &lt;/p&gt;

&lt;p&gt;I have created a platform hosting lightweight and protected chatrooms for secure synchronous conversations where no data is logged and there is total transience. Using synchronous sockets, I was able to provide for real-time messaging. There are less chances of impending vulnerabilities or risks on data breach as literally nothing is being stored. Being a web application, it does not require any kind of offline installation.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7TH4Ea8M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/undx8fc0p65xi9bgl46n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7TH4Ea8M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/undx8fc0p65xi9bgl46n.png" alt="homepage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The no-frills nature of it requires you to provide just an alias - a false identity - and a chatroom name and password to get started. Just enter a secure password of your own and you will be granted with a chatroom link. The chatroom can exist for as long as 60 minutes before self-destructing. You can of course prematurely purge it!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D9vTFFht--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5p8c5dmiyc2psesz8mwp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D9vTFFht--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5p8c5dmiyc2psesz8mwp.png" alt="makeroom"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the chatroom is created, all you need to do is share the link and the password to it with your allies so that they can roll in for some secure conversation. They can join, chat and leave anytime within the valid duration as many times as they want. As there can be many chatrooms with the same name, special care has been taken to distinguish between them.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f9I4L6bo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0arwvx1k4j7o8v1ujp8y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f9I4L6bo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0arwvx1k4j7o8v1ujp8y.png" alt="joinroom"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, that you have joined the room - you can chat with the participated members. To spice things up, I have added full support to HTML5 tags so you can extend your experience by sharing images, videos and documents using them. The following can be done from within the chatroom to maintain total safety.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can &lt;strong&gt;refresh the page&lt;/strong&gt; to get rid of all messages at your end while staying in the chatroom.&lt;/li&gt;
&lt;li&gt;You can &lt;strong&gt;logout from the room&lt;/strong&gt; to get rid of all messages at your end while leaving the chatroom.&lt;/li&gt;
&lt;li&gt;You can &lt;strong&gt;purge the chatroom&lt;/strong&gt; to get rid of all messages from all the ends while kicking everyone from the chatroom.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hjtvLzB9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c5edxkmkyuzyyazh5gbw.png" alt="chatroom"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can of course logout from the room if you are done with your part of the conversation but this would remove all the conversations only from your end. Once this action is performed, the session is invalidated and you cannot backtrack your way to the chatroom unless you decide to log back in again to continue.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2XzOKprl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/t79etd9q5v6xlusied6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2XzOKprl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/t79etd9q5v6xlusied6w.png" alt="sesskill"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On &lt;em&gt;chatroom purge&lt;/em&gt;, all conversations are removed from all the ends and every participant is removed from the chatroom. The chatroom is then destroyed - meaning that nobody else can join the chatroom henceforth. This capability is given to every participant as there is no telling that which side can be compromised.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5DoIeY1G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6oz1q0jjs1axuu0czdrl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5DoIeY1G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6oz1q0jjs1axuu0czdrl.png" alt="shutroom"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, there would always exist people who like to indulge in the monkey business of finding their way into expired and invalidated sessions. With the state-of-the-art session management system and user-chatroom bind, I was able to create a robust and secure protection for the chatrooms. This is how it would show up when you do the undone.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G2lWv_1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/u1x01e81o5lk9q3gie74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G2lWv_1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/u1x01e81o5lk9q3gie74.png" alt="exprsess"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What are your future plans?
&lt;/h3&gt;

&lt;p&gt;I am planning to build myself a gaming PC - fully equipped with twin RTX2080Tis and get into the streaming business full-time because ....&lt;/p&gt;

&lt;h3&gt;
  
  
  Hold on! I am asking about the future of this project
&lt;/h3&gt;

&lt;p&gt;Oh my bad!&lt;/p&gt;

&lt;p&gt;The project is currently in its infancy. Bugs are discovered and fixed everyday. New feature requests are made and worked upon continually. It would be sometime before this thing becomes production ready but that definitely does not mean you cannot try it. In fact I would encourage you to do so. &lt;/p&gt;

&lt;p&gt;If you end up liking my work, I would ask you give stars to it and fork it so that you can contribute to the development of the project. This project has been free and it will always be. &lt;/p&gt;

&lt;h3&gt;
  
  
  You can find the repository here
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/astrosonic/sanctuary"&gt;Sanctuary by t0xic0der&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>python</category>
      <category>privacy</category>
      <category>anonymous</category>
    </item>
  </channel>
</rss>
