====== Information ====== * Grav ((https://getgrav.org/)) * develop ((https://github.com/getgrav/grav/tree/develop)) * [[Information:Realm of Espionage]] * https://realmofespionage.xyz ===== Screenshots ===== * [[https://postimg.cc/t1bf1PJ6|Postimages]] * [[https://imgur.com/a/7HVBsoU|Imgur]] * [[https://wayback-api.archive.org/web/20240629194530/http://web.archive.org/screenshot/https://realmofespionage.xyz/|Wayback Machine]] ===== Notes ===== * 2024/06/29: Grav is //particularly// annoying about needing a svg logo instead of being able to render it plaintext, and I can't figure out how to customize footer text seemingly without a theme override ===== Prerequisites ===== * [[windows:10|Windows 10]] * [[windows;servers;nginx_php_php-cgi|nginx + PHP + PHP-CGI]] * [[windows;servers;nginx;lets_encrypt|Certbot (Let's Encrypt)]] ====== Dependencies ====== * https://learn.getgrav.org/17/basics/requirements ===== Git ===== * https://www.git-scm.com/download/win * Last tested: ''Git-2.45.2-64-bit.exe'' * Git from the command line and also from 3rd-party software ===== Composer ===== * https://getcomposer.org/download/ * Last tested version: ''v2.7.7'' ====== Download Source ====== git clone --branch "develop" --depth "1" --recurse-submodules "https://github.com/getgrav/grav.git" "C:\www\main" explorer "C:\www\main" ====== Environment ====== ===== PHP ===== notepad++ "%SystemDrive%\www\php\main-php.ini" [PHP] extension_dir = ".\ext" extension="curl" extension="gd" extension="mbstring" extension="openssl" extension="zip" [Date] date.timezone = "America/New_York" ===== Composer ===== * :?: This expects ''php'' in PATH which Composer's installer does, but unsure how PHP updates will be handled CD "%SystemDrive%\www\main\" && php -c "%SystemDrive%\www\php\main-php.ini" "%ProgramData%\ComposerSetup\bin\composer.phar" install --no-dev -o ===== Grav CLI ===== * :?: This expects ''php'' in PATH which Composer's installer does, but unsure how PHP updates will be handled CD "%SystemDrive%\www\main\" && php "%SystemDrive%\www\main\bin\grav" install ====== nginx + PHP-CGI Configuration ====== ===== PHP-CGI ===== * https://github.com/getgrav/grav/blob/master/webserver-configs/nginx.conf notepad++ "%SystemDrive%\www\nginx-default.d\main.conf" # PHP-CGI location ~ \.php$ { fastcgi_pass 127.0.0.1:9001; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; } ===== Server Block ===== notepad++ "%SystemDrive%\www\nginx-vhosts.d\main.conf" server { listen "443" "ssl"; http2 "on"; server_name "realmofespionage.xyz"; root "C:/www/main"; index "index.php"; include C:/www/nginx-default.d/main.conf; include C:/www/nginx-default.d/headers.conf; client_max_body_size "30M"; # add_header Content-Security-Policy "default-src "self"; script-src "self" "unsafe-inline" "unsafe-eval"; style-src "self" "unsafe-inline"" always; # access_log logs/main-access.log; # error_log logs/main-error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; } location ~* /(system|vendor)/.*\.(txt|xml|md|html|htm|shtml|shtm|json|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ { return 403; } location ~* /user/.*\.(txt|md|json|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ { return 403; } location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; } } "%UserProfile%\Desktop\nginx Reload.bat" ====== Initial Setup ====== * https://realmofespionage.xyz ====== Pages ====== ===== Home ===== notepad++ "%SystemDrive%\www\main\user\pages\01.home" --- title: Home body_classes: title-center title-h1h2 --- Welcome! At Realm of Espionage, I offer unique computer optimization services, and present my wealth of knowledge of self-hosting websites and services on my wiki, [RoE | Wiki](https://wiki.realmofespionage.xyz/?target=_blank). This website is an active work in-progress ([notes](https://wiki.realmofespionage.xyz/windows;servers;nginx;grav?target=_blank))! ====== CSS ====== notepad++ "%SystemDrive%\www\main\user\themes\quark\css\custom.css" /* Link Color */ body a { color: #3D8BFF; } /* Header */ /* Blue background */ #header { background: #3D8BFF!important; } /* Header */ /* White text (links) */ #header a { color: #FFFFFF!important; } /* Header */ /* Hide logo (desktop) */ #header .logo svg { visibility: hidden; } /* Header */ /* Hide logo (mobile) */ .mobile-logo svg { visibility: hidden; } /* Footer */ /* Dark-gray background */ .bg-gray { background: #484848!important; } /* End */ ====== Batch Files ====== ===== PHP-CGI ===== * This is using a sort-of hard-coded path for PHP instead of assuming it's in PATH notepad++ "%UserProfile%\Desktop\Main php-cgi.bat" CD "C:\php-"*"-nts-Win32-vs16-x64\" SET PHP_FCGI_MAX_REQUESTS="0" SET PHP_FCGI_CHILDREN="1" START "Main PHP-CGI" php-cgi.exe -b "127.0.0.1:9001" -c "%SystemDrive%\www\php\main-php.ini" :: End "%UserProfile%\Desktop\Main php-cgi.bat"