-{ checkEnv, fetchedGithub, stdenv, defaultGemConfig, writeText, bundlerEnv, ruby_2_4, pkgs, cacert }:
+{ env, fetchedGithub, stdenv, defaultGemConfig, writeText, bundlerEnv, ruby_2_4, pkgs, cacert }:
let
gems = bundlerEnv {
name = "diaspora-env";
};
varDir = "/var/lib/diaspora_immae";
socketsDir = "/run/diaspora";
- buildInputs = [ gems ] ++ (with pkgs; [
- git redis imagemagick libxslt nodejs
- jemalloc cacert ruby_2_4
- openssl postgresql curl libnghttp2
- pkgconfig which
- ]);
diaspora = stdenv.mkDerivation (fetchedGithub ./diaspora.json // rec {
buildPhase = ''
- export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
- export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
-
patch -p1 < ${./ldap.patch}
'';
installPhase = ''
cp -a . $out
'';
- propagatedBuildInputs = buildInputs;
});
- secret_token = assert checkEnv "NIXOPS_DIASPORA_SECRET_TOKEN";
- writeText "secret_token.rb" ''
- Diaspora::Application.config.secret_key_base = '${builtins.getEnv "NIXOPS_DIASPORA_SECRET_TOKEN"}'
+ secret_token = writeText "secret_token.rb" ''
+ Diaspora::Application.config.secret_key_base = '${env.secret_token}'
'';
- config =
- assert checkEnv "NIXOPS_DIASPORA_LDAP_PASSWORD";
- writeText "diaspora.yml" ''
+ config = writeText "diaspora.yml" ''
configuration:
environment:
url: "https://diaspora.immae.eu/"
- certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'
- redis: 'redis://localhost:6379/15'
+ certificate_authorities: '${cacert}/etc/ssl/certs/ca-bundle.crt'
+ redis: '${env.redis_url}'
sidekiq:
s3:
assets:
skip_email_confirmation: true
use_bind_dn: true
bind_dn: "cn=diaspora,ou=services,dc=immae,dc=eu"
- bind_pw: "${builtins.getEnv "NIXOPS_DIASPORA_LDAP_PASSWORD"}"
+ bind_pw: "${env.ldap.password}"
search_base: "dc=immae,dc=eu"
search_filter: "(&(memberOf=cn=users,cn=diaspora,ou=services,dc=immae,dc=eu)(uid=%{username}))"
production:
development:
environment:
'';
- database_config =
- assert checkEnv "NIXOPS_DIASPORA_SQL_PASSWORD";
- writeText "database.yml" ''
+ database_config = writeText "database.yml" ''
postgresql: &postgresql
adapter: postgresql
host: db-1.immae.eu
port: 5432
username: "diaspora"
- password: "${builtins.getEnv "NIXOPS_DIASPORA_SQL_PASSWORD"}"
+ password: "${env.postgresql.password}"
encoding: unicode
common: &common
<<: *postgresql
ln -sf ../../../../../${varDir}/tmp tmp
ln -sf ../../../../../${varDir}/log log
'';
- propagatedBuildInputs = buildInputs;
+ propagatedBuildInputs = [ gems pkgs.nodejs pkgs.which pkgs.git ];
};
in
{