diff options
| author | Syndamia <kamen@syndamia.com> | 2025-01-18 13:08:27 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-01-19 07:46:17 +0200 |
| commit | 367a7f80993306f42ae18d07a56b510fc1402b98 (patch) | |
| tree | 276a5308b24da5ae10fe57cfa80659ccc27f24eb | |
| parent | 154356fe38d79835cf3fb28aba213827e21de72b (diff) | |
| download | nowayforward_human-367a7f80993306f42ae18d07a56b510fc1402b98.tar nowayforward_human-367a7f80993306f42ae18d07a56b510fc1402b98.tar.gz nowayforward_human-367a7f80993306f42ae18d07a56b510fc1402b98.zip | |
feat: Add nix setup for apache hosting
| -rw-r--r-- | apache/httpd.conf.tpl | 29 | ||||
| -rw-r--r-- | apache/sites/nowayforward_human.conf.tpl | 4 | ||||
| -rw-r--r-- | shell.nix | 42 |
3 files changed, 75 insertions, 0 deletions
diff --git a/apache/httpd.conf.tpl b/apache/httpd.conf.tpl new file mode 100644 index 0000000..695ed27 --- /dev/null +++ b/apache/httpd.conf.tpl @@ -0,0 +1,29 @@ +ServerRoot ${SERVER_ROOT} +Listen 127.0.0.1:${SERVER_PORT} + +LoadModule proxy_module modules/mod_proxy.so +LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so + +LoadModule mpm_prefork_module modules/mod_mpm_prefork.so +# LoadModule mpm_worker_module modules/mod_mpm_worker.so +# LoadModule mpm_event_module /path/to/modules/mod_mpm_event.so + + +LoadModule dir_module modules/mod_dir.so +LoadModule authz_core_module modules/mod_authz_core.so +LoadModule unixd_module modules/mod_unixd.so +LoadModule mime_module modules/mod_mime.so +#LoadModule log_config_module modules/mod_log_config.so + +Define ROOT ${ROOT_DIR} +Include ${ROOT_DIR}/sites/*.conf + +ServerName localhost + +ErrorLog "${ROOT_DIR}/error.log" +PidFile "${ROOT_DIR}/httpd.pid" + +User ${USER} +Group users + +AddType application/javascript .js diff --git a/apache/sites/nowayforward_human.conf.tpl b/apache/sites/nowayforward_human.conf.tpl new file mode 100644 index 0000000..30ebe7e --- /dev/null +++ b/apache/sites/nowayforward_human.conf.tpl @@ -0,0 +1,4 @@ +<VirtualHost *:8000> + ServerName localhost + DocumentRoot ${REPOSITORY}/views +</VirtualHost> @@ -4,18 +4,57 @@ let shellDrv = { mkShell, + gettext, mariadb, apacheHttpd, ... }: mkShell { nativeBuildInputs = [ + gettext mariadb apacheHttpd ]; # Thanks https://github.com/JianZcar/LAMP-nix-shell-env/blob/main/default.nix shellHook = '' + # + # Apache2 + # + + : ''${SERVER_ROOT:=${apacheHttpd}} + : ''${SERVER_PORT:=8000} + : ''${ROOT_DIR:=$HOME/.config/apache} + : ''${REPOSITORY:=${builtins.getEnv "PWD"}} + export SERVER_ROOT SERVER_PORT ROOT_DIR REPOSITORY + + if [ ! -d "$ROOT_DIR" ] + then + echo 'Installing apache config...' + mkdir -p "$ROOT_DIR" + for file in $(find ./apache -type f) + do + file="''${file#./apache/}" + + dir="''${file%/*}" + [ "$dir" != "$file" ] && mkdir -p "$ROOT_DIR/$dir" + + if [ "$file" != "''${file%.tpl}" ] + then + envsubst < "./apache/$file" > "$ROOT_DIR/''${file%.tpl}" + else + cp "./apache/$file" "$ROOT_DIR/$file" + fi + done + fi + + echo 'Starting httpd...' + httpd -f $ROOT_DIR/httpd.conf + + # + # Database + # + : ''${MYSQL_HOME:="$HOME/.config/mysql"} : ''${MYSQL_DATADIR:="$MYSQL_HOME/data"} : ''${MYSQL_PID_FILE:="$MYSQL_HOME/mysql.pid"} @@ -74,6 +113,9 @@ let # Start user's shell "$(getent passwd $USER | cut -d : -f 7)" + echo 'Shutting down httpd...' + httpd -f $ROOT_DIR/httpd.conf -k stop + # Stop mysql echo 'Shutting down mysql...' mysqladmin \ |
