<?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: Henrique Holtz</title>
    <description>The latest articles on DEV Community by Henrique Holtz (@henriqueholtz).</description>
    <link>https://dev.to/henriqueholtz</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%2F646206%2F9ad114d9-63fa-4f85-bab5-25a7ec2ffb2d.png</url>
      <title>DEV Community: Henrique Holtz</title>
      <link>https://dev.to/henriqueholtz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/henriqueholtz"/>
    <language>en</language>
    <item>
      <title>2 options to install Cursor CLI for Windows (WSL2)</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Wed, 26 Nov 2025 21:31:49 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/2-options-to-install-cursor-cli-for-windows-wsl2-49j7</link>
      <guid>https://dev.to/henriqueholtz/2-options-to-install-cursor-cli-for-windows-wsl2-49j7</guid>
      <description>&lt;p&gt;Hi everyone! In this article I wanna show you 2 options to install and run the &lt;a href="https://cursor.com/cli" rel="noopener noreferrer"&gt;cursor CLI&lt;/a&gt; on a Windows O.S (both require WSL2 + linux distro like ubuntu) for .NET developers (but you can use it for other stacks as well, just adapt it):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Everything including git and repositories within the linux distro (better performance but greater overhead to setup)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Just the Cursor CLI within the linux distro (easier, performance overhead just for the Cursor CLI)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here you'll also learn how to setup the terminal within the Visual Studio 2022+ to use the Cursor CLI (or others tools). &lt;/p&gt;

&lt;p&gt;We won't focus on details like how to setup WSL2 + linux distro, neither install the git, you can google it. I know you can.&lt;/p&gt;

&lt;p&gt;Note: I'll consider you have the WSL2 already set up!&lt;/p&gt;

&lt;h2&gt;
  
  
  Initial Setup
&lt;/h2&gt;

