Enabled access to binaries of needed tools, and worker daemons can be enabled for phabricator #3306
This commit is contained in:
parent
dae0d770fc
commit
fe3f7716f0
|
@ -165,6 +165,7 @@
|
||||||
./services/misc/nix-gc.nix
|
./services/misc/nix-gc.nix
|
||||||
./services/misc/nixos-manual.nix
|
./services/misc/nixos-manual.nix
|
||||||
./services/misc/nix-ssh-serve.nix
|
./services/misc/nix-ssh-serve.nix
|
||||||
|
./services/misc/phd.nix
|
||||||
./services/misc/rippled.nix
|
./services/misc/rippled.nix
|
||||||
./services/misc/rogue.nix
|
./services/misc/rogue.nix
|
||||||
./services/misc/siproxd.nix
|
./services/misc/siproxd.nix
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.services.phd;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.phd = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Enable daemons for phabricator.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
systemd.services.phd = {
|
||||||
|
path = [ pkgs.phabricator pkgs.php pkgs.mercurial pkgs.git pkgs.subversion ];
|
||||||
|
|
||||||
|
after = [ "httpd.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.phabricator}/phabricator/bin/phd start";
|
||||||
|
ExecStop = "${pkgs.phabricator}/phabricator/bin/phd start";
|
||||||
|
User = "wwwrun";
|
||||||
|
RestartSec = "30s";
|
||||||
|
Restart = "always";
|
||||||
|
StartLimitInterval = "1m";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -1,35 +1,30 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
phabricatorRoot = pkgs.stdenv.mkDerivation rec {
|
phabricatorRoot = pkgs.phabricator;
|
||||||
version = "2014-05-12";
|
|
||||||
name = "phabricator-${version}";
|
|
||||||
srcLibphutil = pkgs.fetchgit {
|
|
||||||
url = git://github.com/facebook/libphutil.git;
|
|
||||||
rev = "2f3b5a1cf6ea464a0250d4b1c653a795a90d2716";
|
|
||||||
sha256 = "9598cec400984dc149162f1e648814a54ea0cd34fcd529973dc83f5486fdd9fd";
|
|
||||||
};
|
|
||||||
srcArcanist = pkgs.fetchgit {
|
|
||||||
url = git://github.com/facebook/arcanist.git;
|
|
||||||
rev = "54c377448db8dbc40f0ca86d43c837d30e493485";
|
|
||||||
sha256 = "086db3c0d1154fbad23e7c6def31fd913384ee20247b329515838b669c3028e0";
|
|
||||||
};
|
|
||||||
srcPhabricator = pkgs.fetchgit {
|
|
||||||
url = git://github.com/facebook/phabricator.git;
|
|
||||||
rev = "1644ef185ecf1e9fca3eb6b16351ef46b19d110f";
|
|
||||||
sha256 = "e1135e4ba76d53f48aad4161563035414ed7e878f39a8a34a875a01b41b2a084";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildCommand = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp -R ${srcLibphutil} $out/libphutil
|
|
||||||
cp -R ${srcArcanist} $out/arcanist
|
|
||||||
cp -R ${srcPhabricator} $out/phabricator
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
enablePHP = true;
|
enablePHP = true;
|
||||||
extraApacheModules = [ "mod_rewrite" ];
|
extraApacheModules = [ "mod_rewrite" ];
|
||||||
DocumentRoot = "${phabricatorRoot}/phabricator/webroot";
|
DocumentRoot = "${phabricatorRoot}/phabricator/webroot";
|
||||||
|
|
||||||
|
options = {
|
||||||
|
git = mkOption {
|
||||||
|
default = true;
|
||||||
|
description = "Enable git repositories.";
|
||||||
|
};
|
||||||
|
mercurial = mkOption {
|
||||||
|
default = true;
|
||||||
|
description = "Enable mercurial repositories.";
|
||||||
|
};
|
||||||
|
subversion = mkOption {
|
||||||
|
default = true;
|
||||||
|
description = "Enable subversion repositories.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
DocumentRoot ${phabricatorRoot}/phabricator/webroot
|
DocumentRoot ${phabricatorRoot}/phabricator/webroot
|
||||||
|
|
||||||
|
@ -38,4 +33,18 @@ in {
|
||||||
RewriteRule ^/favicon.ico - [L,QSA]
|
RewriteRule ^/favicon.ico - [L,QSA]
|
||||||
RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
|
RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
extraServerPath = [
|
||||||
|
"${pkgs.which}"
|
||||||
|
"${pkgs.diffutils}"
|
||||||
|
] ++
|
||||||
|
(if config.mercurial then ["${pkgs.mercurial}"] else []) ++
|
||||||
|
(if config.subversion then ["${pkgs.subversion}"] else []) ++
|
||||||
|
(if config.git then ["${pkgs.git}"] else []);
|
||||||
|
|
||||||
|
startupScript = pkgs.writeScript "activatePhabricator" ''
|
||||||
|
mkdir -p /var/repo
|
||||||
|
chown wwwrun /var/repo
|
||||||
|
'';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,9 +32,16 @@ import ./make-test.nix ({ pkgs, ... }: {
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
phd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
mysql = {
|
mysql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.mysql;
|
package = pkgs.mysql;
|
||||||
|
extraOptions = ''
|
||||||
|
sql_mode=STRICT_ALL_TABLES
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
{ stdenv, fetchgit, pkgs, ... }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
version = "2014-07-16";
|
||||||
|
name = "phabricator-${version}";
|
||||||
|
srcLibphutil = pkgs.fetchgit {
|
||||||
|
url = git://github.com/facebook/libphutil.git;
|
||||||
|
rev = "48a04395363d6c1dd9f66057bd11fd70d4665ba9";
|
||||||
|
sha256 = "d570d2c1e68471c2eda35b8722d8083bcc13163fbd5c944529464f2c7b55a2e5";
|
||||||
|
};
|
||||||
|
srcArcanist = pkgs.fetchgit {
|
||||||
|
url = git://github.com/facebook/arcanist.git;
|
||||||
|
rev = "97501da16416fbfdc6e84bd60abcbf5ad9506225";
|
||||||
|
sha256 = "9031c4ae228bdc986131e0c93c98fb73290bb0e297be1ec32f22ab09cdacafa3";
|
||||||
|
};
|
||||||
|
srcPhabricator = pkgs.fetchgit {
|
||||||
|
url = git://github.com/phacility/phabricator.git;
|
||||||
|
rev = "7ac5abb97934f7399b67762aa98f59f667711bf3";
|
||||||
|
sha256 = "6a1d449597ae4432e40a3e6cdb14e3a5a8a40e019f3930493064c35911f2adcc";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp -R ${srcLibphutil} $out/libphutil
|
||||||
|
cp -R ${srcArcanist} $out/arcanist
|
||||||
|
cp -R ${srcPhabricator} $out/phabricator
|
||||||
|
'';
|
||||||
|
}
|
|
@ -11421,6 +11421,8 @@ let
|
||||||
|
|
||||||
pgfplots = callPackage ../tools/typesetting/tex/pgfplots { };
|
pgfplots = callPackage ../tools/typesetting/tex/pgfplots { };
|
||||||
|
|
||||||
|
phabricator = callPackage ../misc/phabricator { };
|
||||||
|
|
||||||
pjsip = callPackage ../applications/networking/pjsip { };
|
pjsip = callPackage ../applications/networking/pjsip { };
|
||||||
|
|
||||||
polytable = callPackage ../tools/typesetting/tex/polytable { };
|
polytable = callPackage ../tools/typesetting/tex/polytable { };
|
||||||
|
|
Loading…
Reference in New Issue