mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-21 09:58:26 +00:00
Prepare nixos setup for full-text-search and new consumedir settings
This commit is contained in:
35
nix/solr.nix
Normal file
35
nix/solr.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
# This module sets up solr with one core. It is a bit tedious…. If you
|
||||
# know a better solution, please let me know.
|
||||
{
|
||||
|
||||
services.solr = {
|
||||
enable = true;
|
||||
};
|
||||
# This is needed to run solr script as user solr
|
||||
users.users.solr.useDefaultShell = true;
|
||||
|
||||
systemd.services.solr-init =
|
||||
let
|
||||
solrPort = toString config.services.solr.port;
|
||||
initSolr = ''
|
||||
if [ ! -f ${config.services.solr.stateDir}/docspell_core ]; then
|
||||
while ! echo "" | ${pkgs.telnet}/bin/telnet localhost ${solrPort}
|
||||
do
|
||||
echo "Waiting for SOLR become ready..."
|
||||
sleep 1.5
|
||||
done
|
||||
${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh solr -c "${pkgs.solr}/bin/solr create_core -c docspell -p ${solrPort}";
|
||||
touch ${config.services.solr.stateDir}/docspell_core
|
||||
fi
|
||||
'';
|
||||
in
|
||||
{ script = initSolr;
|
||||
after = [ "solr.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
requires = [ "solr.target" ];
|
||||
description = "Create a core at solr";
|
||||
};
|
||||
|
||||
}
|
Reference in New Issue
Block a user