<?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: Riccardo Caprai</title>
    <description>The latest articles on DEV Community by Riccardo Caprai (@bisark).</description>
    <link>https://dev.to/bisark</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%2F105754%2Fffef7ea1-2599-472d-8e16-97e2644c0799.jpeg</url>
      <title>DEV Community: Riccardo Caprai</title>
      <link>https://dev.to/bisark</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bisark"/>
    <language>en</language>
    <item>
      <title>Docker Containers Unable to Access Internet? Check Your VPS Private Network</title>
      <dc:creator>Riccardo Caprai</dc:creator>
      <pubDate>Wed, 29 Oct 2025 01:29:57 +0000</pubDate>
      <link>https://dev.to/bisark/docker-containers-unable-to-access-internet-check-your-vps-private-network-3jf1</link>
      <guid>https://dev.to/bisark/docker-containers-unable-to-access-internet-check-your-vps-private-network-3jf1</guid>
      <description>&lt;p&gt;If your Docker containers can’t reach the internet, the issue might not be Docker itself. On VPS environments with a private network (like 192.168.x.x), the host’s default route may be misconfigured.&lt;/p&gt;

&lt;p&gt;The VPS might have multiple interfaces: a private network (for internal communication) and a public network (for internet access). If the default route points to the private network, containers inherit this route and cannot reach external IPs.&lt;/p&gt;

&lt;p&gt;Solution:&lt;/p&gt;

&lt;p&gt;Check the host’s routing table:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;If it looks something like this, it could be the problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;default via X.X.X.X dev enp1s0 proto dhcp src X.X.X.X metric 100 
default via 192.168.0.X dev enp2s0 proto dhcp src 192.168.0.X metric 100 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensure the default route points to the public interface, not the private one.&lt;/p&gt;

&lt;p&gt;If you are using Netplan on Ubuntu, increment the metric cost on the private interface by adding the following lines under that interface:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dhcp4-overrides:
    use-routes: false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Eg.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;network:
    version: 2
    ethernets:
        enp1s0:
            dhcp4: true
            match:
                macaddress: aa:aa:aa:aa:aa:aa
            mtu: 8913
            set-name: enp1s0
        enp2s0:
            dhcp4: true
            dhcp4-overrides:
                route-metric: 200
            match:
                macaddress: bb:bb:bb:bb:bb:b
            mtu: 8913
            set-name: enp2s0

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

&lt;/div&gt;



&lt;p&gt;Restart networking or apply Netplan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo netplan apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this, Docker containers will correctly use the public interface for internet access while still communicating on the private network.&lt;/p&gt;

</description>
      <category>networking</category>
      <category>docker</category>
      <category>linux</category>
      <category>help</category>
    </item>
    <item>
      <title>Installing Mikrotik CHR on a DigitalOcean Droplet Made Easy</title>
      <dc:creator>Riccardo Caprai</dc:creator>
      <pubDate>Mon, 19 Jun 2023 20:03:31 +0000</pubDate>
      <link>https://dev.to/bisark/installing-mikrotik-chr-on-a-digitalocean-droplet-made-easy-371k</link>
      <guid>https://dev.to/bisark/installing-mikrotik-chr-on-a-digitalocean-droplet-made-easy-371k</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;When it comes to Virtual Private Server (VPS) solutions, &lt;strong&gt;DigitalOcean&lt;/strong&gt; is a popular choice for many users. If you have a DigitalOcean account and are interested in running &lt;strong&gt;Mikrotik's CHR (Cloud Hosted Router)&lt;/strong&gt; in the cloud, you're in luck! In this article, we will guide you through the simple and hassle-free process of installing CHR RouterOS on a DigitalOcean droplet. Unlike other solutions that involve additional steps, such as installing a Linux distribution, DigitalOcean makes it incredibly easy to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Account Setup
&lt;/h2&gt;

&lt;p&gt;Before you begin, ensure that you have a DigitalOcean account. If you don't have one already, you can create an account quickly on their website (&lt;a href="https://m.do.co/c/c8f245108196"&gt;referral 😜&lt;/a&gt; or &lt;a href="https://digitalocean.com/"&gt;not referral 😢&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Downloading the CHR Image
&lt;/h2&gt;

&lt;p&gt;Visit the official Mikrotik website and navigate to the "&lt;a href="https://mikrotik.com/download"&gt;Downloads&lt;/a&gt;" section. Look for the CHR section and download the stable version of the CHR RouterOS image (e.g., 7.7 stable). Make sure to download the &lt;strong&gt;raw disk image&lt;/strong&gt; file.&lt;br&gt;
Once the image is downloaded, extract the file to obtain the IMG file, which will be used for the installation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Uploading the Image to DigitalOcean
&lt;/h2&gt;

&lt;p&gt;Log in to your DigitalOcean account and go to the "Images" section. Look for "Custom Images" and click on "Upload Image" in the "Downloads" section. Select the IMG file you extracted earlier and provide a name for the image. The distribution can be set as "Unknown" since it doesn't affect the installation process. Choose the region where you want the droplet to be hosted and proceed with the upload.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Creating the Droplet
&lt;/h2&gt;

&lt;p&gt;Once the image is successfully uploaded, click on "More" and then select "Start Droplet." Choose the type of droplet you prefer, and for the authentication method, select SSH key or password. However, keep in mind that the standard username for RouterOS is "&lt;strong&gt;admin&lt;/strong&gt;" and not "root." &lt;br&gt;
Click on "Create Droplet" to create your droplet. Make sure to copy the public IP address provided as you will need it to access your droplet. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Basic Security
&lt;/h2&gt;

&lt;p&gt;It &lt;strong&gt;is crucial to set a password immediately&lt;/strong&gt; to secure your router against potential threats. Do not delay this step, as leaving your router unprotected can attract malicious activity.&lt;br&gt;
To improve security, navigate to the user section and add a new username with a strong password. This step ensures additional protection for your router. After creating the new username, log in using those credentials and remove the default "admin" username for enhanced security.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Fine-tuning Services
&lt;/h2&gt;

&lt;p&gt;In the "IP Services" section, disable any unnecessary services that you don't require for your setup.&lt;br&gt;
Later, you can configure the firewall and implement &lt;strong&gt;proper security&lt;/strong&gt; measures to ensure the optimal protection of your RouterOS CHR.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Licensing Considerations
&lt;/h2&gt;

&lt;p&gt;By default, a free license is provided with a limitation of one megabit per second. However, depending on your requirements, you may want to request a &lt;strong&gt;trial license&lt;/strong&gt; for a level one or level ten. These licenses remove the one megabit limit, providing greater flexibility. The trial license can be used until you decide to upgrade your RouterOS.&lt;/p&gt;

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

&lt;p&gt;By following these straightforward steps, you can effortlessly install Mikrotik's RouterOS CHR on a DigitalOcean droplet. This powerful solution allows you to run Router&lt;/p&gt;

</description>
      <category>digitalocean</category>
      <category>chr</category>
      <category>routeros</category>
      <category>mikrotik</category>
    </item>
  </channel>
</rss>
