- Quickstarts
- Forem
Deploy Forem
Forem is open source software for building communities. It is the platform that powers dev.to, and allows members to share posts, create classified listings, send direct messages, listen to podcasts, and much more.
You can start building your community and deploy Forem to Render with the following components:
- A Rails web service that runs the main app.
- A Sidekiq worker that handles background jobs.
- An Elasticsearch instance for in-app searching.
- A Redis instance to cache data.
- A Render PostgreSQL managed database as the primary database.
Deployment
Prerequisites
Forem requires SendGrid for sending transactional emails to setup the admin account through the browser. See the SendGrid docs for help creating an SMTP Relay API key.
One-Click Deploy
Use the button below to deploy Forem on Render.
Configure the environment
-
Set
APP_DOMAIN
in therails
environment group.If you’re using a custom domain, you’ll need to configure your DNS. Otherwise, wait for the Forem web service to be created and copy its
.onrender
domain. -
Configure SendGrid for account email confirmation.
Set
SENDGRID_API_KEY
to your SendGrid SMTP Relay API key in therails
environment group. Add the email you configured with SendGrid underDEFAULT_EMAIL
in therails
environment group
Setup
Creating the admin user
You will need to configure your admin account after the initial Forem deploy.
Visit your newly created Forem and fill out the form to create the admin account.
Render generates the “New Forem Secret” and sets it as the FOREM_OWNER_SECRET
environment variable.
You can find its value in the rails
environment group.
Once you complete the form, confirm your email and sign in. Forem will ask you to complete setup on the configuration page. See the Basic Site Configuration Guide for more instructions on configuring Forem.
If you encounter problems confirming your email see Troubleshooting for tips.
Integrations
Forem integrates with many other services to provide more features. Visit the Forem docs to see the some of the services and the environment variables they require to function.
We recommend integrating Cloudinary
to serve uploaded images with a CDN. Viewing uploaded images such as profile pictures,
cover photos, and article photos requires Cloudinary or Imgproxy. See the
Cloudinary docs
to set up your account and get API credentials. Update the CLOUDINARY_API_KEY
, CLOUDINARY_API_SECRET
,
and CLOUDINARY_CLOUD_NAME
environment variables in the rails
environment group.
Forem can store uploaded images in AWS S3 or on a Render Disk.
We use Render Disks in this example as an easy to setup and inexpensive solution.
You can find more details on Render Disks in the docs.
You can switch to using AWS S3 by configuring the AWS_ID
, AWS_SECRET
,
AWS_BUCKET_NAME
, and AWS_UPLOAD_REGION
environment variables.
Invite Your Users
Once you’re done with setup, you can invite users and start building your community!
Troubleshooting
If you have questions or need help, feel free to get in touch at community.render.com or support@render.com.
Confirming your account
If you’re unable to confirm your account through the SendGrid email, you can manually edit your account through the Rails console.
-
Enter the web shell for your Rails web server in the Render Dashboard.
-
Open the Rails console:
source scripts/services.env bin/rails c
-
Find your user and set the
confirmed_at
fieldUser.ids # You will usually be the user with id 1 user = User.find(1) user.confirmed_at = Time.current user.save