Skip to content

Instantly share code, notes, and snippets.

@emptyflask
Last active August 22, 2019 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save emptyflask/a594a1aa22c502e0043d2c753ce29afb to your computer and use it in GitHub Desktop.
Save emptyflask/a594a1aa22c502e0043d2c753ce29afb to your computer and use it in GitHub Desktop.
ruby on rails on nix
with (import <nixpkgs> {});
let
rubyenv = bundlerEnv {
name = "app-env";
# Setup for ruby gems using bundix generated gemset.nix
inherit ruby_2_5;
gemfile = ./Gemfile;
lockfile = ./Gemfile.lock;
gemset = ./gemset.nix;
# Bundler groups available in this environment
groups = ["default" "development" "test" "toolbox"];
};
in stdenv.mkDerivation {
name = "app-id";
version = "0.0.1";
buildInputs = [
stdenv
git
# Ruby deps
ruby_2_5.devEnv
bundler
bundix
# Rails deps
clang
libxml2
libxslt
nodejs
openssl
postgresql_10
readline
yarn
zlib
rubyenv
];
shellHook = ''
export LIBXML2_DIR=${pkgs.libxml2}
export LIBXSLT_DIR=${pkgs.libxslt}
'';
}
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
# Core
gem 'bootsnap', '>= 1.1.0', require: false
gem 'date'
gem 'dotenv-rails'
gem 'fileutils', '~> 1.0.0'
gem 'pg', '>= 0.18', '< 2.0'
gem 'rails', '~> 5.2.0'
# Misc
gem 'kaminari'
# Guest Pass
gem 'addressable'
gem 'rest-client'
# Cache
gem 'dalli'
gem 'kgio' # improves dalli performance
# Authentication / Authorization
gem 'clearance', github: 'emptyflask/clearance', branch: 'bcrypt-cost'
gem 'doorkeeper'
gem 'pundit'
# Search
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
# API
gem 'active_model_serializers'
# Views
gem 'hamlit-rails'
gem 'simple_form'
# Assets
gem 'webpacker', '~> 3.0'
# Background processing
gem 'redis-namespace'
gem 'sidekiq'
gem 'sidekiq-cron'
gem 'sidekiq-failures'
gem 'sidekiq-history'
# Monitoring
gem 'honeybadger'
gem 'timber'
gem 'skylight'
group :development, :test do
gem 'better_errors'
gem 'binding_of_caller'
gem 'byebug', platforms: [:mri]
gem 'pry-rails'
end
group :development do
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'web-console', '>= 3.3.0'
end
group :test do
# gem 'capybara', '>= 2.15', '< 4.0'
# gem 'chromedriver-helper'
# gem 'selenium-webdriver'
# gem 'poltergeist'
gem 'simplecov'
gem 'webmock'
end
group :toolbox do
gem 'brakeman'
gem 'capistrano-bundler', require: false
gem 'capistrano-chruby', require: false
gem 'capistrano-deploytags', require: false
gem 'capistrano-direnv', require: false
gem 'capistrano-passenger', require: false
gem 'capistrano-pending', require: false
gem 'capistrano-rails', require: false
gem 'capistrano-sidekiq', require: false
gem 'capistrano-yarn'
gem 'foreman'
gem 'guard'
gem 'guard-bundler'
gem 'guard-minitest'
gem 'guard-pow'
gem 'rails-erd'
gem 'rubocop'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment