Table of Contents
3. Making a custom homepage
As part of your Tardis account, you get your own subdomain at <username>.tardis.ac
- you can put anything (that doesn't break our rules) here, and expose whatever applications you want.
If you want a static homepage (one that doesn't change for each visitor).
Simple webpages
All you have to do is make some file in www/
, and it'll start being served.
To test this, let's write some basic HTML. From your home directory:
$ cd www/ www/ $ nano index.html
This will open a simple text editor. You can use the arrow keys to move around. Now type or paste the following:
<html> <head> <title>My homepage</title> </head> <body> <h1>It Works!</h1> </body> </html>
Hit Ctrl+X then Y to save and exit. Now, if you go to <username>.tardis.ac
, you should see It Works!
. If not, you might have to wait a bit for things to propagate.
From here, you can start making your own site and putting actual content on it. If you don't know HTML/CSS, here are some good beginner resources:
However, editing all the HTML files by hand, on Tardis over SSH, can get a bit tedious. A static site generator (see below) reduces the amount of HTML you need to write, or go to the next tutorial to learn about copying files to-and-from Tardis - this way you can create and edit the HTML files on your local machine, and copy them to Tardis when done.
Using a static site generator
Programming a site by hand is great for learning, but you might find it becomes unmanageable after a bit. To help, you can use a tool called a Static Site Generator (SSG), such as:
- Jekyll is pretty common for blogs, and lets you write your main content in Markdown
- Hugo is a newer alternative similar to Jekyll
- Astro is a less blog-focused alternative that will be familiar to React users.
You can install and use these from the sandbox VM, and put the output in www/
.
Alternatively, you can have your SSG run automatically, and deploy to our Gitlab instance Here are sample repositories for all of the mentioned approaches and more. You should be familiar with Git before trying this approach.