You should point your domain name(s) to your server before your proceed. Even better is to point a wildcard subdomain. For example, we want all traffic to dev1.wikisuite.org or *.dev1.wikisuite.org as this makes it easy to create many projects, such as
You'll want something like this:
dev1 | A record | (put your IP address here) |
*.dev1 | CNAME | dev1.wikisuite.org. |
More info at Set up your domain name
You should have a fresh instance of Ubuntu 20.04 LTS. It should work with Ubuntu 18.04 LTS and Debian 9 and 10 but this has not yet been tested. CentOS support is planned for 2021.
It is important that nothing else is installed on the server because Virtualmin will handle it. We'll use https://gitlab.com/wikisuite/virtualmin-installer/ to install Virtualmin which is then configured for optimal settings for WikiSuite.
Install Webmin and Virtualmin on Ubuntu OS :-
Download Virtualmin using the below script. It is basically a shell script that will handle rest of the installation once executed.
Log in to your server via SSH with the root user. (If you are not logged in as root, you should switch to root), Then
curl -o install-virtualmin.sh https://gitlab.com/wikisuite/virtualmin-installer/-/raw/master/install-virtualmin.sh
bash install-virtualmin.sh
A web URL will be provided after installation is complete, you can access the Virtualmin by the provided URL Ex:- https://example.org:10000 (GUI is at port 10000)
apt-get update
apt-get upgrade
Next steps:
Virtualmin > Create Virtual Server
Suppose your desired domain is example.org, use the following pattern:
Create a Virtual Server for manager.example.org
And then, a Sub-Server for example.org
Domain name (This will be for Tiki Manager): manager.example.org
Administration username (pick a descriptive word for that domain): example
Administration password:Set a Strong Password (if not, you will very likely get hacked)
Domain name (This will be for your site): example.org
No need to pick username and password like above because user you created can access both.
If a domain name is valid, free SSL (for https://) certificates from Let's Encrypt are automatically created.
So now, you should be able to visit both manager.example.org and example.org and see a placeholder page. If domain name is not set up, you can Preview Website via Virtualmin
For more info, please see: https://doc.tiki.org/Manager
So now, you need to log in using SSH with the user you just created (and not as root)
1. Install Tiki Manager :-
Following on above, you will end up in a directory like /home/example/:
example@xyz:~$ pwd /home/example/
$ mkdir tiki-manager
$ cd tiki-manager
$ git clone --depth 1 --branch master https://gitlab.com/tikiwiki/tiki-manager.git .
$ php tiki-manager.php manager:info
When asked "Enter passphrase (empty for no passphrase):", just click "Enter" unless you know that you need a passphrase (probably not)
So now to install Tiki, you need a database. Virtualmin actually already created one for you.
(to do: document how to recuperation database name, and user / pass)
Now, Tiki Manager will create a fresh Tiki instance fetching files from Git, and using database mentioned above.
For more info, please see:- https://doc.tiki.org/manager#instance
php tiki-manager.php instance:create
Recommended answers:
Here is video to give you an idea of the process, but you should use recommended answers above
After you have answered all the questions, it will take quite some time to install your Tiki. Perhaps 20-30 minutes or more, depending on your context. Just be patient and let it run.
You will get the Tiki HomePage as below.
Tiki Admin Dashboard looks like.
If SSL set up was successful above, you can force all traffic to SSL:
To access the administration
{http://example.org/tiki-admin.php}
Control Panels > Security > General security >"check" Protect all sessions with HTTPS > Apply the changes
If your SSL has issues:
Virtualmin > Server Configuration > SSL certificate> Lets encrypt > Request certificate
Let's Encrypt is an open certificate authority that provides free SSL certificates. The app intelligently integrates the certificate lifecycle and management into Webconfig
Virtualmin > Edit User > Add a new user to this server
For more info, please see: https://doc.tiki.org/Webmail
To access Control panel
https://example.org/tiki-admin.php
Control Panel > click on advance button > enable Webmail
or
To access Webmail
http://example.org/tiki-admin.php?page=webmail
Tiki integrates the Cypht webmail, which can aggregate email from many accounts, using standards: POP, IMAP, SMTP, JMAP
After enabling webmail from the features section of the admin panel you will be able to enter the webmail section from the application menu. In your first visit to the webmail you will be automatically redirected to the webmail configuration panel.
Configure SMTP Server
By default Tiki Manager uses sendmail to send email notifications. If you intend to use SMTP instead add the following lines to your .env file.
Virtualmin > file manager > Home > tiki-manager > .env dist
SMTP_HOST=<SERVER_ADDRESS> SMTP_PORT=<SERVER_PORT> SMTP_USER=(optional if authentication is required) SMTP_PASS=(optional if authentication is required)
When you attempt to load tiki-install.php in your browser, Tiki displays the message:
Installer disabled. Remove 'db/lock' to enable the installer.
To re-enable the install script, use your host's file management software to remove the file lock from your Tiki's ../db/ directory.
You can now re-run the install script.
When you attempt to load tiki-install.php in your browser, Tiki displays the Security Alert page:
To protect your site, if you (or anyone else) attempts to run the Tiki installer on a site that has an existing Tiki database, Tiki displays the security precaution alert and requires you to login using your database's username and password.
Enter the database username and password that you used when creating the database.
✔ TIP If you forgot these items, Tiki has recorded them in the [../db/local.php file].
If the tiki installer security precaution goes in loop after entering database username and password
please add the following command
$ php console.php database:update