<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Code Talks]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://codetalks.net/</link><image><url>https://codetalks.net/favicon.png</url><title>Code Talks</title><link>https://codetalks.net/</link></image><generator>Ghost 5.58</generator><lastBuildDate>Sun, 05 Apr 2026 22:52:52 GMT</lastBuildDate><atom:link href="https://codetalks.net/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Install Langchain from Github]]></title><description><![CDATA[<h3 id="what-is-langchain">What is LangChain?</h3><p>LangChain is an innovative library designed to amplify the potential of Large Language Models (LLMs). With the rise of LLMs, the possibilities for developers are expanding, but LangChain takes it to the next level by enabling the integration of LLMs with other computational and knowledge sources. It</p>]]></description><link>https://codetalks.net/install-langchain-from-github/</link><guid isPermaLink="false">64d3faf57ada450001fc3a57</guid><dc:creator><![CDATA[Patrick]]></dc:creator><pubDate>Wed, 09 Aug 2023 20:55:53 GMT</pubDate><content:encoded><![CDATA[<h3 id="what-is-langchain">What is LangChain?</h3><p>LangChain is an innovative library designed to amplify the potential of Large Language Models (LLMs). With the rise of LLMs, the possibilities for developers are expanding, but LangChain takes it to the next level by enabling the integration of LLMs with other computational and knowledge sources. It doesn&#x2019;t just facilitate the isolated usage of LLMs; rather, it extends their capabilities to a more complex and dynamic level.</p><h4 id="some-applications-made-possible-by-langchain">Some Applications Made Possible by LangChain:</h4><ul><li><strong>Question Answering over Specific Documents</strong>: LangChain allows you to structure question-answering over particular databases such as Notion.</li><li><strong>Chatbots</strong>: Create engaging chatbots.</li><li><strong>Agents with Integrations</strong>: Combine the power of LLMs like ChatGPT with tools like WolframAlpha to create intelligent agents.</li></ul><p></p><h2 id="installing-langchain">Installing LangChain</h2><p>For basic LangChain installation you can simply run \</p><p><code>pip install langchain</code></p><p>But if you need the cutting edge or need to install from your own fork you can use one of the following:</p><h3 id="install-the-latest-version-of-langchain-directly-from-github">Install the latest version of LangChain directly from Github </h3><p>You can pip install from Github with</p><pre><code>pip install -e git+https://github.com/langchain/langchain.git#egg=langchain&amp;subdirectory=libs/langchain</code></pre><p>Or you can... </p><h3 id="install-langchain-from-github-in-a-requirementstxt-file">Install LangChain from Github in a requirements.txt file </h3><p>if you have a requirements.txt file simply add this line!</p><figure class="kg-card kg-code-card"><pre><code>-e git+https://github.com/langchain/langchain.git@enumerate-stuff#egg=langchain&amp;subdirectory=libs/langchain</code></pre><figcaption>requirements.txt</figcaption></figure><h3 id="manually">Manually</h3><p>Or you can manually do it in two steps <a href="https://github.com/langchain-ai/langchain/issues/5722?ref=codetalks.net">like this</a>!</p><pre><code>git clone https://github.com/langchain-ai/langchain.git
pip install -e langchain/libs/langchain</code></pre><p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/langchain-ai/langchain?ref=codetalks.net"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - langchain-ai/langchain: &#x26A1; Building applications with LLMs through composability &#x26A1;</div><div class="kg-bookmark-description">&#x26A1; Building applications with LLMs through composability &#x26A1; - GitHub - langchain-ai/langchain: &#x26A1; Building applications with LLMs through composability &#x26A1;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-publisher">GitHub</span><span class="kg-bookmark-author">langchain-ai</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/ccc604e0602e525388459496112e4ef48157291398d8bfe84d7dec8b0a29c39f/langchain-ai/langchain" alt></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Installing yt-dlp on Ubuntu 22.04:]]></title><description><![CDATA[<p>Greetings tech aficionados! Are you looking to install yt-dlp or update to the latest version on Ubuntu 22.04?</p><p>yt-dlp and youtube-dl are the state of the art tools for downloading videos from youtube (yt-dlp is a fork of youtube-dl). If you&apos;ve ever wanted to save a Youtube</p>]]></description><link>https://codetalks.net/installing-yt-dlp-on-ubuntu-22-04/</link><guid isPermaLink="false">64d225557ada450001fc39cc</guid><dc:creator><![CDATA[Patrick]]></dc:creator><pubDate>Tue, 08 Aug 2023 11:37:41 GMT</pubDate><content:encoded><![CDATA[<p>Greetings tech aficionados! Are you looking to install yt-dlp or update to the latest version on Ubuntu 22.04?</p><p>yt-dlp and youtube-dl are the state of the art tools for downloading videos from youtube (yt-dlp is a fork of youtube-dl). If you&apos;ve ever wanted to save a Youtube video for offline purposes or archival purposes youtube-dl and yt-dlp help you download Youtube videos in a single command.</p><h3 id="step-1-remove-existing-package-optional">Step 1: Remove Existing Package (optional)</h3><h3 id="note">Note:</h3><p>If you don&apos;t have yt-dlp installed, skip this step!</p><p>Have you seen the &quot;Unable to extract uploader id&quot; error on your current version? It&#x2019;s a sign you need an update! So follow through from the install steps</p><h4 id="step-1a-remove-existing-package-via-package-manager-optional">Step 1a: Remove Existing Package via package manager (optional)</h4><p>If you have an old version you yt-dlp installed by your package manager, remove it! Let&apos;s remove the packaged version:</p><p><code>sudo apt remove yt-dlp</code></p><h4 id="step-1a-remove-existing-package-via-package-manager-optional-1">Step 1a: Remove Existing Package via package manager (optional)</h4><p><code>sudo -H pip uninstall youtube-dl</code></p><h3 id="step-2-download-the-latest-binary">Step 2: Download the Latest Binary</h3><p>Stay ahead with the latest release! </p><p>We&apos;ll download the binary directly from Github - that way we know it&apos;s the latest. No more outdated system packages!</p><p>Here&apos;s how:</p><p><code> curl https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux &gt; ~/.local/bin/yt-dlp</code></p><h3 id="step-3-set-permissions">Step 3: Set Permissions</h3><p>Make it executable:</p><p><code>chmod a+rx ~/.local/bin/yt-dlp</code></p><h4 id="step-4-check-the-path">Step 4: Check the Path</h4><p>Ensure yt-dlp is in your current path</p><p>Open a terminal and run <code>echo $PATH</code></p><p>You should see <code>~/.local/bin</code> listed. </p><p>If <code>~/.local/bin/</code> is not in your path, you&apos;ll need to add it. Open your .bashrc, .bash_profile, or .zshrc file (depending on your shell), and append the following line:</p><p><code>export PATH=$PATH:~/.local/bin</code></p><p>then reload your environment by running <code>source .bashrc</code> (replacing .bashrc with the file you just edited)</p><h4 id="step-5-enjoy">Step 5: Enjoy!</h4><p>Time to test it:</p><p><code>yt-dlp &apos;https://youtube.com/watch?v=dQw4w9WgXcQ&apos;</code></p><h3 id="caution-and-conclusion">Caution and Conclusion</h3><p>Always be mindful of what these commands do, especially if command-line execution is a new territory for you. And remember, it&apos;s better to be safe than sorry!</p><p>For additional information or troubleshooting, please refer to <a href="https://github.com/yt-dlp/yt-dlp?ref=codetalks.net">official yt-dlp GitHub page</a>. &#x1F680;</p>]]></content:encoded></item><item><title><![CDATA[Self Host Ghost Behind Cloudflare Tunnel]]></title><description><![CDATA[<h3 id="introduction-self-host-ghost-behind-cloudflare-argo-tunnel-%F0%9F%9B%A1%EF%B8%8F">Introduction: Self Host Ghost Behind Cloudflare Argo Tunnel &#x1F6E1;&#xFE0F;</h3><p>If you&apos;ve followed our previous guide on <a href="https://codetalks.net/host-ghost-on-docker/">self-hosting Ghost with Docker</a>, you may now want to expose it to the world on a specific URL! Let&apos;s take your Ghost blog a notch higher by setting it</p>]]></description><link>https://codetalks.net/ghost-behind-cloudflare-tunnel/</link><guid isPermaLink="false">64d0bf2b7ada450001fc3974</guid><dc:creator><![CDATA[Patrick]]></dc:creator><pubDate>Mon, 07 Aug 2023 10:02:38 GMT</pubDate><content:encoded><![CDATA[<h3 id="introduction-self-host-ghost-behind-cloudflare-argo-tunnel-%F0%9F%9B%A1%EF%B8%8F">Introduction: Self Host Ghost Behind Cloudflare Argo Tunnel &#x1F6E1;&#xFE0F;</h3><p>If you&apos;ve followed our previous guide on <a href="https://codetalks.net/host-ghost-on-docker/">self-hosting Ghost with Docker</a>, you may now want to expose it to the world on a specific URL! Let&apos;s take your Ghost blog a notch higher by setting it up behind a Cloudflare tunnel, enhancing security and performance. Let&apos;s jump in!</p><h3 id="step-1-setting-up-cloudflare">Step 1: Setting up Cloudflare</h3><p>First things first, we need to prepare the environment for Cloudflare. Here&apos;s what you do:bash</p><figure class="kg-card kg-code-card"><pre><code>cloudflared login 
mkdir cloudflared 
mv ~/.cloudflared/cert.pem ./cloudflared/</code></pre><figcaption>login to cloudflare</figcaption></figure><p>These commands will log you in, create a directory, and move the essential certificate file.</p><h3 id="step-2-create-the-cloudflare-tunnel-%F0%9F%9A%87">Step 2: Create the Cloudflare Tunnel &#x1F687;</h3><p>Execute this command to create a tunnel specifically for <code>codetalks.net</code>:</p><figure class="kg-card kg-code-card"><pre><code>cloudflared tunnel --origincert cloudflared/cert.pem create codetalks.net
rm cloudflared/cert.pem</code></pre><figcaption>create cloudflare tunnel</figcaption></figure><h4 id="caution-%E2%9A%A0%EF%B8%8F">Caution! &#x26A0;&#xFE0F;</h4><p>Handle certificates with care! Mistakes can lead to security vulnerabilities. Make sure you understand these commands fully.</p><h3 id="step-3-docker-compose-integration">Step 3: Docker-Compose Integration</h3><p>Add the<strong> cloudflared section below</strong> to your existing Docker Compose file:</p><figure class="kg-card kg-code-card"><pre><code>version: &apos;3.1&apos;

services:

  ghost:
    image: ghost:5-alpine
    user: node
    restart: always
    ports:
      - &quot;2368:2368&quot;
    environment:
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: MYNEWPASSWORD
      database__connection__database: ghost
      url: https://codetalks.net
    volumes:
      - ghost-content:/var/lib/ghost/content
      - ./wait-for-it.sh:/bin/wait-for-it.sh
    command: [&quot;/bin/sh&quot;, &quot;-c&quot;, &quot;/bin/wait-for-it.sh db:3306 -- /usr/local/bin/docker-entrypoint.sh node current/index.js&quot;]
    depends_on:
      - db

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: MYNEWPASSWORD
    volumes:
      - ghost-db:/var/lib/mysql


  cloudflared:
    image: cloudflare/cloudflared:latest
    restart: always
    command: tunnel run --credentials-file /etc/cloudflared/9a9a9a9abf-ff61-4b50-bd0d-a9b67a5b18df.json --url http://ghost:2368 9a9a9a9abf-ff61-4b50-bd0d-a9b67a5b18df
    environment:
      TUNNEL_HOSTNAME: codetalks.net
      TUNNEL_ORIGIN_CERT: /etc/cloudflared/cert.pem
    volumes:
      - ./cloudflared:/etc/cloudflared



volumes:
  ghost-content:
  ghost-db:</code></pre><figcaption>docker-compose.yml</figcaption></figure><p>Make sure to update the cloudflare tunnel UUID!</p><figure class="kg-card kg-code-card"><pre><code>ls -lath cloudflared</code></pre><figcaption>get the cloudflare tunnel name, it&apos;s the name of the json file</figcaption></figure><p>In the above the cloudflared tunnel UUID is &quot;9a9a9a9abf-ff61-4b50-bd0d-a9b67a5b18df&quot; - note you need to change it twice (in one spot it will end in <code>.json</code>, the other time it won&apos;t!</p><h4 id="whats-happening-here">What&apos;s Happening Here?</h4><p>You&apos;re adding a Cloudflare container that will establish a secure tunnel between your Ghost blog and Cloudflare&apos;s network. <strong>Voila!</strong> Your self-hosted Ghost blog in a few lines of code!</p><p>Note - make sure the DNS records point to the cloudflare argo tunnel! </p><h3 id="step-4-verification-and-deployment">Step 4: Verification and Deployment</h3><p>Ensure everything looks good, and run your Docker Compose:</p><p><code>docker-compose down &amp;&amp; docker-compose up -d</code></p><h3 id="conclusion-your-ghost-now-more-secure-%F0%9F%8E%89">Conclusion: Your Ghost, Now More Secure! &#x1F389;</h3><p>By setting up Ghost behind a Cloudflare tunnel, you&apos;ve just securely exposed your blog to thhe world on your OWN domain. </p><p>Still have questions? Struggling with something? Reach out, and let&apos;s find the solutions together!</p><p>Happy blogging! &#x1F680;</p>]]></content:encoded></item><item><title><![CDATA[Host Ghost on Docker]]></title><description><![CDATA[<h3 id="introduction-host-ghos-blog-on-docker-%F0%9F%9A%80">Introduction: Host Ghos Blog on Docker! &#x1F680;</h3><p>Looking to self-host your Ghost blog using Docker containers? Your search ends here! We&apos;re diving into the world of Docker Compose to guide you in effortlessly hosting Ghost with a sprinkle of enthusiasm. Buckle up; it&apos;s simpler than you</p>]]></description><link>https://codetalks.net/host-ghost-on-docker/</link><guid isPermaLink="false">64d0bc0b7ada450001fc3920</guid><dc:creator><![CDATA[Patrick]]></dc:creator><pubDate>Mon, 07 Aug 2023 09:50:34 GMT</pubDate><content:encoded><![CDATA[<h3 id="introduction-host-ghos-blog-on-docker-%F0%9F%9A%80">Introduction: Host Ghos Blog on Docker! &#x1F680;</h3><p>Looking to self-host your Ghost blog using Docker containers? Your search ends here! We&apos;re diving into the world of Docker Compose to guide you in effortlessly hosting Ghost with a sprinkle of enthusiasm. Buckle up; it&apos;s simpler than you think!</p><h3 id="step-1-docker-compose-file">Step 1: Docker Compose File</h3><p>Here&apos;s a version 3.1 Docker Compose file. It consists of Ghost with an Alpine image and a MySQL container:</p><figure class="kg-card kg-code-card"><pre><code>version: &apos;3.1&apos;

services:

  ghost:
    image: ghost:5-alpine
    user: node
    restart: always
    ports:
      - &quot;2368:2368&quot;
    environment:
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: MYNEWPASSWORD
      database__connection__database: ghost
      url: https://codetalks.net
    volumes:
      - ghost-content:/var/lib/ghost/content
      - ./wait-for-it.sh:/bin/wait-for-it.sh
    command: [&quot;/bin/sh&quot;, &quot;-c&quot;, &quot;/bin/wait-for-it.sh db:3306 -- /usr/local/bin/docker-entrypoint.sh node current/index.js&quot;]
    depends_on:
      - db

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: MYNEWPASSWORD
    volumes:
      - ghost-db:/var/lib/mysql


volumes:
  ghost-content:
  ghost-db:</code></pre><figcaption>docker-compose.yml</figcaption></figure><h3 id="docker-volumes-note">Docker Volumes Note:</h3><p>Docker volumes act as independent storage units, allowing data to survive even if containers are stopped or deleted. </p><h4 id="caution-%E2%9A%A0%EF%B8%8F">Caution! &#x26A0;&#xFE0F;</h4><p>If you don&apos;t use volumes, use mounts! If you don&apos;t use either YOU WILL ACCIDENTALLY DELETE YOUR ENTIRE BLOG. Be careful and make sure you use volumes or mounts!!!</p><h3 id="the-magic-of-wait-for-it">The Magic of &quot;wait-for-it&quot;:</h3><p>While &quot;depends_on&quot; means that ghost waits for db to start, that doesn&apos;t mean the MySQL DB is ready. depends_on. wait-for-it is a script that checks that something is available before running something else. Here it makes sure the db is actually ready before starting Ghost. Download wait-for-it here: </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/vishnubob/wait-for-it/blob/master/wait-for-it.sh?ref=codetalks.net"><div class="kg-bookmark-content"><div class="kg-bookmark-title">wait-for-it/wait-for-it.sh at master &#xB7; vishnubob/wait-for-it</div><div class="kg-bookmark-description">Pure bash script to test and wait on the availability of a TCP host and port - vishnubob/wait-for-it</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt><span class="kg-bookmark-publisher">GitHub</span><span class="kg-bookmark-author">vishnubob</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/70d9275911573a4f7fcd153eb6b08657db5b60340cea41831df0d3762ebacbab/vishnubob/wait-for-it" alt></div></a></figure><h3 id="step-2-run-the-commands">Step 2: Run the Commands</h3><p>Here comes the magic! &#x1F3A9; Execute these simple commands:</p><p><code>docker-compose down &amp;&amp; docker-compose up -d</code></p><h4 id="caution-%E2%9A%A0%EF%B8%8F-1">Caution! &#x26A0;&#xFE0F;</h4><p>Ensure backups and understand the effects of changing versions or configurations. It&apos;s crucial, trust me!</p><h3 id="step-3-enjoy-your-ghost-blog">Step 3: Enjoy Your Ghost Blog</h3><p>Head over to your <code>localhost:2368</code>, and there&apos;s your Ghost blog, up and running smoothly. To make your own posts, go to <code>localhost:2368/ghost</code></p><h3 id="conclusion">Conclusion</h3><p>We&apos;ve taken a technical yet friendly ride through hosting Ghost using Docker. Have questions? Encountered an issue? I&apos;ve been there! Drop a comment, and let&apos;s solve it together.</p><p>Happy hosting! &#x1F389;</p>]]></content:encoded></item><item><title><![CDATA[MongoDB Install on Ubuntu]]></title><description><![CDATA[<p>MongoDB is a great NoSQL database - and if you use ubuntu you may want to install it! Let&apos;s go over how to install MongoDB on Ubuntu. &#x1F680;</p><h3 id="1-pre-installation-checklist">1. Pre-installation Checklist:</h3><p>Always Back Up: Before we begin, let me hit you with a golden rule of tech -</p>]]></description><link>https://codetalks.net/mongodb-install-on-ubuntu/</link><guid isPermaLink="false">64cc16b923d79e000169a864</guid><dc:creator><![CDATA[Patrick]]></dc:creator><pubDate>Thu, 03 Aug 2023 21:27:35 GMT</pubDate><content:encoded><![CDATA[<p>MongoDB is a great NoSQL database - and if you use ubuntu you may want to install it! Let&apos;s go over how to install MongoDB on Ubuntu. &#x1F680;</p><h3 id="1-pre-installation-checklist">1. Pre-installation Checklist:</h3><p>Always Back Up: Before we begin, let me hit you with a golden rule of tech - Always back up your data! Ensure you&apos;ve got a safe copy of your essential data. Awesome, moving on!</p><p>Update System Packages: It&apos;s always wise to start with the latest updates. It can save tons of headaches down the road.</p><figure class="kg-card kg-code-card"><pre><code>sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre><figcaption>Or at the very least update your package list (sudo apt update)</figcaption></figure><h3 id="2-import-mongodb-public-key">2. Import MongoDB Public Key:</h3><p>MongoDB is signed with a public key to ensure software consistency and authenticity. Let&apos;s import this key using the following:</p><figure class="kg-card kg-code-card"><pre><code>wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -</code></pre><figcaption>Get Mongo Signing Key into Ubuntu Package Manager</figcaption></figure><h3 id="3-add-mongodb-source-list">3. Add MongoDB Source List:</h3><p>Ubuntu repositories don&apos;t always house the latest MongoDB version. So, let&apos;s make sure we get the most updated one directly from MongoDB itself.<br>NOTE: The command will depend on the flavor of Ubuntu (pay attention to the label on the command, you only run one of these).</p><figure class="kg-card kg-code-card"><pre><code>echo &quot;deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/5.0 multiverse&quot; | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list</code></pre><figcaption>MongoDB for Ubuntu 22.04</figcaption></figure><figure class="kg-card kg-code-card"><pre><code>echo &quot;deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse&quot; | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list</code></pre><figcaption>MongoDB for Ubuntu 20.04</figcaption></figure><figure class="kg-card kg-code-card"><pre><code>echo &quot;deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse&quot; | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list</code></pre><figcaption>MongoDB for Ubuntu 18.04</figcaption></figure><figure class="kg-card kg-code-card"><pre><code>echo &quot;deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/5.0 multiverse&quot; | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list</code></pre><figcaption>MongoDB for Ubuntu 16.04</figcaption></figure><h3 id="4-installing-mongodb">4. Installing MongoDB:</h3><p>We&apos;re about to bring MongoDB to life on your system!</p><figure class="kg-card kg-code-card"><pre><code>sudo apt update
sudo apt install -y mongodb-org</code></pre><figcaption>update and install MongoDB on Ubuntu</figcaption></figure><p>That&apos;s it! MongoDB is now dancing on your machine. &#x1F604;</p><h3 id="5-starting-and-enabling-mongodb">5. Starting and Enabling MongoDB:</h3><p>Just installing isn&#x2019;t enough. Time to set it as a service so it keeps running:</p><figure class="kg-card kg-code-card"><pre><code>sudo systemctl start mongod</code></pre><figcaption>Start Mongo on Linux</figcaption></figure><p>And hey, if you want MongoDB to run every time your system does, simply use:</p><figure class="kg-card kg-code-card"><pre><code>sudo systemctl enable mongod</code></pre><figcaption>Enable MongoDB on Linux</figcaption></figure><h3 id="6-verify-your-installation">6. Verify Your Installation:</h3><p>Let&apos;s confirm MongoDB is running smoothly:</p><pre><code class="language-bash">sudo systemctl status mongod</code></pre><p>If you see an &#x201C;active&#x201D; status, give yourself a pat on the back! You did it!<br></p>]]></content:encoded></item><item><title><![CDATA[Installing Apache 2.4 on Ubuntu 22.04]]></title><description><![CDATA[<p>Ready to install Apache 2.4 on Ubuntu 20.04 or 22.04? You&apos;re in the right place! </p><h2 id="before-we-begin-a-few-cautions">Before We Begin: A Few Cautions!</h2><p>Back it up! Before starting, ensure you&apos;ve backed up your system. Because hey, things can go sideways sometimes, and it&apos;s</p>]]></description><link>https://codetalks.net/installing-apache-2-4-on-ubuntu-22-04/</link><guid isPermaLink="false">64cc11f423d79e000169a7e7</guid><dc:creator><![CDATA[Patrick]]></dc:creator><pubDate>Thu, 03 Aug 2023 21:01:03 GMT</pubDate><content:encoded><![CDATA[<p>Ready to install Apache 2.4 on Ubuntu 20.04 or 22.04? You&apos;re in the right place! </p><h2 id="before-we-begin-a-few-cautions">Before We Begin: A Few Cautions!</h2><p>Back it up! Before starting, ensure you&apos;ve backed up your system. Because hey, things can go sideways sometimes, and it&apos;s best to be prepared!<br></p><h3 id="1-update-and-upgrade">1. Update and Upgrade</h3><p>First and foremost, always ensure your system repositories are up to date. A fresh start makes for a smoother journey!</p><figure class="kg-card kg-code-card"><pre><code>sudo apt update</code></pre><figcaption>Update package list Ubuntu</figcaption></figure><p>Personal Experience Alert: Once, I skipped <code>apt update</code> and ran into all kinds of version conflicts. Trust me; make sure the package list is up to date before upgrading!</p><h3 id="2-installing-apache">2. Installing Apache</h3><p>And now &#x2013; installing Apache!</p><figure class="kg-card kg-code-card"><pre><code>sudo apt install apache2</code></pre><figcaption>Install apache 2 on Ubuntu</figcaption></figure><p>Once installed, you should be able to start the service using:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">sudo systemctl start apache2</code></pre><figcaption>Start the apache web service on Ubuntu</figcaption></figure><p>To ensure Apache automatically starts upon boot:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">sudo systemctl enable apache2</code></pre><figcaption>Enable apache service on Ubuntu</figcaption></figure><p>And just like that, you&apos;ve got Apache running! &#x1F680;</p><h3 id="3-verify-apache-installation">3. Verify Apache Installation</h3><p>After installing, it&apos;s always good practice to ensure everything&apos;s working. Open your preferred web browser and navigate to:</p><p><code>localhost:80</code></p><p>You should see the Apache default welcome page! If not, double-check your steps or dive into some troubleshooting.</p><h3 id="4-adjusting-the-firewall">4. Adjusting the Firewall</h3><p>For those of you with UFW (Uncomplicated Firewall) enabled, make sure to allow the Apache profiles:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">sudo ufw allow &apos;Apache&apos;</code></pre><figcaption>Allow apache through UFW firewall on Linux</figcaption></figure><p>Safety first, folks! This step ensures only permitted traffic reaches your Apache server.</p><h3 id="5-additional-configurations-optional">5. Additional Configurations (Optional)</h3><p>Depending on your project, you might need additional configurations. This could be enabling specific Apache modules or tweaking performance settings. Apache&apos;s main configuration file is located at:</p><p><code>/etc/apache2/apache2.conf</code></p><p>Caution!: Always backup configuration files before editing. A wrong configuration might make the server misbehave and you&apos;ll want to easily restore it!</p><h3 id="6-wrapping-up"><br>6. Wrapping Up</h3><p>Your Apache 2.4 is now installed and humming away on your Ubuntu machine! &#x1F389;</p><p>However, remember that the web is ever-evolving. To keep up, ensure you regularly update and maintain your Apache server. Last I checked the latest was Ubuntu apache 2.4.55, but always make sure to update!</p>]]></content:encoded></item></channel></rss>