socketsDir = "/run/mastodon";
gems = bundlerEnv {
name = "mastodon-env";
- ruby = ruby_2_5;
+ # https://git.immae.eu/mantisbt/view.php?id=131
+ ruby = ruby_2_5.overrideAttrs(old: {
+ postInstall = builtins.replaceStrings [" --destdir $GEM_HOME"] [""] old.postInstall;
+ });
gemset = ./gemset.nix;
gemdir = (fetchedGithub ./mastodon.json).src;
groups = [ "default" "production" "test" "development" ];
pkgConfig = {
uws = {
postInstall = ''
- node-gyp rebuild > build_log.txt 2>&1 || true
+ npx node-gyp rebuild > build_log.txt 2>&1 || true
'';
- buildInputs = with pkgs; [ nodePackages.node-gyp ];
};
node-zopfli = {
postInstall = ''
- node-pre-gyp install --fallback-to-build
+ npx node-pre-gyp install --fallback-to-build
'';
- buildInputs = with pkgs; [ nodePackages.node-pre-gyp ];
};
node-sass = {
- buildInputs = with pkgs; [ binutils libsass python ];
+ buildInputs = with pkgs; [ libsass python ];
postInstall = let
nodeHeaders = pkgs.fetchurl {
url = "https://nodejs.org/download/release/v${pkgs.nodejs.version}/node-v${pkgs.nodejs.version}-headers.tar.gz";
- sha256 = "12zzsf8my43b8qnlacp871ih5vqafl2vlpqp51xp6h3gckn2frwy";
+ sha256 = "16f20ya3ys6w5w6y6l4536f7jrgk4gz46bf71w1r1xxb26a54m32";
};
in
''
- export AR=${pkgs.binutils.bintools}/bin/ar
node scripts/build.js --tarball=${nodeHeaders}
'';
};
VAPID_PRIVATE_KEY=${env.vapid.private}
VAPID_PUBLIC_KEY=${env.vapid.public}
- SMTP_SERVER=mail.immae.eu
- SMTP_PORT=587
+ SMTP_DELIVERY_METHOD=sendmail
SMTP_FROM_ADDRESS=notifications@mastodon.immae.eu
- SMTP_DELIVERY_METHOD=smtp
+ SENDMAIL_LOCATION="/run/wrappers/bin/sendmail"
PAPERCLIP_ROOT_PATH=${varDir}
STREAMING_CLUSTER_NUM=1
+ RAILS_LOG_LEVEL=warn
+
# LDAP authentication (optional)
LDAP_ENABLED=true
LDAP_HOST=ldap.immae.eu
cp -a $mastodon $out
cd $out
chmod u+rwX . public
+ chmod -R u+rwX config/
+ sed -i -e 's@^end$@ config.action_mailer.sendmail_settings = { location: ENV.fetch("SENDMAIL_LOCATION", "/usr/sbin/sendmail") }\nend@' config/environments/production.rb
RAILS_ENV=production ${gems}/bin/rails assets:precompile
rm -rf tmp/cache
- ln -sf ../../../../../../../${varDir}/tmp/cache tmp
+ ln -sf ${varDir}/tmp/cache tmp
'';
buildInputs = [ gems gems.ruby pkgs.nodejs pkgs.yarn ];
};