&lt;p&gt;Once you have the linux distro running through your WSL2 (I'd suggest you to install the distro via Microsoft Store), you can open a terminal within the linux distro by using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Find the distro name
wsl --list

# Run into linux via WSL2
C:\Windows\System32\wsl.exe -d {distro_name}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The following steps are within the linux terminal:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://cursor.com/cli" rel="noopener noreferrer"&gt;cursor-cli&lt;/a&gt; and run &lt;code&gt;cursor-agent&lt;/code&gt; (it can require to restart the linux or reopen the terminal). It will prompt you to log in using your browser, so, super easy.&lt;/li&gt;
&lt;li&gt;Setup the linux terminal within your Visual Studio (you can use it from Windows Terminal as well):

&lt;ul&gt;
&lt;li&gt;Name: Whatever you want to&lt;/li&gt;
&lt;li&gt;Shell location: &lt;code&gt;C:\WINDOWS\system32\wsl.exe&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Arguments: &lt;code&gt;-d {your_distro_name}&lt;/code&gt; (you can find out it by running &lt;code&gt;wsl --list&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F6x8noukt3b34lpjpcjlg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F6x8noukt3b34lpjpcjlg.png" alt="VS 2022 terminal config for bash on WSl2" width="365" height="403"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Here you're ready to use the Cursor CLI, the following steps are if you wanna run everything from WSL2 (better performance for Cursor CLI)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install and setup the git (+ gitlab/github if needed) into the linux&lt;/li&gt;
&lt;li&gt;Install .NET SDK &lt;a href="https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install?tabs=dotnet10&amp;amp;pivots=os-linux-ubuntu-2404" rel="noopener noreferrer"&gt;steps for .NET 10&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Clone the desired repository and open its solution file with you Visual Studio via WSL2 (click to "open a solution" and find the solution file within the path &lt;code&gt;\\wsl$&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Open the integrated terminal we setup before and run &lt;code&gt;cursor-agent&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Done! You can now choose between these 2 options to run the Cursor CLI on your Windows machine + WSL2!&lt;/p&gt;

&lt;p&gt;Any questions/suggestions? Let a comment below. Bye!&lt;/p&gt;

</description>
      <category>cursor</category>
      <category>ai</category>
      <category>linux</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to debug any website access through your Mobile device (using Chrome)</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Mon, 15 Sep 2025 18:25:11 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-debug-any-website-access-through-your-mobile-device-using-chrome-15il</link>
      <guid>https://dev.to/henriqueholtz/how-to-debug-any-website-access-through-your-mobile-device-using-chrome-15il</guid>
      <description>&lt;p&gt;Hi there! Here you'll quickly learn how to debug any website navigation from you mobile device (Android only).&lt;/p&gt;

&lt;p&gt;With USB debugging + Chrome's Dev Tools you can see any logs, network requests, etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  Requirements
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Android device&lt;/li&gt;
&lt;li&gt;USB data cable&lt;/li&gt;
&lt;li&gt;A trustable desktop/laptop with Google Chrome&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Setup
&lt;/h1&gt;

&lt;h3&gt;
  
  
  1. Enable the Developer mode
&lt;/h3&gt;

&lt;p&gt;On your android you need to enable the developer mode. Usually this can be achieved by navigating to &lt;code&gt;Settings =&amp;gt; About Phone (or similar)&lt;/code&gt; and tapping the build number a couple of times (until it tells you the developer mode is enabled)&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Enable USB Debugging
&lt;/h3&gt;

&lt;p&gt;Once you have the developer mode enabled, you need to enable the USB Debugging: &lt;code&gt;Settings =&amp;gt; Developer Options =&amp;gt; USB Debugging&lt;/code&gt; (or similar)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F3211m73jqohs4vyay8n8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F3211m73jqohs4vyay8n8.png" alt="Enable USB Debugging" width="500" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Connect your mobile device to your desktop/laptop
&lt;/h3&gt;

&lt;p&gt;This step is just to connect your mobile device to your desktop/laptop via USB data cable. Your android system can require you to accept the USB debugging.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Debug the desired webpage on your desktop/laptop
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open the desired webpage on your mobile device (via chrome);&lt;/li&gt;
&lt;li&gt;On your desktop/laptop open the following url through your chrome browser: &lt;code&gt;chrome://inspect/#devices&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Within the devices tab you'll see the opened tabs from your mobile device. Select the desired and click on &lt;code&gt;inspect&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fruohf0gnyozs0p7h2u83.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fruohf0gnyozs0p7h2u83.png" alt="inspect via USB Debugging" width="719" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then a new tab will be opened, and there you can use the Chrome Dev Tools functionalities like see the logs, network requests, and even navigate the website from your desktop/laptop&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fmc830a5y0tkm00ql4ypz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fmc830a5y0tkm00ql4ypz.png" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Official doc and more information: &lt;a href="https://developer.android.com/studio/debug/dev-options" rel="noopener noreferrer"&gt;https://developer.android.com/studio/debug/dev-options&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>debug</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to embed your git bash into Visual Studio</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Sat, 08 Jun 2024 01:14:37 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-embed-your-git-bash-into-visual-studio-1afb</link>
      <guid>https://dev.to/henriqueholtz/how-to-embed-your-git-bash-into-visual-studio-1afb</guid>
      <description>&lt;p&gt;Today you'll learn how to integrate your git bash straight into your Visual Studio. In the end it'll looks just like this:&lt;/p&gt;

&lt;p&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%2Fd52gi9cf2pb2xj5px84e.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%2Fd52gi9cf2pb2xj5px84e.png" alt="Git bash embedded into VS" width="719" height="359"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;To do that you need open the terminal configuration section in the following tab: &lt;code&gt;Tools =&amp;gt; Options =&amp;gt; Environment =&amp;gt; Terminal&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Then you should click in the Add button and configure its name and the path location pointing to the &lt;code&gt;basn.exe&lt;/code&gt;. The most important part here is to add &lt;code&gt;-i -l&lt;/code&gt; in the arguments field. These arguments are to set up the git bash to be open embedded.&lt;/p&gt;

&lt;p&gt;Usually the bash's location is similar as &lt;code&gt;C:\Program Files\Git\git-bash.exe&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Optionally you can set this terminal as default.&lt;/p&gt;

&lt;p&gt;The configuration should looks similar as the following image:&lt;/p&gt;

&lt;p&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%2F0crhyow9tff4zhkt1299.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%2F0crhyow9tff4zhkt1299.png" alt="Terminal config" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, to open the terminal go to &lt;code&gt;View =&amp;gt; Terminal&lt;/code&gt;. If you didn't set up the git bash as default you'll need to open it explicitly like this:&lt;/p&gt;

&lt;p&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%2Fxc8mrfm505yz0zx145qz.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%2Fxc8mrfm505yz0zx145qz.png" alt="Opening the git bash" width="579" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hopefully it'll be pretty useful to have the power of git bash directly into your VS! Thanks for reading.&lt;/p&gt;

</description>
      <category>bash</category>
      <category>visualstudio</category>
    </item>
    <item>
      <title>The easiest and best way to create the gitignore file for .Net repositories</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Wed, 01 May 2024 18:39:51 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/the-easiest-and-best-way-to-create-the-gitignore-file-for-net-repositories-1h35</link>
      <guid>https://dev.to/henriqueholtz/the-easiest-and-best-way-to-create-the-gitignore-file-for-net-repositories-1h35</guid>
      <description>&lt;p&gt;Have you ever had to google "gitignore file for .Net apps", copy and manually create it into your repository? &lt;/p&gt;

&lt;p&gt;That was a common situation to me before I found out a easiest (and better) way to do that.&lt;/p&gt;

&lt;p&gt;Basically instead the manual path, you can simply use the .NET CLI to do that automatically for you, just type the command below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dotnet new gitignore
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done! The .NET CLI created the &lt;code&gt;.gitignore&lt;/code&gt; for you.&lt;/p&gt;

&lt;p&gt;It was pretty simple, right?&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>git</category>
    </item>
    <item>
      <title>How I use ChatGPT to create flash cards for Anki to learn English</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Wed, 27 Dec 2023 12:00:21 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-i-use-chatgpt-to-create-flash-cards-to-learn-english-for-anki-3ghi</link>
      <guid>https://dev.to/henriqueholtz/how-i-use-chatgpt-to-create-flash-cards-to-learn-english-for-anki-3ghi</guid>
      <description>&lt;p&gt;Hello there! In this straightforward and short article I'll tell you how I'm creating English flash cards for &lt;a href="https://ankiweb.net/decks"&gt;Anki&lt;/a&gt; using ChatGPT (free version).&lt;/p&gt;

&lt;p&gt;For me, an Anki flash card needs to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A short sentence where only one word is unknown/weird for me (yet) (100% in the target language), which this new word is highlighted.&lt;/li&gt;
&lt;li&gt;With an audio (I can cover how to do that in a next article if you want to)&lt;/li&gt;
&lt;li&gt;In the back side, I put the meaning of the word in the target language always as possible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Usually I try to create a few cards (at least 2 for each new word) in different tenses like simple past, present, present perfect, interrogate, negative and so on.&lt;/p&gt;

&lt;p&gt;Also, I check how common is that word, because I'm not interested in learn words which are rarely used.&lt;/p&gt;




&lt;p&gt;To do that I ask for ChatGPT using the following prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please give me the meaning as a summary (1 line), how much this is word is common (1-1000 score), and 1 short sentence to each of the following forms: interrogative, negative, present, present perfect, past and future for the word "x"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example, I sent for ChatGPT this prompt using the word &lt;code&gt;unevenly&lt;/code&gt;, see the output:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TWgBaw0t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vy15a8pdtio7dttle3lb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TWgBaw0t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vy15a8pdtio7dttle3lb.png" alt="Output example from ChatGPT using the above prompt" width="800" height="673"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the word's score is below 400, usually I skip the word and gonna find another one more common.&lt;/p&gt;

&lt;p&gt;With that, I select some few sentences which represents for me a sentence I know the whole phrase except the &lt;code&gt;unevenly&lt;/code&gt; word and I create the flash card itself.&lt;/p&gt;

&lt;p&gt;Thanks for reading.&lt;/p&gt;

</description>
      <category>anki</category>
      <category>chatgpt</category>
      <category>english</category>
      <category>flashcards</category>
    </item>
    <item>
      <title>How to do "ping" with a specific target-port</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Sat, 16 Dec 2023 14:54:12 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-do-ping-with-a-specific-target-port-4b73</link>
      <guid>https://dev.to/henriqueholtz/how-to-do-ping-with-a-specific-target-port-4b73</guid>
      <description>&lt;p&gt;In this article we'll shortly see how to do &lt;em&gt;ping&lt;/em&gt; against a host or IP but pointing a specific port.&lt;/p&gt;

&lt;p&gt;It can be very useful to see if your container/application is alive, for example.&lt;/p&gt;




&lt;h2&gt;
  
  
  Using Powershell (windows)
&lt;/h2&gt;

&lt;p&gt;We can use the &lt;code&gt;Test-NetConnection&lt;/code&gt; function passing the port as a parameter, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; Test-NetConnection &amp;lt;host-or-ip&amp;gt; -port &amp;lt;target-port&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Using &lt;em&gt;cURL&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;With &lt;em&gt;cURL&lt;/em&gt; is untill simplier, just type &lt;code&gt;curl &amp;lt;host-or-ip&amp;gt;:&amp;lt;target-port&amp;gt;&lt;/code&gt;. Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl 127.0.0.1:1433
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>linux</category>
      <category>windows</category>
      <category>bash</category>
    </item>
    <item>
      <title>How to create your own functions on Bash</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Sat, 16 Dec 2023 14:25:53 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-create-your-own-functions-on-bash-359n</link>
      <guid>https://dev.to/henriqueholtz/how-to-create-your-own-functions-on-bash-359n</guid>
      <description>&lt;p&gt;In this article we'll shortly learn how to create your own commands/functions on Bash.&lt;/p&gt;

&lt;p&gt;You can use it whatever the OS since you're using a bash-derived terminal like &lt;em&gt;Bash&lt;/em&gt;, &lt;em&gt;Zsh&lt;/em&gt;, &lt;em&gt;Git Bash&lt;/em&gt; and so on.&lt;/p&gt;

&lt;p&gt;First of all we'll create the functions. You can choose the file name and its location. In my example I'll create as &lt;code&gt;/home/henrique/my-own-functions.sh&lt;/code&gt; (You can use the command &lt;code&gt;touch  /home/henrique/ my-own-functions.sh&lt;/code&gt; to create the file)&lt;/p&gt;

&lt;p&gt;Let's write our first function in the new file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function MyFirstFunction() {
        echo "Hello World!"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: To type the function directly in your bash you can use the &lt;em&gt;vim&lt;/em&gt;, example: &lt;code&gt;vim /home/henrique/ my-own-functions.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After write our function(s) we need to load it in our bash by default, e to do that we need to write a line to load it in the &lt;code&gt;.bashrc&lt;/code&gt; file which usually stay in your user's root folder, in my case is at &lt;code&gt;/home/henrique/.bashrc&lt;/code&gt;. To load we'll write and save a new line in this file with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{...}
source /home/henrique/my-own-functions.sh
{...}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After save the change, we need to reopen the bash to verify if our new function is available correctly. To use our new function we'll just type &lt;code&gt;MyFirstFunction&lt;/code&gt; and press enter. See the output:&lt;/p&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%2Fnf6a39q7thootxuer1i0.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%2Fnf6a39q7thootxuer1i0.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Extra
&lt;/h2&gt;

&lt;p&gt;You can test your function without need to reopen the terminal using the &lt;code&gt;source&lt;/code&gt; command. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source /home/henrique/my-own-functions.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>bash</category>
    </item>
    <item>
      <title>[extra-basic] How to create a SQL Server instance with docker container (linux based)</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Sat, 18 Feb 2023 09:33:26 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/extra-basic-how-to-create-a-sql-server-instance-with-docker-container-linux-based-3cmg</link>
      <guid>https://dev.to/henriqueholtz/extra-basic-how-to-create-a-sql-server-instance-with-docker-container-linux-based-3cmg</guid>
      <description>&lt;p&gt;Hello dears, in this simple article we'll see how to create a SQL Server instance into a docker container (linux based). We'll use the &lt;code&gt;mcr.microsoft.com/mssql/server:2022-latest&lt;/code&gt; image. Let's go!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create the Dockerfile
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM mcr.microsoft.com/mssql/server:2022-latest

ENV ACCEPT_EULA=Y
ENV MSSQL_SA_PASSWORD=MyStrong@Passw0rd
ENV MSSQL_PID=Developer
ENV MSSQL_TCP_PORT=1433

WORKDIR /src

RUN (/opt/mssql/bin/sqlservr --accept-eula &amp;amp; ) | grep -q "Service Broker manager has started" &amp;amp;&amp;amp;  /opt/mssql-tools/bin/sqlcmd -S127.0.0.1 -Usa -P MyStrong@Passw0rd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Build our docker image
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t henriqueholtz/sql-linux-2022 .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Run a container with our own docker image
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d -p 1433:1433 --name sqlgen henriqueholtz/sql-linux-2022
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Access our container and see make a simple SELECT.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it sqlgen bash
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "MyStrong@Passw0rd"
&amp;gt; SELECT name FROM master.dbo.sysdatabases
&amp;gt; GO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you are using a Windows with WSL2 (because the docker must be running linux containers), you can also access using the SQL Server Management Studio using the server name &lt;code&gt;127.0.0.1&lt;/code&gt; for example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fjllos13nmkl2vic1txdk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fjllos13nmkl2vic1txdk.png" alt=" " width="659" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, with the SQL instance running, you can create your own databases and/or restore from a backup (&lt;code&gt;.bak&lt;/code&gt;) file.&lt;/p&gt;

&lt;p&gt;Crédits: &lt;a href="https://medium.com/bright-days/basic-docker-image-dockerfile-sql-server-with-custom-prefill-db-script-8f12f197867a" rel="noopener noreferrer"&gt;[Basic] Docker image 🐳 Dockerfile — SQL Server with custom prefill DB scripts&lt;/a&gt;&lt;/p&gt;

</description>
      <category>trading</category>
      <category>algorithms</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to reset root password on gitlab-ce (self-managed) using gitlab-rake</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Tue, 30 Aug 2022 10:51:43 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-reset-root-password-on-gitlab-ce-self-managed-using-gitlab-rake-3go7</link>
      <guid>https://dev.to/henriqueholtz/how-to-reset-root-password-on-gitlab-ce-self-managed-using-gitlab-rake-3go7</guid>
      <description>&lt;p&gt;In this article we'll see how to reset root password on &lt;code&gt;gitlab-ce&lt;/code&gt; (community edition) self-managed using the embedded tool &lt;code&gt;gitlab-rake&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;First we need access the container of gitlab-ce (you can see &lt;a href="https://dev.to/henriqueholtz/how-to-run-gitlab-ce-self-managed-on-docker-container-part-1-68d"&gt;How to run gitlab-ce (self-managed) on docker container&lt;/a&gt;), we'll access it by container name, in my case is &lt;code&gt;gitlab_ce&lt;/code&gt;, let's entry with this command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

docker exec -it gitlab_ce bin/bash


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then, into the container we'll reset the root password directly using the command bellow:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

gitlab-rake "gitlab:password:reset[root]"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The above command will request for you the new password and your confirm password. After you should see some message successfully as the image below:&lt;/p&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%2Fhrbvus15l7u0ngvlncvc.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%2Fhrbvus15l7u0ngvlncvc.png" alt="Image Password successfully updated for user with username root"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's ready! Now, you can make your login with your new password and the &lt;code&gt;root&lt;/code&gt; login:&lt;/p&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%2Fqprg5he5b3aj5fyb7d9t.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%2Fqprg5he5b3aj5fyb7d9t.png" alt="Example of login using root user"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>gitlab</category>
      <category>root</category>
      <category>gitlabce</category>
      <category>password</category>
    </item>
    <item>
      <title>How to run ReactJs on Windows container</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Mon, 22 Aug 2022 09:05:00 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-run-reactjs-on-windows-container-20f3</link>
      <guid>https://dev.to/henriqueholtz/how-to-run-reactjs-on-windows-container-20f3</guid>
      <description>&lt;p&gt;Hi dev, in this article we'll see how to run ReactJs application on &lt;code&gt;windows container&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We'll use docker images who can run NodeJs on Windows container (not are official of NodeJs) explained in &lt;a href="https://dev.to/henriqueholtz/how-to-execute-windows-container-with-nodejs-4n5c"&gt;this article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, we'll generate our own &lt;code&gt;create-react-app&lt;/code&gt; to use it on &lt;code&gt;c:\Projects&lt;/code&gt; as &lt;code&gt;my-own-cra&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app my-own-cra
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we can run the container directly, or using &lt;code&gt;docker-compose&lt;/code&gt;, let's see both:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Run container directly
&lt;/h2&gt;

&lt;p&gt;Now we'll run one container with our create-react-app inside, to do this we use the command below (use powershell):&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 -t -p 3000:3000 --name=my-own-cra-windows-container -v C:\Projects\my-own-cra\:C:\app\ henriqueholtz/node-win:16.17.0 cmd /c "npm -v &amp;amp; node -v &amp;amp; npm start"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result on the terminal will be something as:&lt;/p&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%2Fo8w6x0kit0e1l9il03ww.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%2Fo8w6x0kit0e1l9il03ww.png" alt="result of  raw `npm start` endraw  in the terminal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we can access on your browser with &lt;code&gt;http://localhost:3000&lt;/code&gt; and see our create-react-app running on windows container:&lt;/p&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%2Frynx42pvvfgjpl65y5zc.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%2Frynx42pvvfgjpl65y5zc.png" alt="create-react-app on browser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Run container with &lt;code&gt;docker-compose&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;First we'll create our &lt;code&gt;dpcker-compose.yml&lt;/code&gt; (in &lt;code&gt;c:\Projects\my-own-cra&lt;/code&gt;, as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3.8'

services:
  my-own-cra:
    container_name: my-own-cra
    image: henriqueholtz/node-win:16.17.0
    command: cmd /c "npm -v &amp;amp; node -v &amp;amp; npm start"
    ports:
      - '3000:3000'
    volumes:
      - "C:\\Projects\\my-own-cra\\:C:\\app\\"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, open the terminal (in the same folder) and run docker-compose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we can access &lt;code&gt;http://localhost:3000&lt;/code&gt; also, and see our create-react-app running, same as before.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>windows</category>
      <category>container</category>
      <category>node</category>
      <category>react</category>
    </item>
    <item>
      <title>How to execute Windows container with NodeJs</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Thu, 18 Aug 2022 10:56:00 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-execute-windows-container-with-nodejs-4n5c</link>
      <guid>https://dev.to/henriqueholtz/how-to-execute-windows-container-with-nodejs-4n5c</guid>
      <description>&lt;p&gt;Hi dear, in this article we'll see how to execute Windows container with NodeJs&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; For now, don't exists any official docker image with NodeJs to Windows container. You can confire at the official repository on dockerhub: &lt;a href="https://hub.docker.com/_/node/" rel="noopener noreferrer"&gt;https://hub.docker.com/_/node/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's see one example to run Windows container with NodeJs, separated at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some Versions &amp;gt;= 14.19.0 from the image &lt;code&gt;henriqueholtz/node-win&lt;/code&gt; &lt;a href="https://hub.docker.com/repository/docker/henriqueholtz/node-win" rel="noopener noreferrer"&gt;see official repository on dockerhub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Some versions &amp;lt;= 13 from the image &lt;code&gt;stefanscherer/node-windows&lt;/code&gt; &lt;a href="https://hub.docker.com/r/stefanscherer/node-windows/tags" rel="noopener noreferrer"&gt;see official repository on dockerhub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can see the tags that are the versions of NodeJs, for example &lt;code&gt;henriqueholtz/node-win:16.15.1&lt;/code&gt; have the NodeJs on 16.15.1 version.&lt;/p&gt;

&lt;p&gt;Let's run it!&lt;/p&gt;

&lt;p&gt;In your terminal, run the command below to create the container with the name &lt;code&gt;win-16-15-1&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

docker run -d -t --name=node-win-16-15-1 henriqueholtz/node-win:16.15.1


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;After created, we can access the container by name with the command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

docker exec -it node-win-16-15-1 cmd


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now we are into the container, and we can see the NodeJs version with the simple command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

node --version


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fzszsbxe7x5trmxkf64v4.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%2Fzszsbxe7x5trmxkf64v4.png" alt="output of  raw `node --version` endraw  command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this we can run another apps like ReactJs, NextJs and much more, on Windows container!&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://dev.to/henriqueholtz/how-to-run-reactjs-on-windows-container-20f3"&gt;How to run ReactJs on Windows container&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading. See you in another post!&lt;/p&gt;

</description>
      <category>node</category>
      <category>windows</category>
      <category>docker</category>
      <category>windowscontainer</category>
    </item>
    <item>
      <title>How to run gitlab-ce (self-managed) on docker container [part 1]</title>
      <dc:creator>Henrique Holtz</dc:creator>
      <pubDate>Thu, 18 Aug 2022 09:37:00 +0000</pubDate>
      <link>https://dev.to/henriqueholtz/how-to-run-gitlab-ce-self-managed-on-docker-container-part-1-68d</link>
      <guid>https://dev.to/henriqueholtz/how-to-run-gitlab-ce-self-managed-on-docker-container-part-1-68d</guid>
      <description>&lt;p&gt;Here we'll see how to run the gitlab-ce (community edition) self-managed on docker container (linux based). We'll use docker-compose too.&lt;/p&gt;

&lt;p&gt;First we'll create a new variable &lt;code&gt;GITLAB_HOME&lt;/code&gt;, in my case I used this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export GITLAB_HOME=$HOME/gitlab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can verify if the variable it's correctly run &lt;code&gt;echo $GITLAB_HOME&lt;/code&gt; in your terminal.&lt;/p&gt;

&lt;p&gt;After that, we'll create our files as &lt;code&gt;docker-compose.yml&lt;/code&gt;. Choose one folder to it and let's start!&lt;/p&gt;

&lt;p&gt;Now, create one file named &lt;code&gt;root_password.txt&lt;/code&gt;, and put on it one string to use as the root password. In my case I fill with &lt;code&gt;RootP@ssord123!&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Then, we can create our &lt;code&gt;docker-compose.yml&lt;/code&gt;, you can use my template bellow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    container_name: gitlab_ce
    restart: always
    hostname: 'gitlab.henriqueholtz.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.henriqueholtz.com'
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'
    secrets:
      - gitlab_root_password

  gitlab_docs:
    image: registry.gitlab.com/gitlab-org/gitlab-docs:latest
    container_name: gitlab_ce_docs
    hostname: 'https://docs.gitlab.henriqueholtz.com:4000'
    ports:
      - '4000:4000'

secrets:
  gitlab_root_password:
    file: ./root_password.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we are ready to run our container, then run &lt;code&gt;docker-compose up -d&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Note: If you want use the hostname above (ex: &lt;code&gt;gitlab.henriqueholtz.com&lt;/code&gt;), you need to add it on the hosts config. Or we can use the &lt;code&gt;localhost&lt;/code&gt; or &lt;code&gt;127.0.0.1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Using &lt;code&gt;https://localhost&lt;/code&gt; (default port, 443), we already can see the gitlab web interface, but with the 502 status code:&lt;/p&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%2F6y510azsm35in7pmjy4m.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%2F6y510azsm35in7pmjy4m.png" alt="gitlab-ce at localhost with status code 502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The container can spend some minutes to stand up (for me something around 10 minutes). Meanwhile we can see the logs of our container with the command bellow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker logs gitlab-ce -f
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can access our gitlab-docs at &lt;code&gt;localhost:4000&lt;/code&gt;:&lt;/p&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%2Fpz395yb13jjf7iuc77l1.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%2Fpz395yb13jjf7iuc77l1.png" alt="gitlab-ce docs at localhost:4000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some minutes later, we can access our gitlab community edition self-managed, and see the login page: (ex: &lt;code&gt;http://localhost&lt;/code&gt;)&lt;/p&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%2F45n1avxfyjsjtgm0ttjv.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%2F45n1avxfyjsjtgm0ttjv.png" alt="Gitlab-ce at localhost:80 to login"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, to access your own gitlab you can &lt;a href="https://dev.to/henriqueholtz/how-to-reset-root-password-on-gitlab-ce-self-managed-using-gitlab-rake-3go7"&gt;reset the root password of gitlab-ce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The official documentation to install gitlab-ce self-managed of gitlab: &lt;a href="https://docs.gitlab.com/ee/install/docker.html" rel="noopener noreferrer"&gt;https://docs.gitlab.com/ee/install/docker.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading, I see you later, in the next part!&lt;/p&gt;

</description>
      <category>gitlab</category>
      <category>docker</category>
      <category>container</category>
    </item>
  </channel>
</rss>
