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.