Building bradnorwiki on old MacBook

From Bradnor
Revision as of 11:16, 28 February 2026 by Ch (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

⇐ Notes

Install Ubuntu Server

Install Ubuntu server
Change root password
sudo passwd root

Enable wifi

Enabling wifi has to be done on a clean install without any patches, updates or package installations being applied
Install drivers
sudo apt update
sudo apt install firmware-b43-installer
sudo apt install linux-firmware

Install some utilities

Update and Install emacs and some utilities...
sudo apt update
sudo apt upgrade
sudo apt install emacs
and to suppress creation of #file# backup files,
create .emacs in ~ and /root containing
;; backup in one place. flat, no tree structure
(setq backup-directory-alist '(("" . "~/.emacs.d/backup")))
utilities for amongst others zip, nmcli, ifconfig, sensors and stress
sudo apt install zip network-manager net-tools lm-sensors stress
sudo apt install zip

Configure ssh to use keys

copy key to server for ssh client machine
ssh-copy-id -i ~/.ssh/id_rsa.pub <remote_user>@<remote_host>
check can still login over ssh with key
modify server ssh installation to disable password login
sudo emacs /etc/ssh/sshd_config
and add/modify
PasswordAuthentication no
PermitRootLogin no
UsePAM no
restart ssh
sudo systemctl restart ssh

Power management stuff to allow lid to be closed

Edit /etc/systemd/logind.conf and modify
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
and reboot
sudo echo 50 | sudo tee /sys/class/backlight/intel_backlight/brightness
and at start up edit/create a file
/etc/rc.local
containing
#!/bin/bash
echo 50 | tee /sys/class/backlight/intel_backlight/brightness
exit 0
and make it executable
sudo chmod a+x /etc/rc.local

Fan management

Install management software
sudo apt install macfanctld
Test by using sensors and stress testing
then run
sensors
to see fan speed on line 'Exhaust  : 5179 RPM ...'
or use
sensors | grep -i '\(exhaust\|core \)' ; stress --cpu 2 --timeout 20 ; sensors | grep -i '\(exhaust\|core \)'

Mediawiki

https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_or_Ubuntu
Install the LAMP stack - Apache, MySQL etc
sudo apt-get install apache2 mysql-server php php-mysql libapache2-mod-php php-xml php-mbstring

and additional bits for mediawiki

sudo apt-get install php-apcu php-intl imagemagick inkscape php-gd php-cli php-curl php-bcmath git
sudo systemctl restart apache2
Secure mysql
sudo mysqladmin -u root password <password>
sudo mysql_secure_installation

Install automysqlbackup and rsnapshot

sudo apt install automysqlbackup
sudo apt install rsnapshot

Set up copy to OneDrive to be written

Set up noip

Will need to install 'make'
sudo apt install build-essential
Download the DUC and save the file to: /usr/local/src
Open terminal and execute the following:
cd /usr/local/src
tar xzf noip-duc-linux.tar.gz
cd noip-2.1.9-1
make
make install
If the install did not create configuration file then run. You need username/password for noip and port 80 need to be forwarded to the machine
/usr/local/bin/noip2 -C
To start at boot time, create a service by creating a file /lib/systemd/system/noip.service containing
[Unit]
Description=NOIP dynamic dns updater
After=multi-user.target
[Service]
Type=forking
ExecStart=/usr/local/bin/noip2 -c /usr/local/etc/no-ip2.conf
StandardOutput /var/log/noip.log
[Install]
WantedBy=multi-user.target
and enable by
sudo systemctl enable noip.service

Set up certbot

https://certbot.eff.org/instructions?ws=apache&os=ubuntufocal

Modify apache config

Create a virtual site for bradnormac.ddns.net
Install and restore mediawiki
Create mysql user
sudo mysql
CREATE DATABASE bradnor;
USE bradnor;
CREATE USER 'mediawiki'@'localhost' IDENTIFIED BY '<password>';
GRANT SELECT, INSERT, UPDATE, DELETE ON bradnor.* TO 'mediawiki'@'localhost';
less secure alternative GRANT ALL PRIVILEGES ON *.* TO 'mediawiki'@'localhost' IDENTIFIED BY 'password';

Configure PHP

Edit /etc/php/7.3/apache2/php.ini
set
upload_max_filesize = 20M
memory_limit = 128M