Ship your MVP in hours, not weeks β’ Zero config needed β’ Save 20+ dev hours
- Ship Faster: From zero to production in 15 minutes
- Growth Ready: Built-in analytics, SEO, and monitoring
- Own Your Data: Fully self-hosted, full control, full flexibility
- Cost Efficient: You decide how much you want to spend
- DX Focused: Modern stack, zero configuration
- Privacy-focused: Self-hosted Plausible, Signoz, and Docker Registry
- SEO: Auto-optimized meta-tags & sitemaps
- Performance: Lightning-fast ~50ms page loads
- Mobile First: Instant responsive layouts
- UI: Latest TailwindCSS 4 + DaisyUI 5
- Auth: Battle-tested Clearance + OmniAuth
- Storage: SQLite + Litestream
- Email: Production-ready Mailjet integration
- Modern Stack: Rails 8, Ruby 3.2, Hotwire magic
- Monitoring: Full SigNoz & Sentry integration
- Deploy: One-command Kamal deployments, self-hosted Registry support
- Observability: Enterprise-grade OpenTelemetry + Lograge
- Scale-ready: Global CDN support, multi-environment
- Ruby 3.x (
rbenv
orrvm
recommended) - Bundler:
gem install bundler
- Bun: Install guide
- Git
- Dev tools:
- Ubuntu/Debian:
sudo apt install build-essential libyaml-dev
- macOS:
xcode-select --install
- Ubuntu/Debian:
- Docker (for analytics & monitoring)
# Docker registry access (required)
export KAMAL_REGISTRY_PASSWORD="docker-registry-password"
# Litestream backup configuration (optional)
export LITESTREAM_ACCESS_KEY_ID="access-key"
export LITESTREAM_SECRET_ACCESS_KEY="secret-access-key"
export LITESTREAM_BUCKET="https://eu2.yourbucketendpoint.com/"
export LITESTREAM_REGION="eu2"
gem install railsmaker-core
# Interactive wizard (2 minutes)
railsmaker new:wizard
# Deploy to any cloud
kamal setup
If you have chosen to include litestream keep in mind that the corresponding kamal accessory will also be deployed.
railsmaker remote signoz \
--ssh-host=monitor.example.com \
--ssh-user=deploy
railsmaker remote signoz:opentelemetry \
--ssh-host=app.example.com \
--ssh-user=deploy \
--signoz-host=monitor.example.com \
--hostname=my-production-apps
railsmaker remote plausible \
--ssh-host=analytics.example.com \
--ssh-user=deploy \
--analytics-host=plausible.example.com
railsmaker remote registry \
--ssh-host=192.168.1.10 \
--ssh-user=deploy \
--registry-host=registry.example.com \
--registry-username=admin \
--registry-password=secret
After setting up your registry:
- Create an A record for
registry.example.com
pointing to your server - Update your Kamal config to use your private registry (unless you already used
-r
option):
# config/deploy.yml
registry:
server: registry.example.com
username: admin
password:
- KAMAL_REGISTRY_PASSWORD
- SigNoz Dashboard:
https://monitor.example.com:3301
- Plausible Analytics:
https://analytics.example.com
- Docker Registry:
https://registry.example.com
- Your App:
https://app.example.com
Note: All services are tested on Ubuntu 24.04 and macOS 15.2.
For a more detailed guide, check out 10 Steps To Prod.
- SigNoz Server: 2 CPU, 4GB RAM minimum
- Plausible: 1 CPU, 2GB RAM minimum
- App Server: 1 CPU, 2GB RAM minimum
You can decide how to split the services between your servers (e.g. SigNoz & Plausible on a separate server from the app or apps).
In case of DB failure, follow these steps to recover your data:
- Stop the application:
kamal app stop
- Remove existing database files:
kamal app exec /bin/sh -i
rm -rf ./storage/*
exit
- Recover files and set proper ownership to files:
kamal restore-db-app
kamal restore-db-cache
kamal restore-db-queue
kamal restore-db-cable
kamal restore-db-ownership
- Restart Litestream to initiate recovery:
kamal accessory reboot litestream
- Start the application:
kamal app boot
After deploying services with railsmaker remote
commands, you can manage them using standard Docker commands:
# Navigate to the service directory
cd ~/SERVICE_DIRECTORY
# Common commands for all services
docker compose ps # List containers
docker compose logs -f # View logs
docker compose restart # Restart all containers
docker compose down # Stop all containers
docker compose up -d # Start all containers
Service directories:
- Plausible Analytics:
~/plausible-ce
- SigNoz Server:
~/signoz/deploy/docker
- SigNoz Server Collector:
~/signoz/deploy/docker/generator/infra
- OpenTelemetry Collector (other servers):
~/signoz-opentelemetry/deploy/docker/generator/infra
Note: Replace
~
with the absolute path if using sudo or running commands as another user.
If you are relying on Cloudflare, make sure you set-up SSL/TLS to Full for your application and analytics.
This project is pay-what-you-want. If it helps you ship faster:
Give it a try at railsmaker.com