X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=virtual%2Fmodules%2Fwebsites%2Ftools%2Ftools%2Fwallabag.nix;h=4bda8089a5d3df7c196a25e4f5f71209478defaf;hp=22089dad9da07b8576a195f5bdfb3a74eb55da9b;hb=6f4574e7b57043340a2a520c4bbeb17dde72e0ea;hpb=9d90e7e281e8f4cf9371c17c812a1ac9c08aa66d diff --git a/virtual/modules/websites/tools/tools/wallabag.nix b/virtual/modules/websites/tools/tools/wallabag.nix index 22089da..4bda808 100644 --- a/virtual/modules/websites/tools/tools/wallabag.nix +++ b/virtual/modules/websites/tools/tools/wallabag.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, writeText, env, phpPackages, php, which }: +{ stdenv, fetchurl, writeText, env, composerEnv, phpPackages, php, which }: let wallabag = rec { varDir = "/var/lib/wallabag"; @@ -7,10 +7,10 @@ let parameters: database_driver: pdo_pgsql database_driver_class: Wallabag\CoreBundle\Doctrine\DBAL\Driver\CustomPostgreSQLDriver - database_host: db-1.immae.eu - database_port: null - database_name: webapps - database_user: wallabag + database_host: ${env.postgresql.socket} + database_port: ${env.postgresql.port} + database_name: ${env.postgresql.database} + database_user: ${env.postgresql.user} database_password: ${env.postgresql.password} database_path: null database_table_prefix: wallabag_ @@ -34,10 +34,10 @@ let rabbitmq_user: guest rabbitmq_password: guest rabbitmq_prefetch_count: 10 - redis_scheme: tcp - redis_host: localhost - redis_port: 6379 - redis_path: null + redis_scheme: unix + redis_host: null + redis_port: null + redis_path: ${env.redis.socket} redis_password: null sites_credentials: { } ldap_enabled: true @@ -56,30 +56,55 @@ let ldap_name_attribute: cn ldap_enabled_attribute: null ''; - webappDir = stdenv.mkDerivation rec { + webappDir = composerEnv.buildPackage rec { + packages = { + "fr3d/ldap-bundle" = { + targetDir = ""; + src = composerEnv.buildZipPackage { + name = "fr3d-ldap-bundle-5a8927c11af45fa06331b97221c6da1a4a237475"; + src = fetchurl { + url = https://api.github.com/repos/Maks3w/FR3DLdapBundle/zipball/5a8927c11af45fa06331b97221c6da1a4a237475; + sha256 = "168zkd82j200wd6h0a3lq81g5s2pifg889rv27q2g429nppsbfxc"; + }; + }; + }; + "zendframework/zend-ldap" = { + targetDir = ""; + src = composerEnv.buildZipPackage { + name = "zendframework-zend-ldap-b63c7884a08d3a6bda60ebcf7d6238cf8ad89f49"; + src = fetchurl { + url = https://api.github.com/repos/zendframework/zend-ldap/zipball/b63c7884a08d3a6bda60ebcf7d6238cf8ad89f49; + sha256 = "0mn4yqnb5prqhrbbybmw1i2rx7xf4s4wagbdq9qi55fa0vk3jgw9"; + }; + }; + }; + }; + noDev = true; + doRemoveVendor = false; # Beware when upgrading, I probably messed up with the migrations table # (due to a psql bug in wallabag) - version = "2.3.2"; + version = "2.3.6"; name = "wallabag-${version}"; src = fetchurl { url = "https://static.wallabag.org/releases/wallabag-release-${version}.tar.gz"; - sha256 = "17yczdvgl43j6wa7hksxi2b51afvyd56vdya6hbbv68iiba4jyh4"; + sha256 = "0m0dy3r94ks5pfxyb9vbgrsm0vrwdl3jd5wqwg4f5vd107lq90q1"; }; + unpackPhase = '' + unpackFile "$src" + sourceRoot=${version} + src=$PWD/${version} + ''; patches = [ ./wallabag_ldap.patch ]; - dontBuild = "true"; - installPhase = '' - cp -a . $out - cd $out - export SYMFONY_ENV=prod - php -d memory_limit=-1 ${phpPackages.composer}/libexec/composer/composer.phar require --update-no-dev -o --prefer-dist fr3d/ldap-bundle - rm -rf web/assets var/cache app/config/parameters.yml data - mv var var_old + preInstall = '' + export SYMFONY_ENV="prod" + ''; + postInstall = '' + rm -rf web/assets var/{cache,logs,sessions} app/config/parameters.yml data ln -sf ${parameters} app/config/parameters.yml - ln -sf ../../../../../${varDir}/var var + ln -sf ../../../../../../${varDir}/var/{cache,logs,sessions} var ln -sf ../../../../../${varDir}/data data ln -sf ../../../../../../${varDir}/assets web/assets ''; - buildInputs = [ php phpPackages.composer ]; }; activationScript = '' install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \ @@ -87,19 +112,20 @@ let if [ ! -f "${varDir}/currentWebappDir" -o \ "${webappDir}" != "$(cat ${varDir}/currentWebappDir 2>/dev/null)" ]; then pushd ${webappDir} > /dev/null - $wrapperDir/sudo -u wwwrun ./bin/console --env=prod doctrine:migrations:migrate --no-interaction $wrapperDir/sudo -u wwwrun ./bin/console --env=prod cache:clear + $wrapperDir/sudo -u wwwrun ./bin/console --env=prod doctrine:migrations:migrate --no-interaction popd > /dev/null echo -n "${webappDir}" > ${varDir}/currentWebappDir fi ''; webRoot = "${webappDir}/web"; + # Domain migration: Table wallabag_entry contains whole + # https://tools.immae.eu/wallabag domain name in preview_picture apache = { user = "wwwrun"; group = "wwwrun"; modules = [ "proxy_fcgi" ]; vhostConf = '' - Alias /assets "${varDir}/assets" Alias /wallabag "${webRoot}" AllowOverride None