Sandstorm is a free and open-source platform for web applications and servers. You can deploy many applications including WordPress, GitLab, MediaWiki, Apache Wave, and RoundCube webmail using Sandstorm. It comes with a simple and user-friendly web interface that helps you to install and manage apps on your server. Compared to other platforms, Sandstorm is designed from the ground up to be radically easier to use.

In this post, we will show you how to install Sandstorm on CentOS 8 VPS.

Step 1 – Set Up Hostname

Before starting, you will need to set a fully qualified hostname of your server. You can set it using the following command:

hostnamectl set-hostname sandstorm.example.com

Once you are done, you can proceed to the next step.

Step 2 – Install Sandstorm

Sandstorm provides an auto-installation script that makes it easy to install Sandstorm on your server.

You can download the Sandstorm installation script using the following command:

curl https://install.sandstorm.io >install.sh

Once the script is downloaded, run the downloaded script to start the installation:

bash install.sh

You will be asked to select the installation option as shown below:

Sandstorm makes it easy to run web apps on your own server. You can have:

1. A typical install, to use Sandstorm (press enter to accept this default)
2. A development server, for working on Sandstorm itself or localhost-based app development

Press enter to select the default option. You should see the following output:

How are you going to use this Sandstorm install? [1] 
We're going to:

* Install Sandstorm in /opt/sandstorm
* Automatically keep Sandstorm up-to-date
* Create a service user (sandstorm) that owns Sandstorm's files
* Configure Sandstorm to start on system boot (with systemd)
* Listen for inbound email on port 25.

Rest assured that Sandstorm itself won't run as root.
OK to continue? [yes] 

Press enter to continue. You should see the following output:

NOTE: It looks like your system already has some other web server installed
      (port 80 and/or 443 are taken), so Sandstorm cannot act as your main
      web server.

      This script can set up Sandstorm to run on port 6080 instead,
      without HTTPS. This makes sense if you're OK with typing the port number
      into your browser whenever you access Sandstorm and you don't need
      security. This also makes sense if you are going to set up a reverse proxy;
      if so, see https://docs.sandstorm.io/en/latest/administering/reverse-proxy/

      If you want, you can quit this script with Ctrl-C now, and go uninstall
      your other web server, and then run this script again. It is also OK to
      proceed if you want.

OK to skip automatic HTTPS setup & bind to port 6080 instead? [yes] 

Press enter to bind Sandstorm port to 6080. You should see the following output:

Note: Sandstorm's storage will only be accessible to the group 'sandstorm'.
As a Sandstorm user, you are invited to use a free Internet hostname as a subdomain of sandcats.io,
a service operated by the Sandstorm development team.
...
Sandcats.io protects your privacy and is subject to terms of use. By using it,
you agree to the terms of service & privacy policy available here:
https://sandcats.io/terms https://sandcats.io/privacy

Choose your desired Sandcats subdomain (alphanumeric, max 20 characters).
Type the word none to skip this step, or help for help.
What *.sandcats.io subdomain would you like? [] none

Type none and hit enter. Once the installation has been completed you should see the following output:

URL users will enter in browser: [http://sandstorm.example.com:6080] 
Sandstorm requires you to set up a wildcard DNS entry pointing at the server.
This allows Sandstorm to allocate new hosts on-the-fly for sandboxing purposes.
Please enter a DNS hostname containing a '*' which maps to your server. For 
example, if you have mapped *.foo.example.com to your server, you could enter
"*.foo.example.com". You can also specify that hosts should have a special
prefix, like "ss-*.foo.example.com". Note that if your server's main page
is served over SSL, the wildcard address must support SSL as well, which
implies that you must have a wildcard certificate. For local-machine servers,
we have mapped *.local.sandstorm.io to 127.0.0.1 for your convenience, so you
can use "*.local.sandstorm.io" here. If you are serving off a non-standard
port, you must include it here as well.
Wildcard host: [*.sandstorm.example.com:6080] 

Your server is now online! Visit this link to start using it:

  http://sandstorm.example.com:6080/setup/token/7f7f36c9e39f738a69564622123be64b373141a5

NOTE: This URL expires in 15 minutes. You can generate a new setup URL by running
'sudo sandstorm admin-token' from the command line.


To learn how to control the server, run:
  sandstorm help

At this point, Sandstorm is installed and listening on port 6080. You can check it with the following command:

ss -antpl | grep 6080

You should see the following page:

LISTEN    0         128                0.0.0.0:6080             0.0.0.0:*        users:(("sandstorm/gtway",pid=28336,fd=7),("sandstorm/montr",pid=28265,fd=7),("sandstorm/top",pid=28262,fd=7))

Step 3 – Access Sandstorm Web UI

Now, open your web browser and access the Sandstorm using the URL

http://sandstorm.example.com:6080/setup/token/7f7f36c9e39f738a69564622123be64b373141a5.

You will be redirected to the following page:
Sandstorm Installation begin
Click on the Begin Sandstorm Setup. You should see the following page:

Sandstorm Select Authentication
Select E-Mail and click on the Configure button. You should see the following page:
Sandstorm Enable Authentication
Click on Enable. You should see the following page:
Sandstorm Define Email domain
Provide your mail server domain and click on the Save and continue button. You should see the following page:
Sandstorm Provide SMTP configuration
Provide your SMTP host, port, username and password and click on the Save and continue button. You should see the following page:

Sandstorm App Setup
Click on the Skip for now. You should see the following page:

Sandstorm Send Login Email
Provide your email address and click on the SEND LOGIN EMAIL. You should receive an email with login credentials. You can use those credentials to log in to the Sandstorm server.

Conclusion

Congratulations! You have successfully installed Sandstorm on CentOS 8 VPS. Sandstorm is a very useful tool for developers. It helps them to deploy any app with just a single click. For more information and documentation about Sandstorm, visit their documentation.