====== Information ======
* Joomla ((https://www.joomla.org))
* [[Information:Realm of Espionage]]
* https://realmofespionage.xyz
===== Prerequisites =====
* [[windows;11_ltsc|Windows 11 (24H2)]]
* [[servers;windows;nginx_php_php-cgi|nginx + PHP + PHP-CGI]]
* [[servers;windows;nginx;lets_encrypt|Certbot (Let's Encrypt)]]
====== Dependencies ======
* https://manual.joomla.org/docs/next/get-started/technical-requirements/
===== Git =====
* https://www.git-scm.com/download/win
* Last tested: ''Git-2.48.1-64-bit.exe''
* Git from the command line and also from 3rd-party software
===== MariaDB Server =====
* https://mariadb.org/download/
* Last tested: ''mariadb-11.7.2-winx64.msi''
* No Development components or Third party tools
* Use UTF8 as default server's character set
* [x] Enable Networking
===== Node.js =====
* https://nodejs.org/en/download
* Last tested: ''node-v22.14.0-x64.msi''
* Node.js runtime, npm package manager, Add to PATH (corepack manager and Online documentation not required)
* Tools for Native Modules not required (leave "Automatically install the tools" unchecked)
* TODO: [[games;windows;2004scape_localhost#nodejs|NodeJS install notes]]
====== Download Source ======
* https://github.com/joomla/joomla-cms/commits/5.3-dev/
"%ProgramFiles%\Git\bin\git.exe" clone --branch "5.3-dev" --depth "1" --recurse-submodules "https://github.com/joomla/joomla-cms.git" "%SystemDrive%\www\main"
"explorer.exe" "%SystemDrive%\www\main"
====== Database ======
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p
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 =====
"notepad.exe" "%SystemDrive%\www\php\main.ini"
[PHP]
; Modules
extension_dir = ".\ext"
extension = "gd"
extension = "intl"
extension = "ldap"
extension = "mysqli"
extension = "openssl"
extension = "sodium"
zend_extension = "opcache"
; Settings
post_max_size = "5M"
upload_max_filesize = "5M"
error_reporting = "E_ERROR"
display_errors = "Off"
[Date]
date.timezone = "America/New_York"
; End
"php.exe" -c "%SystemDrive%\www\php\main.ini" -m
====== Dependencies ======
===== Composer =====
* https://github.com/composer/composer/releases
* Latest ''composer.phar'' in ''www\ext'' folder
MKDIR "%SystemDrive%\www\ext"
"%SystemDrive%\www\ext\composer.phar"
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 =====
"notepad.exe" "%SystemDrive%\www\nginx\default.d\main.conf"
# PHP-CGI
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 =====
"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;
client_max_body_size "5M";
# 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;
# Install dir post-install block
#
# location "/install" {
# location ~* \.(php)$ {
# 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"
"explorer.exe" "%SystemDrive%\www\scripts\main"
===== PHP-CGI =====
"notepad.exe" "%SystemDrive%\www\scripts\main\PHP-CGI.bat"
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.ini" -q
:: End
"%SystemDrive%\www\scripts\main\PHP-CGI.bat"
===== Update =====
* https://github.com/joomla/joomla-cms/commits/5.3-dev/
"notepad.exe" "%SystemDrive%\www\scripts\main\Update.bat"
@echo off
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" reset --hard
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" pull origin "5.3-dev" --rebase
"%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
"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"
:: End
"%SystemDrive%\www\scripts\main\Update.bat"
====== Shortcuts ======
===== Desktop =====
"%SystemDrive%\www\scripts\main\Update.bat"
Main Update
===== Autostart =====
"explorer.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\StartUp"
"%SystemDrive%\www\scripts\main\PHP-CGI.bat"
Main PHP-CGI
====== Initial Setup ======
* https://realmofespionage.xyz
====== Settings ======
* :!: 2025/01/17: WIP
* [[servers;linux;nginx;joomla#initial_setup|Linux config]]
===== Purity III Template =====
* [[https://www.joomlart.com/member/downloads/joomlart/free-templates/purity-iii|Downloads]]
* Last tested: ''t3-system-plugin_3.2.2.zip'' and ''purity-iii-template_2.1.1.zip''
==== System Dashboard ====
* Templates -> Site Template Styles
* Set ''purity_III - Default'' to Default
==== Theme Settings ====
* General -> Show T3 Logo: Off
* Theme -> Logo Type: Text
* Theme -> Site Name: ''Realm of Espionage''
* Navigation -> Megamenu Configuration -> Animation: Fading
* Navigation -> Megamenu Configuration -> Duration: ''300''
* Add-ons -> Off-canvas Sidebar -> Enable: Off
* Assignment -> Toggle Selection
==== 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 '''' section underneath the ''Bootstrap by Twitter'' and ''Font Awesome'' mentions
* Remove ''Bootstrap by Twitter'' and ''Font Awesome'' mentions
sudo -e '/var/www/main/templates/purity_iii/tpls/blocks/footer.php' && sudo chown 'nginx':'nginx' '/var/www/main/templates/purity_iii/tpls/blocks/footer.php'
All content and data available on Realm of Espionage is available under the Creative Commons Attribution-ShareAlike 4.0 International license.
==== Custom CSS ====
* :!: This shrinks the footer height, and places it back at the bottom of the screen instead of floating half-way up the page when little content exists ([[https://www.joomlart.com/forums/topic/footer-on-bottom-of-screen-not-sticky/#post-898349|source 1]], [[https://www.joomlart.com/documentation/joomla-faqs/css-related-issues#footer-sticky|source 2]])
* Also replaces ThemeMagic for Brand Primary Color, Footer Background, and Footer Text Color
* Last tested: 2024/02/01 on Joomla 5.1.0-dev, T3 Framework 3.2.0, and Purity III 2.1.0
sudo -e '/var/www/main/templates/purity_iii/css/custom.css' && sudo chown 'nginx':'nginx' '/var/www/main/templates/purity_iii/css/custom.css'
html,
body {
height: 100%;
}
a {
color: #3D8BFF;
}
a:hover {
color: #196BE4;
}
.t3-mainnav {
background-color: #3D8BFF;
}
.logo a {
background: none;
}
.logo a:hover {
background: #196BE4;
}
.t3-wrapper {
position: relative;
min-height: 100%;
}
.t3-footer {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background-color: #484848;
color: #FFFFFF;
}
.t3-copyright {
padding-top: 20px;
padding-bottom: 0px;
}
===== Articles =====
==== Home ====
* The line-breaks are intentional and are there to make how it displays look nicer
* Add links to ''RoE | Wiki'' and ''CC BY-SA 4.0 license''
Welcome! Realm of Espionage is a personal project composed of various services. All services on RoE are free and open-source, self-hosted, and configured with strict security in-mind. My most prominent project currently is RoE | Wiki, a DokuWiki instance that holds my notes on all sorts of operating system, client, and server deployments, free for anyone to view and redistribute under the CC BY-SA 4.0 license.
This domain serves as a landing page and provides links to my most-used profiles and projects. To view them, use the navigation bar (desktop) or the ≡ hamburger icon (mobile) at the top of the screen.
===== Menus =====
* Main menu headers are: System Links -> URL -> ''#'' to allow tapping as-expected on mobile
* Icon sizes are 24x24
* Menu entries should be named normally before saving for a proper ''alias'', and then add a space on the title afterwards to make it look better with the icon
===== Global Configuration =====
==== Site Meta Description ====
****
Realm of Espionage is a personal project composed of various self-hosted services. All services are hosted in-house under secure conditions, and notes are provided for all services under the CC-BY-SA 4.0 license.
==== Content Rights ====
****
Creative Commons Attribution-ShareAlike 4.0 International
==== Articles ====
* System -> Global Configuration -> Articles
* Show Title: Hide
* Show Category: Hide
* Show Author: Hide
* Show Publish Date: Hide
* Show Navigation: Hide
* Show Print: Hide
* Show Email: Hide
* Show Hits: Hide
==== Menu ====
* Menus -> Main Menu -> Home -> Link Type -> Display in Menu: No
* Menus -> Main Menu -> Home -> Page Display -> Show Page Heading: Hide
====== Branch Update ======
* 5.2 -> 5.3
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" switch -t -c "5.3-dev"
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" branch
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" reset --hard
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\main" pull origin "5.3-dev" --rebase
====== Database ======
===== Backup =====
CD "%UserProfile%\Downloads"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb-dump.exe" -u "root" -p --opt -r "joomla.sql" "joomla_db"
===== Restore =====
* [[#database|Initial set-up]]
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p "joomla_db" < "%UserProfile%\Downloads\joomla.sql"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="GRANT ALL PRIVILEGES ON joomla_db.* to 'joomla'@'localhost';"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="DROP DATABASE joomla_db"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE joomla_db"