Skip to content

Virtual Hosting

Virtual hosting is a method for hosting multiple websites with different domain names on a single web server. The idea is to redirect external traffic from the CSC web server to your VM based on the domain name. If you are hosting a website on your VM and you would like it to be publically accessible, you will need to create a vhost record for your VM.

Domain limitations

Each member may create up to 10 vhosts whose domains have the form or end with

For example, if your username is ctdalek, then the following vhost domains are all valid:


If you wish to have a more customized domain name, please see Using a custom domain name, below.

Multi-level subdomains

While you are allowed to create multi-level subdomains of (e.g., we strongly ask that you do not do this unless you have a very good reason, because it is easier for us to use our existing wildcard SSL certificate which is valid for * (one level only).

Creating a vhost record

Let's say your VM's IP address is and you wish to use the domain You must already have an application running on port 80 in your VM (e.g. NGINX).

Login to a CSC general-use machine and run the following:

ceo cloud vhosts add


You can also append a port number to the IP address, e.g.

If you specified a multi-level subdomain, this command will also provision a TLS certificate for your website (from either ZeroSSL or Let's Encrypt); otherwise, our existing wildcard certificate will be used. You should now be able to visit your website over HTTPS from your browser, e.g.


To avoid having to reload our web server too frequently, and to reduce the risk of getting banned by our ACME service provider, we have set a rate limit on the command above for once every three minutes. We apologize for the inconvenience.

To view your vhost records, run the following:

ceo cloud vhosts list

To delete a vhost record, run the following:

ceo cloud vhosts delete


If you run ceo cloud vhost add twice for the same domain, the second command will effectively override the first (that is, the vhost will be replaced).

Using a custom domain name

If you wish to use a domain which does not have your username in it, please send an email to the Systems Committee with your desired domain name and the IP address of your VM.

If you wish to use a custom domain name which you have purchased from an external registrar, please make it point to the IP addresses of As of this writing, this is:

  • IPv4:
  • IPv6: 2620:101:f000:4901:c5c::10ad

Then, please send an email to the Systems Committee requesting a vhost record for your domain. Make sure to also provide the IP address of your VM.