🚧 This site is under construction - Coming Soon! 🚧
Documentation

Kamal Deployment

Deploy FeedbackBin with zero-downtime using Kamal for production-ready, automated deployments.

Deploy FeedbackBin using Kamal - the recommended deployment method that provides zero-downtime deployments with automatic SSL certificates.

Prerequisites

  • A Linux server (Ubuntu 20.04+ recommended)
  • A domain name pointing to your server
  • Docker Hub account
  • Kamal CLI installed locally: gem install kamal

Setup

1. Clone and Configure

git clone https://github.com/murny/feedbackbin.git
cd feedbackbin

2. Add Secrets

Create .kamal/secrets with your credentials:

# Docker Hub credentials
KAMAL_REGISTRY_PASSWORD=your-docker-hub-password

# Rails master key (generate with: rails secret)
RAILS_MASTER_KEY=your-64-character-secret-key

3. Update Deploy Configuration

Edit config/deploy.yml:

service: feedbackbin
image: your-username/feedbackbin

servers:
  web:
    - your-server-ip-address

proxy:
  ssl: true
  host: your-domain.com

registry:
  username: your-docker-username
  password:
    - KAMAL_REGISTRY_PASSWORD

env:
  secret:
    - RAILS_MASTER_KEY
  clear:
    SELF_HOSTED: true
    RAILS_ENV: production

volumes:
  - "feedbackbin_storage:/rails/storage"

4. Deploy

kamal setup

Updates

For future deployments:

kamal deploy

Essential Commands

# View logs
kamal app logs -f

# Access Rails console
kamal app exec 'bin/rails console'

# Rollback if needed
kamal rollback

# Check status
kamal details

Post-Deployment

Create your first admin user:

kamal app exec 'bin/rails console'
user = User.create!(
  name: "Admin",
  email: "[email protected]",
  password: "secure-password",
  confirmed_at: Time.current
)

org = Organization.create!(name: "Your Company")
Membership.create!(user: user, organization: org, role: "admin")

Then visit https://your-domain.com to start using FeedbackBin.