=[object Object]

Step-by-Step Guide to Deploying Fizzy on DigitalOcean with Kamal

Web Hosting

Introduction

Are you looking to host your own project management tool without the hassle of complex setups? If so, you've come to the right place. In this guide, we’ll walk you through deploying Fizzy, a lightweight kanban tool from 37signals, on a single DigitalOcean Droplet using Kamal. The beauty of this setup lies in its simplicity—Kamal streamlines the entire process, allowing you to focus on what matters most: your project.

Fizzy offers an open-source alternative to traditional kanban tools, giving you the freedom to own and customize your software. Whether you're a developer eager to learn or a project manager wanting more control, this guide will equip you with the knowledge to get your own Fizzy instance up and running in no time.

Prerequisites for Deployment

Before diving into the deployment process, ensure you have the following prerequisites:

  • A GitHub account
  • A DigitalOcean account
  • Docker Desktop installed locally
  • An SSH key added to your DigitalOcean account

With these essentials in place, you’re ready to start!

Setting Up Your Fizzy Instance

Follow these steps to deploy Fizzy on DigitalOcean:

  1. Fork the Fizzy Repository
    Navigate to the Fizzy repository on GitHub, click Fork, and clone the repository locally:

git clone https://github.com/YOUR_USERNAME/fizzy.git

Then, navigate into the directory and install the dependencies:

cd fizzy

bin/setup

  1. Create a DigitalOcean Droplet
    Log in to your DigitalOcean account and create a new Droplet:

Select Ubuntu 22.04 or later as the image, choose a size with at least 2GB RAM, and select the region closest to your users. Ensure you choose SSH as the authentication method. Copy the Droplet’s IP address as you’ll need it later.

  1. Configure Kamal for Deployment

Open config/deploy.yml and make two crucial changes:

  • Add your Droplet’s IP address in two places:

servers:
web:
-

proxy:
host:

  • Configure SSL based on your setup:

If you have a domain, update the host and enable SSL:

proxy:
ssl: true
host: fizzy.yourdomain.com

For an IP-only setup, temporarily disable SSL:

proxy:
ssl: false
host:

Remember, running without SSL is only for testing and not recommended for production.

  1. Set Up Secrets

Kamal loads sensitive data from .kamal/secrets. Create the file and install Ruby gems:

mkdir -p .kamal
touch .kamal/secrets
bundle install

Generate your Rails secret key and add it to .kamal/secrets.

  1. Verify SSH Access

Make sure you can connect to your server using:

ssh root@YOUR_DROPLET_IP

If the connection is successful, you’re ready to deploy!

Deployment and Email Setup

Now that your environment is ready, let’s deploy Fizzy:

  1. Ensure Docker Desktop is Running
    Start Docker Desktop and ensure it's operational by running docker ps.
  2. Run Kamal Setup
    From your Fizzy project directory, execute:

bin/kamal setup

Kamal will handle the installation of Docker on the Droplet, build the Fizzy image, and configure the proxy.

  1. Verify Deployment
    Open your browser and navigate to:

Option A: https://fizzy.yourdomain.com (with domain)

Option B: http://YOUR_DROPLET_IP (without SSL)

Configuring Email for User Verification

Fizzy requires email verification for account setup. For this, we recommend using an HTTP-based email provider like Resend:

  1. Create a Resend account and verify your domain.
  2. Add the Resend gem to your Gemfile:

gem "resend"

Run bundle install to install the gem.

  1. Update your config/environments/production.rb file to use Resend’s HTTP API.

Deploy the changes using:

bin/kamal deploy

After deployment, test email delivery by signing up or logging in.

Conclusion

Congratulations! You’ve successfully deployed your own Fizzy instance on a DigitalOcean Droplet. You've not only learned to set up a powerful kanban tool but also gained insights into managing your software infrastructure. Don't forget to enable SSL for a secure production deployment if you initially opted for IP-only access. Enjoy organizing your projects with Fizzy!

Share this article:

Thomas Wells

About Thomas Wells

Izende Studio Web has been serving St. Louis, Missouri, and Illinois businesses since 2013. We specialize in web design, hosting, SEO, and digital marketing solutions that help local businesses grow online.

Need Help With Your Website?

Whether you need web design, hosting, SEO, or digital marketing services, we're here to help your St. Louis business succeed online.

Get a Free Quote