-{ lib, pkgs, config, myconfig, mylibs, ... }:
+{ lib, pkgs, pkgsPrevious, config, myconfig, mylibs, ... }:
let
- mastodon = pkgs.callPackage ./mastodon.nix {
+ mastodon = pkgsPrevious.callPackage ./mastodon.nix {
inherit (mylibs) fetchedGithub;
env = myconfig.env.tools.mastodon;
};
+ root = "/run/current-system/webapps/tools_mastodon";
cfg = config.services.myWebsites.tools.mastodon;
in {
options.services.myWebsites.tools.mastodon = {
uid = config.ids.uids.mastodon;
group = "mastodon";
description = "Mastodon user";
- home = mastodon.railsRoot;
+ home = mastodon.varDir;
useDefaultShell = true;
};
after = [ "network.target" ];
environment.RAILS_ENV = "production";
- environment.BUNDLE_PATH = "${mastodon.gems}/lib/ruby/gems/2.5.0";
+ environment.BUNDLE_PATH = "${mastodon.gems}/${mastodon.gems.ruby.gemPath}";
environment.BUNDLE_GEMFILE = "${mastodon.gems.confFiles}/Gemfile";
environment.SOCKET = mastodon.railsSocket;
"headers" "proxy" "proxy_wstunnel" "proxy_http"
];
security.acme.certs."eldiron".extraDomains."mastodon.immae.eu" = null;
+ system.extraSystemBuilderCmds = ''
+ mkdir -p $out/webapps
+ ln -s ${mastodon.railsRoot}/public/ $out/webapps/tools_mastodon
+ '';
services.myWebsites.tools.vhostConfs.mastodon = {
certName = "eldiron";
hosts = ["mastodon.immae.eu" ];
- root = "${mastodon.railsRoot}/public/";
+ root = root;
extraConfig = [ ''
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Strict-Transport-Security "max-age=31536000"
Options -MultiViews
</Directory>
- <Directory ${mastodon.railsRoot}/public/>
+ <Directory ${root}>
Require all granted
Options -MultiViews +FollowSymlinks
</Directory>