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.
- A fresh CentOS 8 server on the Atlantic.Net Cloud Platform
- A root password configured on your server
Step 1 – Create Atlantic.Net Cloud Server
First, log in to your Atlantic.Net Cloud Server. Create a new server, choosing CentOS 8 as the operating system with at least 2GB RAM. Connect to your Cloud Server via SSH and log in using the credentials highlighted at the top of the page.
Once you are logged in to your CentOS 8 server, run the following command to update your base system with the latest available packages.
dnf update -y
Step 2 – 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 3 – 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:
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?  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:
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 4 – Access Sandstorm Web UI
Now, open your web browser and access the Sandstorm using the URL
You will be redirected to the following page:
Click on the Begin Sandstorm Setup. You should see the following page:
Select E-Mail and click on the Configure button. You should see the following page:
Click on Enable. You should see the following page:
Provide your mail server domain and click on the Save and continue button. You should see the following page:
Provide your SMTP host, port, username and password and click on the Save and continue button. You should see the following page:
Click on the Skip for now. You should see the following page:
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.
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.