-with import ../../libs.nix;
-with nixpkgs_unstable;
+{ stdenv, fetchurl, checkEnv, writeText, lib, phpPackages, php }:
let
nextcloud = let
# FIXME: initial sync
# FIXME: backup
buildApp = { appName, version, url, sha256, installPhase ? "mkdir -p $out && cp -R . $out/" }:
- pkgs.stdenv.mkDerivation rec {
+ stdenv.mkDerivation rec {
name = "nextcloud-app-${appName}-${version}";
inherit version;
phases = "unpackPhase installPhase";
assert checkEnv "NIXOPS_NEXTCLOUD_INSTANCE_ID";
assert checkEnv "NIXOPS_NEXTCLOUD_SECRET";
assert checkEnv "NIXOPS_NEXTCLOUD_REDIS_DB_INDEX";
- pkgs.writeText "config.php" ''
+ writeText "config.php" ''
<?php
$CONFIG = array (
'instanceid' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_INSTANCE_ID"}',
'dbtype' => 'pgsql',
'version' => '15.0.0.10',
'dbname' => 'webapps',
- 'dbhost' => '/tmp',
+ 'dbhost' => '/run/postgresql',
'dbtableprefix' => 'oc_',
'dbuser' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_DB_USER"}',
'dbpassword' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_DB_PASSWORD"}',
rm -r $out/config
ln -sf ${config} $out/config
${builtins.concatStringsSep "\n" (
- pkgs.lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/apps/${name}") apps
+ lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/apps/${name}") apps
)}
'';
meta = {
description = "Sharing solution for files, calendars, contacts and more";
homepage = https://nextcloud.com;
- maintainers = with stdenv.lib.maintainers; [ schneefux bachp globin fpletz ];
- license = stdenv.lib.licenses.agpl3Plus;
- platforms = with stdenv.lib.platforms; unix;
+ maintainers = with lib.maintainers; [ schneefux bachp globin fpletz ];
+ license = lib.licenses.agpl3Plus;
+ platforms = with lib.platforms; unix;
};
};
activationScript = {
deps = [ ];
text = ''
install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
'';
};
apache = {
group = "wwwrun";
modules = [ "proxy_fcgi" ];
vhostConf = ''
+ SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
<Directory ${webRoot}>
AcceptPathInfo On
DirectoryIndex index.php
phpFpm = rec {
basedir = builtins.concatStringsSep ":" (
[ webRoot varDir config ]
- ++ pkgs.lib.attrsets.mapAttrsToList (name: value: value) apps);
+ ++ lib.attrsets.mapAttrsToList (name: value: value) apps);
socket = "/var/run/phpfpm/nextcloud.sock";
+ phpConfig = ''
+ extension=${phpPackages.redis}/lib/php/extensions/redis.so
+ extension=${phpPackages.apcu}/lib/php/extensions/apcu.so
+ zend_extension=${php}/lib/php/extensions/opcache.so
+ '';
pool = ''
listen = ${socket}
user = ${apache.user}
php_admin_value[output_buffering] = 0
php_admin_value[max_execution_time] = 1800
php_admin_value[zend_extension] = "opcache"
- ;php_value[opcache.enable] = 1
+ php_value[opcache.enable] = 1
php_value[opcache.enable_cli] = 1
php_value[opcache.interned_strings_buffer] = 8
php_value[opcache.max_accelerated_files] = 10000
php_admin_value[memory_limit] = 512M
php_admin_value[open_basedir] = "${basedir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
'';
};
};