Deployment guide

Tiki

Overview

Tiki Wiki CMS Groupware is a Free/Libre/Open Source web application with a very large built-in feature set. A wiki, a content management system, forums, file galleries, trackers (structured data and forms), blogs and articles come in one integrated package, with no plugins to install. It suits team knowledge bases, intranets, documentation sites and community portals.

This SecureAnyCloud image runs Tiki 29.2 "Bellatrix" with nginx, PHP 8.3 FPM and a bundled MariaDB database on a hardened Ubuntu 24.04 LTS base, patched at build time. Your wiki content and the database live on a dedicated Azure data disk. Every VM generates its own administrator password and database password on first boot, so no two deployments share a credential.

What you get:

  • Tiki 29.2 served by nginx and PHP 8.3 FPM, managed by systemd
  • A bundled MariaDB database, listening on loopback only
  • A per-VM admin account and a per-VM database password, generated on first boot and recorded in a root-only file
  • A dedicated Azure data disk at /data that holds the MariaDB data directory and Tiki's uploads
  • Starter wiki content, so the site renders immediately: a HomePage, a Playground page and a Documentation page
  • mariadb.service, php8.3-fpm.service and nginx.service as enabled, active systemd units
  • 24/7 SecureAnyCloud support

Security posture of this image:

  • The Tiki browser installer (tiki-install.php) is removed and locked. On a default Tiki, whoever reaches the installer first can take over the site. On this image, that route does not exist.
  • There is no default administrator password. Tiki's documented admin/admin default is never present, and it does not authenticate.
  • PHP refuses to serve Tiki until the first-boot credential rotation has succeeded, so the appliance fails closed instead of serving with a build-time secret.

Prerequisites

  • An Azure subscription and permission to create VMs
  • An SSH key pair for the azureuser account
  • Inbound TCP 80 open to the addresses you want to serve, and inbound TCP 22 for administration

Step 1 - Deploy from the Azure Marketplace

Search the Azure Marketplace for Tiki Wiki CMS Groupware on Ubuntu 24.04 LTS by SecureAnyCloud, select the plan, and create the VM. Standard_B2s is the recommended size. In the networking step, allow inbound ports 80 and 22.

Step 2 - Deploy from the Azure CLI

az vm image terms accept --urn sac1647283583153:tiki-ubuntu-24-04:default:latest
az vm create \
  --resource-group my-resource-group \
  --name my-tiki-vm \
  --image sac1647283583153:tiki-ubuntu-24-04:default:latest \
  --size Standard_B2s \
  --admin-username azureuser \
  --generate-ssh-keys \
  --public-ip-sku Standard
az vm open-port --resource-group my-resource-group --name my-tiki-vm --port 80 --priority 1001

Step 3 - Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the services are running

Three units serve Tiki. MariaDB holds the content, PHP 8.3 FPM runs Tiki, and nginx serves it on port 80. A fourth unit, tiki-firstboot.service, is a one-shot unit that generates this VM's credentials. Check all four:

for u in mariadb php8.3-fpm nginx tiki-firstboot; do printf '%-18s %s\n' "$u" "$(systemctl is-active $u)"; done ss -tlnp | grep -E ':80|:3306'

All four units report active. nginx listens on :80, and MariaDB listens only on 127.0.0.1:3306.

Step 5 - Retrieve your administrator password

Every VM generates its own administrator password and database password on first boot. Both are written to a root-only file. Read it with:

sudo cat /root/tiki-credentials.txt
sudo stat -c '%a %U:%G %n' /root/tiki-credentials.txt

The file has mode 600 and is owned by root:root. TIKI_ADMIN_PASSWORD is the password for the admin account.

Step 6 - Confirm the stack and the health endpoint

php -r 'echo "PHP ".PHP_VERSION;'; echo mariadb --version | sed 's/,.*//' curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/healthz curl -s http://127.0.0.1/ | grep -o '<title>[^<]*</title>'

/healthz returns 200. It is an unauthenticated static endpoint intended for Azure Load Balancer probes. The front page title confirms that Tiki is rendering.

Step 7 - Verify the security posture

This image closes the Tiki installer takeover route and ships no default credential. Run these commands to verify it yourself:

curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/tiki-install.php ls /var/www/tiki/db/lock ls /var/www/tiki/tiki-install.php 2>&1 | tail -1 sudo mariadb --protocol=socket -uroot -N -B -e 'SELECT @@bind_address;'

The installer returns 404 and its file is absent. The db/lock file is present, which is Tiki's own mechanism for disabling the installer. The database is bound to loopback only.

Step 8 - Open Tiki in your browser

Browse to http://<vm-public-ip>/. The starter HomePage renders immediately.

Step 9 - Sign in as the administrator

Select Log in in the top right corner. Sign in with the username admin and the TIKI_ADMIN_PASSWORD from Step 5.

After your first sign-in, change the password from My Account. If you plan to send notifications, set the site's sender email in the admin panel.

Step 10 - Create and edit wiki pages

Open the Playground page from the HomePage and select Edit. The editor gives you Tiki's full wiki toolbar, and every save keeps a numbered revision.

To see every page and its revision history, go to Wiki -> List Pages.

Step 11 - Turn features on from the admin panel

Tiki includes more features than it enables by default. Open Settings -> Control Panels and enable only what you need, such as trackers, forums, file galleries, blogs and articles.

Step 12 - Confirm your content lives on the dedicated disk

The MariaDB data directory and Tiki's uploads are on the Azure data disk, not the OS disk, so they survive a resize and can be snapshotted independently. Confirm the mounts:

findmnt -no SOURCE,TARGET /data
findmnt -no TARGET /var/lib/mysql readlink -f /var/www/tiki/files df -h /data | tail -1

/var/lib/mysql is bind-mounted from /data/mysql. Tiki's files, storage and temp directories resolve under /data/tiki.

Maintenance

Apply Tiki schema updates after an upgrade. The browser installer is removed on this appliance, so apply schema changes from the console:

sudo -u www-data php /var/www/tiki/console.php database:update

Clear the cache after changing preferences directly in the database:

sudo -u www-data php /var/www/tiki/console.php cache:clear

Back up your site. Everything you need to restore is on /data: the database and the uploads. Snapshot the data disk, or dump the database:

sudo mariadb-dump --single-transaction tiki | gzip > ~/tiki-backup.sql.gz

Apply operating system updates. Ubuntu's unattended upgrades stay enabled on this image and deliver them.

Support

SecureAnyCloud provides 24/7 support for this image. Contact sales@secureanycloud.com.

Tiki Wiki CMS Groupware is licensed under the GNU Lesser General Public License version 2.1. The complete corresponding source for Tiki and for every bundled library is available from the Tiki project at https://tiki.org. For the exact release packaged here, use https://sourceforge.net/projects/tikiwiki/files/Tiki_29.x_Bellatrix/29.2/.

SecureAnyCloud will also provide the corresponding source of any LGPL component in this image on written request to sales@secureanycloud.com, for as long as the image is distributed. The image does not include the optional Kaltura API client that upstream bundles, because that client is licensed under the GNU Affero General Public License.

Deploy on Azure

Launch Tiki Wiki CMS Groupware on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure