====== Information ====== * Joomla ((https://www.joomla.org)) * [[information;realm_of_espionage|Realm of Espionage]] * https://realmofespionage.xyz ===== Prerequisites ===== * [[windows;10_ltsc_server|Windows 10 (21H2)]] * [[servers;windows;freenginx_php_php-cgi|freenginx + PHP + PHP-CGI]] * [[servers;windows;nginx;lets_encrypt|Certbot (Let's Encrypt)]] * [[programs;windows;git|Git]] * [[servers;windows;mariadb|MariaDB]] ====== Dependencies ====== * https://docs.joomla.org/What_version_of_Joomla!_should_you_use%3F * https://docs.joomla.org/Special:MyLanguage/J5.x:Setting_Up_Your_Local_Environment * https://manual.joomla.org/docs/next/get-started/technical-requirements/ * https://docs.joomla.org/J5.x:Optional_Technical_Requirements ===== Node.js ===== * https://nodejs.org/en/download/current * Last tested: ''node-v25.8.1-x64.msi'' * ''[x]'' Node.js runtime * ''[x]'' npm package manager * ''[ ]'' Online documentation shortcuts * ''[x]'' Add to PATH * ''[x]'' Node.js and npm * ''[x]'' npm modules * ''[ ]'' Automatically install the necessary tools. ====== Download Source ====== * https://github.com/joomla/joomla-cms/commits/7.0-dev/ * https://github.com/joomla/joomla-cms/branches "%ProgramFiles%\Git\bin\git.exe" clone --branch "7.0-dev" --depth "1" --recurse-submodules "https://github.com/joomla/joomla-cms.git" "%SystemDrive%\www\main" ====== Database ====== "%ProgramFiles%\MariaDB 12.3\bin\mariadb.exe" -u "root" CREATE DATABASE joomla_db; CREATE USER 'joomla'@'localhost' IDENTIFIED BY 'x'; GRANT ALL PRIVILEGES ON joomla_db.* to 'joomla'@'localhost'; FLUSH PRIVILEGES;EXIT; ====== Environment ====== ===== PHP ===== "%SystemRoot%\System32\notepad.exe" "%SystemDrive%\www\php\main.ini" [PHP] extension_dir = ".\ext" extension = "curl" extension = "gd" extension = "intl" extension = "ldap" extension = "mbstring" extension = "mysqli" extension = "openssl" extension = "sodium" log_errors = "Off" error_reporting = "~E_ALL" display_errors = "Off" display_startup_errors = "Off" html_errors = "Off" [Date] date.timezone = "America/New_York" ; End "php.exe" -c "%SystemDrive%\www\php\main.ini" -m ===== Composer ===== * https://getcomposer.org/ * https://github.com/composer/composer MKDIR "%SystemDrive%\www\ext" & DEL /Q "%SystemDrive%\www\ext\composer.phar" & "%SystemRoot%\System32\curl.exe" --output "%SystemDrive%\www\ext\composer.phar" --location "https://github.com/composer/composer/releases/latest/download/composer.phar" --progress-bar "php.exe" -c "%SystemDrive%\www\php\main.ini" "%SystemDrive%\www\ext\composer.phar" --version CD "%SystemDrive%\www\main" && "php.exe" -c "%SystemDrive%\www\php\main.ini" "%SystemDrive%\www\ext\composer.phar" install --no-dev ===== Node.js ===== **** CD "%SystemDrive%\www\main" && "%ProgramFiles%\nodejs\node.exe" "%ProgramFiles%\nodejs\node_modules\npm\bin\npm-cli.js" --prefix "%SystemDrive%\www\main" "ci" --verbose ====== nginx + PHP-CGI Configuration ====== ===== PHP-CGI ===== "%SystemRoot%\System32\notepad.exe" "%SystemDrive%\www\nginx\default.d\main.conf" location "~" "\.(php)(/.*)?$" { fastcgi_split_path_info "^(.+\.(?:php))(/.*)$"; fastcgi_intercept_errors "on"; fastcgi_index "index.php"; include "C:/www/nginx/conf/fastcgi_params"; fastcgi_param "SCRIPT_FILENAME" "$document_root$fastcgi_script_name"; fastcgi_param "PATH_INFO" "$fastcgi_path_info"; fastcgi_param "HTTPS" "on"; fastcgi_pass "127.0.0.1:9001"; } # End ===== Server Block ===== "%SystemRoot%\System32\notepad.exe" "%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"; # access_log "logs/main-access.log"; # error_log "logs/main-error.log"; # location "~" "/installation/" { # deny "all"; # } location "/api/" { try_files "$uri" "$uri/" "/api/index.php?$args"; } location "/" { try_files "$uri" "$uri/" "/index.php?$args"; } location "~*" "/(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$" { return "403"; error_page "403" "/403_error.html"; } location "~*" "\.(ico|pdf|flv)$" { expires "1y"; } location "~*" "\.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$" { expires "14d"; } } # End "%SystemDrive%\www\scripts\nginx\Reload.bat" ====== Scripts ====== MKDIR "%SystemDrive%\www\scripts\main" "%SystemRoot%\explorer.exe" "%SystemDrive%\www\scripts\main" ===== PHP-CGI ===== "%SystemRoot%\System32\notepad.exe" "%SystemDrive%\www\scripts\main\PHP-CGI.bat" @echo off CD "%Temp%" SET "PHP_FCGI_MAX_REQUESTS=0" SET "PHP_FCGI_CHILDREN=1" START "Main PHP-CGI" /MIN "php-cgi.exe" -b "127.0.0.1:9001" -c "%SystemDrive%\www\php\main.ini" -q SET "PHP_FCGI_MAX_REQUESTS=" SET "PHP_FCGI_CHILDREN=" :: End "%SystemDrive%\www\scripts\main\PHP-CGI.bat" ===== Update ===== "%SystemRoot%\System32\notepad.exe" "%SystemDrive%\www\scripts\main\Update.bat" @echo off TITLE Main Updater CD "%Temp%" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" reset --hard "origin/7.0-dev" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" pull origin "7.0-dev" --rebase "php.exe" -c "%SystemDrive%\www\php\main.ini" "%SystemDrive%\www\ext\composer.phar" install --no-dev --working-dir="%SystemDrive%\www\main" "%ProgramFiles%\nodejs\node.exe" "%ProgramFiles%\nodejs\node_modules\npm\bin\npm-cli.js" --prefix "%SystemDrive%\www\main" "ci" DEL /Q "%SystemDrive%\www\main\administrator\cache\autoload_psr4.php" :: End "%SystemDrive%\www\scripts\main\Update.bat" ===== Back-up ===== "%SystemRoot%\System32\notepad.exe" "%SystemDrive%\www\scripts\main\Back-up.bat" @echo off TITLE Main Back-up CD "%Temp%" "%SystemRoot%\System32\tar.exe" -czf "D:\Servers\Scheduled Backups\joomla-files-auto-%RANDOM%.tar.gz" -C "%SystemDrive%\www" "main" "%ProgramFiles%\MariaDB 12.3\bin\mariadb-dump.exe" -u "root" --opt -r "D:\Servers\Scheduled Backups\%RANDOM%-joomla.sql" "joomla_db" ::"%SystemRoot%\System32\tar.exe" -czf "%UserProfile%\Downloads\joomla-files-auto-%RANDOM%.tar.gz" -C "%SystemDrive%\www" "main" ::"%ProgramFiles%\MariaDB 12.3\bin\mariadb-dump.exe" -u "root" --opt -r "%UserProfile%\Downloads\%RANDOM%-joomla.sql" "joomla_db" :: End "%SystemDrive%\www\scripts\main\Back-up.bat" ===== Maintenance ===== "%SystemRoot%\System32\notepad.exe" "%SystemDrive%\www\scripts\main\Maintenance.bat" @echo off TITLE Main Maintenance CD "%Temp%" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" gc --aggressive --prune="all" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" fsck --full --strict DEL /Q "%Temp%\composer.phar" "%SystemRoot%\System32\curl.exe" --output "%Temp%\composer.phar" --location "https://github.com/composer/composer/releases/latest/download/composer.phar" -s DEL /Q "%SystemDrive%\www\ext\composer.phar" MOVE /Y "%Temp%\composer.phar" "%SystemDrive%\www\ext\composer.phar" :: End "%SystemDrive%\www\scripts\main\Maintenance.bat" ===== Git Fix ===== * :!: Set ''user.email'' "%SystemRoot%\System32\notepad.exe" "%SystemDrive%\www\scripts\main\Git Fix.bat" @echo off TITLE Main Git Fix CD "%Temp%" ::################## ::# Joomla ::################## RMDIR /S /Q "%SystemDrive%\www\main\.git" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" init --initial-branch="7.0-dev" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" add "." ::###################################### "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" config "user.email" "espionage724@x" ::###################################### "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" commit --message="x" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" remote add "origin" "https://github.com/joomla/joomla-cms.git" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" pull --depth "1" --recurse-submodules "origin" "7.0-dev" --rebase "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" reset --hard "origin/7.0-dev" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" gc --aggressive --prune="all" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" fsck --full --strict :: End "%SystemDrive%\www\scripts\main\Git Fix.bat" ====== Task Scheduler ====== ===== PHP-CGI ===== * Auto-start "%SystemRoot%\System32\schtasks.exe" /Create /SC "ONLOGON" /TN "Main PHP-CGI" /TR "%SystemDrive%\www\scripts\main\PHP-CGI.bat" /F ===== Update ===== * Daily ''03:00:00 AM'' "%SystemRoot%\System32\schtasks.exe" /Create /SC "DAILY" /TN "Main Update" /TR "%SystemDrive%\www\scripts\main\Update.bat" /ST "03:00" /F ===== Back-up ===== * Monthly (4th) ''03:10:00 AM'' "%SystemRoot%\System32\schtasks.exe" /Create /SC "MONTHLY" /D "4" /M "*" /TN "Main Back-up" /TR "%SystemDrive%\www\scripts\main\Back-up.bat" /ST "03:10" /F ===== Maintenance ===== * Monthly (4th) ''03:30:00 AM'' "%SystemRoot%\System32\schtasks.exe" /Create /SC "MONTHLY" /D "4" /M "*" /TN "Main Maintenance" /TR "%SystemDrive%\www\scripts\main\Maintenance.bat" /ST "03:30" /F ====== Initial Setup ====== * https://realmofespionage.xyz ====== Settings ====== ===== robots.txt ===== **** COPY /Y "%SystemDrive%\www\main\robots.txt.dist" "%SystemDrive%\www\main\robots.txt" ===== Setup ===== * System -> Setup -> Global Configuration -> Site -> Site Offline: Enabled * System -> Setup -> Global Configuration -> Site -> Offline Message: Use Custom Message This site is being built behind-the-scenes, check back later!
In the meantime, check out my wiki: RoE | Wiki
===== Templates ===== * System -> Templates -> Site Template Styles -> Cassiopeia Extended - Default: ''[x]'' * Content -> Site Modules -> Main Menu -> Position: ''menu'' * Content -> Site Modules -> New -> Custom -> Position: ''footer'' ==== Cassiopeia Extended ==== * ''[x]'' Brand * Title (alternative to logo): ''Realm of Espionage'' * Layout: Fluid * Sticky Header: Yes * Back-to-top Link: Yes * Fonts Scheme: None * Menu Selection: ''[x]'' Toggle All Selections === Colour === * Header Background: ''3D8BFF'' * Header Text: ''FEFEFE'' * Body Background: ''E4E4E4'' * Body Text: TODO (default 23,23,23) * Links: ''FEFEFE'' * Links Hover: ''E4E4E4'' * Button Primary Background: TODO * Button Primary Hover Background: TODO * Button Primary Text: ''FEFEFE'' * Button Primary Hover Text: ''E4E4E4'' * Footer Background: ''484848'' * Footer Text: ''FEFEFE'' ==== Footer ==== === Copyright === * Last tested: 2024/02/01 on Joomla 5.1.0-dev, T3 Framework 3.2.0, and Purity III 2.1.0 == Logo == **** wget -O '/tmp/cc-by-sa-40.png' 'https://licensebuttons.net/l/by-sa/4.0/80x15.png' && sudo mv '/tmp/cc-by-sa-40.png' '/var/www/main/images/cc-by-sa-40.png' && sudo chown 'nginx':'nginx' '/var/www/main/images/cc-by-sa-40.png' && sudo restorecon -F -I -R '/var/www/main/images/cc-by-sa-40.png' && sync == Text == * Place text within the ''