{ env, fetchedGithub, fetchurl, stdenv, writeText, pkgs, cacert }:
let
- listenPort = "18001";
+ listenPort = env.listenPort;
sessionkey = writeText "SESSIONKEY.txt" env.session_key;
apikey = writeText "APIKEY.txt" env.api_key;
jquery = fetchurl {
"favicon": "favicon.ico",
"ip": "127.0.0.1",
- "port" : ${listenPort},
+ "port" : ${env.listenPort},
"showSettingsInAdminPage" : false,
"dbType" : "postgres",
"dbSettings" : {
{ lib, pkgs, config, myconfig, mylibs, ... }:
let
adminer = pkgs.callPackage ../../commons/adminer.nix {};
- ympd = pkgs.callPackage ./ympd.nix {};
+ ympd = pkgs.callPackage ./ympd.nix {
+ env = myconfig.env.tools.ympd;
+ };
ttrss = pkgs.callPackage ./ttrss.nix {
inherit (mylibs) fetchedGithub fetchedGit;
env = myconfig.env.tools.ttrss;
inherit (mylibs) fetchedGithub;
env = myconfig.env.tools.yourls;
};
+ rompr = pkgs.callPackage ./rompr.nix {
+ inherit (mylibs) fetchedGithub;
+ env = myconfig.env.tools.rompr;
+ };
cfg = config.services.myWebsites.tools.tools;
in {
++ ttrss.apache.modules
++ roundcubemail.apache.modules
++ wallabag.apache.modules
- ++ yourls.apache.modules;
+ ++ yourls.apache.modules
+ ++ rompr.apache.modules;
- services.ympd = ympd.config // { enable = false; };
+ services.ympd = ympd.config // { enable = true; };
services.myWebsites.tools.vhostConfs.tools = {
certName = "eldiron";
roundcubemail.apache.vhostConf
wallabag.apache.vhostConf
yourls.apache.vhostConf
+ rompr.apache.vhostConf
];
};
roundcubemail = roundcubemail.phpFpm.pool;
wallabag = wallabag.phpFpm.pool;
yourls = yourls.phpFpm.pool;
+ rompr = rompr.phpFpm.pool;
};
system.activationScripts = {
roundcubemail = roundcubemail.activationScript;
wallabag = wallabag.activationScript;
yourls = yourls.activationScript;
+ rompr = rompr.activationScript;
};
systemd.services.tt-rss = {
--- /dev/null
+{
+ "tag": "1.24",
+ "meta": {
+ "name": "rompr",
+ "url": "https://github.com/fatg3erman/RompR",
+ "branch": "refs/tags/1.24"
+ },
+ "github": {
+ "owner": "fatg3erman",
+ "repo": "RompR",
+ "rev": "0d8f597027ac71b320963fe3f33f461a136312ad",
+ "sha256": "13p3c4whhmvz1vvh9fva5gdx4xji288k108hjdi8b1yn506lzix2",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ lib, env, stdenv, fetchedGithub }:
+let
+ rompr = let
+ in rec {
+ varDir = "/var/lib/rompr";
+ activationScript = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/prefs ${varDir}/albumart ${varDir}/phpSessions
+ '';
+ webRoot = stdenv.mkDerivation (fetchedGithub ./rompr.json // rec {
+ installPhase = ''
+ cp -a . $out
+ ln -sf ../../../../../../${varDir}/prefs $out/prefs
+ ln -sf ../../../../../../${varDir}/albumart $out/albumart
+ '';
+ });
+ apache = {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "headers" "mime" "proxy_fcgi" ];
+ vhostConf = ''
+ Alias /rompr ${webRoot}
+
+ <Directory ${webRoot}>
+ Options Indexes FollowSymLinks
+ DirectoryIndex index.php
+ AllowOverride all
+ Require all granted
+ Order allow,deny
+ Allow from all
+ ErrorDocument 404 /rompr/404.php
+ AddType image/x-icon .ico
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+
+ <Directory ${webRoot}/albumart/small>
+ Header Set Cache-Control "max-age=0, no-store"
+ Header Set Cache-Control "no-cache, must-revalidate"
+ </Directory>
+
+ <Directory ${webRoot}/albumart/asdownloaded>
+ Header Set Cache-Control "max-age=0, no-store"
+ Header Set Cache-Control "no-cache, must-revalidate"
+ </Directory>
+
+ <LocationMatch "^/rompr">
+ Use LDAPConnect
+ Require ldap-group cn=users,cn=mpd,ou=services,dc=immae,dc=eu
+ Require local
+ </LocationMatch>
+ '';
+ };
+ phpFpm = rec {
+ basedir = builtins.concatStringsSep ":" [ webRoot varDir ];
+ socket = "/var/run/phpfpm/rompr.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = RomprPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ php_flag[magic_quotes_gpc] = Off
+ php_flag[track_vars] = On
+ php_flag[register_globals] = Off
+ php_admin_flag[allow_url_fopen] = On
+ php_value[include_path] = ${webRoot}
+ php_admin_value[upload_tmp_dir] = "${varDir}/prefs"
+ php_admin_value[post_max_size] = 32M
+ php_admin_value[upload_max_filesize] = 32M
+ php_admin_value[memory_limit] = 256M
+ '';
+ };
+ };
+in
+ rompr
-{}:
+{ env }:
let
ympd = rec {
config = {
- webPort = "localhost:18001";
- mpd = {
- host = "malige.home.immae.eu";
- port = 6600;
- };
+ webPort = "localhost:${env.listenPort}";
+ mpd = env.mpd;
};
apache = {
modules = [