The journey of deploying an open-source software platform like forem can be complex and daunting, but with the right tools and services, it can also be remarkably rewarding. This article details my experience deploying Forem, the software behind the Dev.to, on Render.com, deploying Promptzone.com.
Understanding Forem
Forem is an open-source platform designed to empower community builders to create their own spaces for discussion and connection. It's built using a robust tech stack including Ruby on Rails, JavaScript, and PostgreSQL, making it a solid choice for developers looking to customize or scale their community platforms.
Choosing Render.com for Deployment
Render.com emerged as an excellent choice for deploying Forem due to its simplicity and powerful features, think of it like Heroku when it was still cheap and good. Render offers straightforward configurations, automatic scaling, and a suite of services that support web applications, background workers, cron jobs, and databases—all crucial for a Forem deployment.
Step-by-Step Deployment Process
Setting Up the Forem Repository: The first step involved forking the Forem repository on GitHub. This allowed me to manage customizations and updates with ease.
-
Configuring Render.com Services:
- Web Service: I configured a web service on Render for the Forem web application. This involved setting environment variables such as the database URL and Redis instances, I then deployed a Docker image to the Docker hub registry and deployed in a web service.
- Background Workers: Forem utilizes Sidekiq for background jobs. I set up a worker service on Render to handle these jobs, ensuring that email notifications, feed updates, and other background tasks run smoothly, same thing here I deployed the same docker image.
Database and Redis Setup: I used Render’s managed PostgreSQL and Redis services, which provided hassle-free maintenance and scalability for the database needs of Forem.
Environment and Secrets Management: Render’s environment groups feature was invaluable for managing the application’s environment variables and secrets securely, make sure to add all the necessary ENV secrets otherwise it won't work (I will dive in detail in another post on everything you need.).
Going Live with PromptZone.com
After configuring and testing the Forem instance on Render.com, the final step was to go live. I also used Fastly.com as CDN like Forem suggested.
Conclusion
This is not the suggested way of deployment by the forem team, nevertheless I found it easier and smother than using the deployment selfhost, however I think it's good to know different approaches and use the one suits you the most, if you don't have time to manage a server I think using a pass like Render does the job, and it's cheaper then Heroku at the time of this post.
Top comments (0)