1 { env, fetchedGithub, stdenv, defaultGemConfig, writeText, bundlerEnv, ruby_2_4, pkgs, cacert }:
7 gemConfig = defaultGemConfig // {
8 kostya-sigar = attrs: {
9 buildInputs = with pkgs; [ pkgs.perl ];
13 varDir = "/var/lib/diaspora_immae";
14 socketsDir = "/run/diaspora";
15 diaspora = stdenv.mkDerivation (fetchedGithub ./diaspora.json // rec {
17 patch -p1 < ${./ldap.patch}
23 secret_token = writeText "secret_token.rb" ''
24 Diaspora::Application.config.secret_key_base = '${env.secret_token}'
26 config = writeText "diaspora.yml" ''
29 url: "https://diaspora.immae.eu/"
30 certificate_authorities: '${cacert}/etc/ssl/certs/ca-bundle.crt'
31 redis: '${env.redis_url}'
39 listen: '${socketsDir}/diaspora.sock'
40 rails_environment: 'production'
52 enable_registrations: false
71 sender_address: 'diaspora@immae.eu'
75 location: '/run/wrappers/bin/sendmail'
78 podmin_email: 'diaspora@immae.eu'
88 skip_email_confirmation: true
90 bind_dn: "cn=diaspora,ou=services,dc=immae,dc=eu"
91 bind_pw: "${env.ldap.password}"
92 search_base: "dc=immae,dc=eu"
93 search_filter: "(&(memberOf=cn=users,cn=diaspora,ou=services,dc=immae,dc=eu)(uid=%{username}))"
99 database_config = writeText "database.yml" ''
100 postgresql: &postgresql
102 host: "${env.postgresql.socket}"
103 port: "${env.postgresql.port}"
104 username: "${env.postgresql.user}"
105 password: "${env.postgresql.password}"
113 database: diaspora_development
116 database: ${env.postgresql.database}
119 database: "diaspora_test"
122 database: diaspora_integration1
125 database: diaspora_integration2
128 railsRoot = stdenv.mkDerivation {
129 name = "diaspora_immae";
131 builder = writeText "build_diaspora_immae" ''
136 tar -czf public/source.tar.gz ./{app,db,lib,script,Gemfile,Gemfile.lock,Rakefile,config.ru}
137 ln -s ${database_config} config/database.yml
138 ln -s ${config} config/diaspora.yml
139 ln -s ${secret_token} config/initializers/secret_token.rb
140 ln -sf ../../../../../../${varDir}/schedule.yml config/schedule.yml
141 ln -sf ../../../../../../${varDir}/oidc_key.pem config/oidc_key.pem
142 ln -sf ../../../../../../${varDir}/uploads public/uploads
143 RAILS_ENV=production ${gems}/bin/rake assets:precompile
145 ln -sf ../../../../../${varDir}/tmp tmp
146 ln -sf ../../../../../${varDir}/log log
148 propagatedBuildInputs = [ gems pkgs.nodejs pkgs.which pkgs.git ];
152 inherit railsRoot varDir socketsDir gems;
153 railsSocket = "${socketsDir}/diaspora.sock";