<?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>GitSpot - Code Better!: Admin McAdmin</title>
    <description>The latest articles on GitSpot - Code Better! by Admin McAdmin (@admin_mcadmin).</description>
    <link>https://gitspot.com/admin_mcadmin</link>
    <image>
      <url>https://gitspot.com/uploads/user/profile_image/11/1b9ced58-32b6-4fb2-abe4-b984539861ed.png</url>
      <title>GitSpot - Code Better!: Admin McAdmin</title>
      <link>https://gitspot.com/admin_mcadmin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://gitspot.com/feed/admin_mcadmin"/>
    <language>en</language>
    <item>
      <title>Forem on Oracle Cloud with ARM Ubuntu 24.04</title>
      <dc:creator>Admin McAdmin</dc:creator>
      <pubDate>Sun, 12 Apr 2026 15:05:55 +0000</pubDate>
      <link>https://gitspot.com/admin_mcadmin/forem-on-oracle-cloud-with-arm-ubuntu-2404-51bg</link>
      <guid>https://gitspot.com/admin_mcadmin/forem-on-oracle-cloud-with-arm-ubuntu-2404-51bg</guid>
      <description>&lt;h1&gt;
  
  
  Hosting Forem on ARM Ubuntu 24.04
&lt;/h1&gt;

&lt;p&gt;Forem is an open-source platform for building communities, best known for powering DEV.to. With the rise of ARM-based servers and single-board computers like Raspberry Pi, hosting Forem on ARM Ubuntu 24.04 is both cost-effective and energy-efficient. This article provides a step-by-step guide to deploying Forem on an ARM Ubuntu 24.04 server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ARM-based server or SBC (e.g., Raspberry Pi 4, AWS Graviton, Oracle Ampere)&lt;/li&gt;
&lt;li&gt;Ubuntu 24.04 LTS (ARM64)&lt;/li&gt;
&lt;li&gt;At least 4GB RAM (8GB recommended)&lt;/li&gt;
&lt;li&gt;Domain name (optional, for production)&lt;/li&gt;
&lt;li&gt;Basic knowledge of Linux and Docker&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Update System Packages
&lt;/h2&gt;



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

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Install Docker and Docker Compose
&lt;/h2&gt;

&lt;p&gt;Forem uses Docker for deployment. Ubuntu 24.04 supports Docker on ARM out of the box.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; docker.io docker-compose
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;--now&lt;/span&gt; docker
&lt;span class="nb"&gt;sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; docker &lt;span class="nv"&gt;$USER&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Log out and back in to apply the group change.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Clone the Forem Repository
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/forem/forem.git
&lt;span class="nb"&gt;cd &lt;/span&gt;forem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Configure Environment Variables
&lt;/h2&gt;

&lt;p&gt;Copy the example environment file and edit it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.sample .env
nano .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set values for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;APP_DOMAIN&lt;/code&gt; (your domain or IP)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SECRET_KEY_BASE&lt;/code&gt; (generate with &lt;code&gt;openssl rand -hex 64&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POSTGRES_PASSWORD&lt;/code&gt; (choose a strong password)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;REDIS_URL&lt;/code&gt; (default is fine for local)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Build Docker Images for ARM
&lt;/h2&gt;

&lt;p&gt;Forem's Docker images are multi-arch, but you may need to build them locally for ARM:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;If you encounter architecture issues, add the following to your Dockerfile(s):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM --platform=linux/arm64 ruby:3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  6. Start Forem Services
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check logs for errors:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose logs &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. Database Setup
&lt;/h2&gt;

&lt;p&gt;Run database migrations and seed data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose &lt;span class="nb"&gt;exec &lt;/span&gt;web rails db:setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. Access Forem
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Visit &lt;code&gt;http://&amp;lt;your-server-ip&amp;gt;:3000&lt;/code&gt; in your browser.&lt;/li&gt;
&lt;li&gt;Register the first user (becomes admin).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. (Optional) Set Up a Reverse Proxy with Nginx
&lt;/h2&gt;

&lt;p&gt;For production, use Nginx to proxy traffic and enable SSL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sample Nginx config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reload Nginx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl reload nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. Troubleshooting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Docker build fails on ARM:&lt;/strong&gt; Ensure all images use ARM64 base images.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Out of memory:&lt;/strong&gt; Increase swap or use a device with more RAM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ports in use:&lt;/strong&gt; Make sure nothing else is running on port 3000.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  11. Production Considerations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use SSL (Let's Encrypt)&lt;/li&gt;
&lt;li&gt;Set up backups for PostgreSQL&lt;/li&gt;
&lt;li&gt;Monitor resource usage&lt;/li&gt;
&lt;li&gt;Regularly update Forem and dependencies&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Hosting Forem on ARM Ubuntu 24.04 is straightforward with Docker. This setup is ideal for self-hosted communities, hobby projects, or low-cost production deployments. For more advanced scaling, consider managed databases and cloud load balancers.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;References:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/forem/forem" rel="noopener noreferrer"&gt;Forem GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.forem.com/" rel="noopener noreferrer"&gt;Forem Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/blog/multi-platform-docker-builds/" rel="noopener noreferrer"&gt;Docker ARM Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>infrastructure</category>
      <category>forem</category>
      <category>arm</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>GitSpot - Code Better!</title>
      <dc:creator>Admin McAdmin</dc:creator>
      <pubDate>Sat, 11 Apr 2026 14:18:23 +0000</pubDate>
      <link>https://gitspot.com/admin_mcadmin/gitspot-code-better-14l3</link>
      <guid>https://gitspot.com/admin_mcadmin/gitspot-code-better-14l3</guid>
      <description>&lt;p&gt;GitSpot let you write post about the coding experiences.&lt;/p&gt;

</description>
      <category>coding</category>
      <category>code</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
