<?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: Miguel Modesto</title>
    <description>The latest articles on DEV Community by Miguel Modesto (@miguel_modesto_e3aa7bf6b4).</description>
    <link>https://dev.to/miguel_modesto_e3aa7bf6b4</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%2F4040447%2Fb8167802-eb3e-444c-a0f4-eeea24d7f7af.png</url>
      <title>DEV Community: Miguel Modesto</title>
      <link>https://dev.to/miguel_modesto_e3aa7bf6b4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/miguel_modesto_e3aa7bf6b4"/>
    <language>en</language>
    <item>
      <title>🚀 Turning My Android Phone into a Linux Lab with Termux (Instead of Paying for a VPS)</title>
      <dc:creator>Miguel Modesto</dc:creator>
      <pubDate>Thu, 23 Jul 2026 21:12:13 +0000</pubDate>
      <link>https://dev.to/miguel_modesto_e3aa7bf6b4/turning-my-android-phone-into-a-linux-lab-with-termux-instead-of-paying-for-a-vps-9j3</link>
      <guid>https://dev.to/miguel_modesto_e3aa7bf6b4/turning-my-android-phone-into-a-linux-lab-with-termux-instead-of-paying-for-a-vps-9j3</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;You don't need a cloud server to start learning Linux administration.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A few days ago, I came across a LinkedIn post by Luiz Fernando dos Santos about turning an old Android phone into a Linux server using Termux.&lt;br&gt;
Reading his post made me wonder:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do I really need to pay for a VPS just to learn Linux and server administration?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer, at least for now, seems to be no.&lt;/p&gt;

&lt;p&gt;Inspired by his idea, I decided to build my own learning environment using nothing but an Android phone and Termux. This article is the beginning of a series where I'll document everything I learn along the way.&lt;/p&gt;
&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Before getting started, I'd like to give credit to Luiz Fernando dos Santos, whose LinkedIn post inspired this project.&lt;/p&gt;

&lt;p&gt;His idea of using an old Android phone as a Linux server showed me that I didn't need to rent a VPS to start learning Linux administration.&lt;/p&gt;

&lt;p&gt;You can check out his original post here:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://www.linkedin.com/pulse/transformando-um-android-antigo-em-servidor-luiz-fernando-dos-santos-gu1if/" rel="noopener noreferrer"&gt;https://www.linkedin.com/pulse/transformando-um-android-antigo-em-servidor-luiz-fernando-dos-santos-gu1if/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  First Steps
&lt;/h2&gt;

&lt;p&gt;I had already been using Termux for quite some time, so the first thing I did was update all the installed packages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt update
apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, I installed OpenSSH.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pkg &lt;span class="nb"&gt;install &lt;/span&gt;openssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before moving on, I wanted to understand what SSH actually is instead of just following commands from a tutorial.&lt;/p&gt;

&lt;p&gt;SSH (Secure Shell) is a protocol that allows you to securely connect to another computer or server through an encrypted connection. It's one of the most common ways to remotely access Linux servers.&lt;/p&gt;

&lt;p&gt;After installing it, I found the Termux username, configured a password and started the SSH server.&lt;/p&gt;

&lt;p&gt;Then I tried connecting from my computer...&lt;/p&gt;

&lt;p&gt;And it worked!&lt;/p&gt;

&lt;p&gt;It may sound like a simple thing, but seeing my computer remotely access the Linux environment running on my phone was surprisingly satisfying.&lt;/p&gt;

&lt;h2&gt;
  
  
  Improving the Authentication
&lt;/h2&gt;

&lt;p&gt;After getting the basic connection working, I started researching how authentication by SSH keys works.&lt;/p&gt;

&lt;p&gt;I learned that instead of typing a password every time, it's possible to use a pair of cryptographic keys.&lt;/p&gt;

&lt;p&gt;So I generated an ED25519 key pair, copied my public key to the &lt;code&gt;authorized_keys&lt;/code&gt; file and configured my computer to use the private key when connecting.&lt;br&gt;
While doing this, I also learned the purpose of some important SSH files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;authorized_keys&lt;/code&gt; – stores the public keys allowed to access the server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;known_hosts&lt;/code&gt; – keeps a record of the servers I've connected to before.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;~/.ssh/config&lt;/code&gt; – lets me save connection settings so I don't have to type long SSH commands every time.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After configuring everything, connecting became as simple as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh termux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No password.&lt;/p&gt;

&lt;p&gt;No long commands.&lt;/p&gt;

&lt;p&gt;Just one simple command.&lt;/p&gt;

&lt;p&gt;Besides being much more convenient, this setup will also be useful later when I start learning GitHub Actions and CI/CD.&lt;/p&gt;

&lt;h2&gt;
  
  
  The First Problem
&lt;/h2&gt;

&lt;p&gt;The next day I tried connecting again...&lt;/p&gt;

&lt;p&gt;But this time it didn't work.&lt;/p&gt;

&lt;p&gt;At first I thought I had broken something.&lt;/p&gt;

&lt;p&gt;After a little investigation, I discovered that my phone had reconnected to my Wi-Fi network and received a different IP address.&lt;/p&gt;

&lt;p&gt;Since my &lt;code&gt;~/.ssh/config&lt;/code&gt; file still pointed to the old IP, I only had to update it with the new one.&lt;/p&gt;

&lt;p&gt;Problem solved.&lt;/p&gt;

&lt;p&gt;Although it was a small issue, it helped me understand how local networks and IP addressing actually work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running My First Node.js Application
&lt;/h2&gt;

&lt;p&gt;Once the SSH connection was working properly, I wanted to test something more practical.&lt;/p&gt;

&lt;p&gt;I created a simple Node.js API with a health check endpoint.&lt;/p&gt;

&lt;p&gt;After pushing the project to GitHub, I cloned it directly inside Termux, installed the dependencies and started the server.&lt;/p&gt;

&lt;p&gt;Finally, I accessed the health check endpoint using my phone's IP address and the application's port.&lt;/p&gt;

&lt;p&gt;Seeing a Node.js application running on my phone through SSH was a great feeling.&lt;/p&gt;

&lt;p&gt;It was a small project, but it proved that the environment was working exactly as I expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;This is just the beginning.&lt;/p&gt;

&lt;p&gt;Over the next few weeks I plan to keep using this Android phone as my Linux lab while studying topics such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux file permissions&lt;/li&gt;
&lt;li&gt;Users and groups&lt;/li&gt;
&lt;li&gt;Shell scripting&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;li&gt;Nginx&lt;/li&gt;
&lt;li&gt;Reverse proxy&lt;/li&gt;
&lt;li&gt;Load balancing&lt;/li&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;li&gt;CI/CD&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know that Termux has some limitations because it's running on Android, and I don't expect it to replace a real VPS.&lt;/p&gt;

&lt;p&gt;But for learning Linux fundamentals and experimenting with new technologies, it has already exceeded my expectations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;One thing I've learned from this project is that sometimes we think we need expensive tools before we can start learning.&lt;/p&gt;

&lt;p&gt;In reality, curiosity and consistency matter much more.&lt;/p&gt;

&lt;p&gt;An Android phone, Termux and the willingness to experiment are enough to build a great learning environment.&lt;/p&gt;

&lt;p&gt;I'll continue documenting everything I learn in future articles, including the mistakes, the limitations and, hopefully, the progress.&lt;/p&gt;

&lt;p&gt;If you're also using Termux for learning, I'd love to hear about your experience.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>termux</category>
      <category>ssh</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
