49 lines
1.3 KiB
Nix
49 lines
1.3 KiB
Nix
{ pkgs, inputs }: pkgs.devshell.mkShell {
|
|
name = "Gandalf";
|
|
imports = [ "${inputs.devshell}/extra/language/ruby.nix" ];
|
|
commands = [
|
|
{
|
|
name = "refresh-deps";
|
|
category = "general commands";
|
|
help = "Install dependencies";
|
|
command = ''
|
|
bundle install
|
|
bundle pristine
|
|
'';
|
|
}
|
|
{
|
|
name = "mysql";
|
|
category = "general commands";
|
|
help = "Start mysql (in docker container)";
|
|
command = ''
|
|
docker run --name gandalf-db -p 3306:3306 --rm -v gandalf-db-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=gandalf mariadb:latest
|
|
'';
|
|
}
|
|
{
|
|
name = "redis";
|
|
package = pkgs.redis;
|
|
}
|
|
];
|
|
packages = with pkgs; [
|
|
imagemagick
|
|
libyaml
|
|
nodejs
|
|
];
|
|
env = [
|
|
{ name = "DATABASE_URL"; value = "mysql2://root:gandalf@127.0.0.1:3306/gandalf"; }
|
|
{ name = "TEST_DATABASE_URL"; value = "mysql2://root:gandalf@127.0.0.1:3306/gandalf_test"; }
|
|
];
|
|
serviceGroups.server.services = {
|
|
rails = {
|
|
name = "server";
|
|
command = "rails s -p 3000";
|
|
};
|
|
mysql.command = "mysql";
|
|
redis.command = "redis-server --port 6379";
|
|
sidekiq.command = "bundle exec sidekiq";
|
|
};
|
|
language.ruby = {
|
|
package = pkgs.ruby_3_2;
|
|
nativeDeps = [ pkgs.libmysqlclient pkgs.zlib ];
|
|
};
|
|
}
|