{ gitweb, writeText, gitolite, git, gitoliteDir, highlight }: rec { varDir = gitoliteDir; webRoot = gitweb; config = writeText "gitweb.conf" '' $git_temp = "/tmp"; # The directories where your projects are. Must not end with a # slash. $projectroot = "${varDir}/repositories"; $projects_list = "${varDir}/projects.list"; $strict_export = "true"; # Base URLs for links displayed in the web interface. our @git_base_url_list = qw(ssh://gitolite@git.immae.eu https://git.immae.eu); $feature{'blame'}{'default'} = [1]; $feature{'avatar'}{'default'} = ['gravatar']; $feature{'highlight'}{'default'} = [1]; @stylesheets = ("gitweb-theme/gitweb.css"); $logo = "gitweb-theme/git-logo.png"; $favicon = "gitweb-theme/git-favicon.png"; $javascript = "gitweb-theme/gitweb.js"; $logo_url = "https://git.immae.eu/"; $projects_list_group_categories = "true"; $projects_list_description_width = 60; $project_list_default_category = "__Others__"; $highlight_bin = "${highlight}/bin/highlight"; ''; apache = rec { user = "wwwrun"; group = "wwwrun"; modules = [ "cgid" ]; webappName = "tools_gitweb"; root = "/run/current-system/webapps/${webappName}"; vhostConf = '' SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/ ScriptAliasMatch \ "(?x)^/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ ${git}/libexec/git-core/git-http-backend/$1 Require all granted DirectoryIndex gitweb.cgi Require all granted AllowOverride None Options ExecCGI FollowSymLinks SetHandler cgi-script SetEnv GITWEB_CONFIG "${config}" ''; }; }