Restructure web development for hikari
Nix is not needed, it is generated. Try to find a better structure for web development setup. The initial steps with httpd and php fpm work now.
This commit is contained in:
parent
0ece6835b6
commit
1aa49f0eff
|
@ -10,6 +10,8 @@
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
./cachix.nix
|
./cachix.nix
|
||||||
|
|
||||||
|
./web-development.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
|
@ -1 +0,0 @@
|
||||||
/etc/static/nix/nix.conf
|
|
|
@ -1 +0,0 @@
|
||||||
/etc/static/nix/registry.json
|
|
31
systems/hikari/web-development.nix
Normal file
31
systems/hikari/web-development.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./web-development/daniel-siepmann.localhost.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
httpd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
user = "daniels";
|
||||||
|
|
||||||
|
adminAddr = "apache@hikari.localhost";
|
||||||
|
|
||||||
|
extraModules = [
|
||||||
|
"info"
|
||||||
|
"rewrite"
|
||||||
|
"proxy"
|
||||||
|
"proxy_fcgi"
|
||||||
|
];
|
||||||
|
|
||||||
|
virtualHosts."localhost".locations."/server-info" = {
|
||||||
|
extraConfig = ''
|
||||||
|
SetHandler server-info
|
||||||
|
Require local
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
85
systems/hikari/web-development/daniel-siepmann.localhost.nix
Normal file
85
systems/hikari/web-development/daniel-siepmann.localhost.nix
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
domain = "daniel-siepmann.localhost";
|
||||||
|
documentRoot = "/var/projects/own/daniel-siepmann.de/project/public/";
|
||||||
|
in {
|
||||||
|
services = {
|
||||||
|
httpd.virtualHosts.${domain} = {
|
||||||
|
# TODO: Add SSL
|
||||||
|
# forceSSL = true;
|
||||||
|
# addSSL = true;
|
||||||
|
inherit documentRoot;
|
||||||
|
extraConfig = ''
|
||||||
|
<Directory ${documentRoot}>
|
||||||
|
AllowOverride None
|
||||||
|
Require all granted
|
||||||
|
DirectoryIndex index.php
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
# Store the current location in an environment variable CWD to use
|
||||||
|
# mod_rewrite in .htaccess files without knowing the RewriteBase
|
||||||
|
RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$
|
||||||
|
RewriteRule ^.*$ - [E=CWD:%2]
|
||||||
|
|
||||||
|
# Rule for versioned static files, configured through:
|
||||||
|
# - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
|
||||||
|
# - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']
|
||||||
|
# IMPORTANT: This rule has to be the very first RewriteCond in order to work!
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ %{ENV:CWD}$1.$3 [L]
|
||||||
|
|
||||||
|
# Access block for folders
|
||||||
|
RewriteRule _(?:recycler|temp)_/ - [F]
|
||||||
|
RewriteRule fileadmin/templates/.*\.(?:txt|ts)$ - [F]
|
||||||
|
RewriteRule ^(?:vendor|typo3_src|typo3temp/var) - [F]
|
||||||
|
RewriteRule (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ - [F]
|
||||||
|
|
||||||
|
# Block access to all hidden files and directories with the exception of
|
||||||
|
# the visible content from within the `/.well-known/` hidden directory (RFC 5785).
|
||||||
|
RewriteCond %{REQUEST_URI} "!(^|/)\.well-known/([^./]+./?)+$" [NC]
|
||||||
|
RewriteCond %{SCRIPT_FILENAME} -d [OR]
|
||||||
|
RewriteCond %{SCRIPT_FILENAME} -f
|
||||||
|
RewriteRule (?:^|/)\. - [F]
|
||||||
|
|
||||||
|
# Stop rewrite processing, if we are in any other known directory
|
||||||
|
# NOTE: Add your additional local storages here
|
||||||
|
RewriteRule ^(?:fileadmin/|typo3conf/|typo3temp/|uploads/) - [L]
|
||||||
|
|
||||||
|
# If the file/symlink/directory does not exist but is below /typo3/, redirect to the TYPO3 Backend entry point.
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-l
|
||||||
|
RewriteCond %{REQUEST_URI} ^/typo3/.*$
|
||||||
|
RewriteRule ^typo3/(.*)$ %{ENV:CWD}typo3/index.php [QSA,L]
|
||||||
|
|
||||||
|
# If the file/symlink/directory does not exist => Redirect to index.php.
|
||||||
|
# For httpd.conf, you need to prefix each '%{REQUEST_FILENAME}' with '%{DOCUMENT_ROOT}'.
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-l
|
||||||
|
RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
<FilesMatch "\.php$">
|
||||||
|
SetHandler "proxy:unix:${config.services.phpfpm.pools."${domain}".socket}|fcgi://${domain}/"
|
||||||
|
</FilesMatch>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
phpfpm.pools.${domain} = {
|
||||||
|
inherit (config.services.httpd) user group;
|
||||||
|
phpPackage = pkgs.php82;
|
||||||
|
settings = {
|
||||||
|
"listen.owner" = config.services.httpd.user;
|
||||||
|
"listen.group" = config.services.httpd.group;
|
||||||
|
"pm" = "static";
|
||||||
|
"pm.max_children" = 15;
|
||||||
|
};
|
||||||
|
phpEnv = {
|
||||||
|
TYPO3_CONTEXT = "Development/dsiepmann";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue