# Basic Environment Setup for Linux VPS
This tutorial provides guidance in creating a simple environment for development in the Komodo ecosystem.
The content herein is not comprehensive. Rather, this content provides a starting point, from which an enthusiastic learner should be capable of customizing and developing their own approach.
# Rent a VPS
A common environment choice among developers is to use a Virtual Private Server (VPS). A VPS allows a developer to use the Internet to access high quality hardware with corporate-level high speed Internet access.
Popular VPS choices include Amazon Web Services (AWS) (opens new window) and DigitalOcean (opens new window).
One reason a VPS is popular is that a developer can quickly create new instances of a virtual machine. This facilitates the developer in having a clean environment that is targeted for a specific purpose.
VPS's are also relatively cheap. Both AWS and DigitalOcean provide the basic necessities for ~$20/month, depending on your desired specifications.
When using an AWS instance, do not use the free tier's micro t2 instance. This tier does not include enough RAM for blockchain software to function properly. Instead, select a size of at least medium or greater. This will ensure at least 4GB RAM.
Alternatively, you can use your own personal computer, or a bare-metal server. However, troubleshooting on a personal setup can prove to be more time consuming than on a VPS.
# Recommended Minimum Server Specifications:
- CPU with 4 cores
- 8 GB RAM
- ~100GB SSD
- Note that using an HDD instead of a SSD will dramatically increase synchronization time, and thus slow down your workflow
- Ubuntu version 18.04 (for beginners)
- Ubuntu is the most popular Linux distribution
- The majority of Komodo's documentation is tested and written on Ubuntu
- To learn more about Linux, read this linked article (opens new window)
# Connect to Your VPS
Once you have chosen your VPS provider, you will need to connect to your VPS.
New developers often find this process confusing.
Your VPS provider should have several tutorials available to help you through this process.
Look for tutorials on the following topics.
- How to launch a terminal shell on your laptop or desktop machine
- How to set up SSH keys for secure login access
- How to execute a
sshcommand on your local machine to connect to your VPS
- How to enter
sudocommands on your VPS
For example, AWS has the following documentation to assist new developers in accessing VPS's that use the AWS EC2 service. Choose between MacOS & Linux, or Windows, both of which have different tutorial paths.
Link to AWS tutorial starting point (opens new window)
# Initial VPS Setup
Once you can access your VPS via the terminal, it is time to consider security in your environment. You are accessing a machine over the Internet, and there are myriad ways by which an attack can compromise your connection.
To ensure your own safety, consider the following security measures.
- Never log into your VPS as the root user
- Consider disabling the option to log in as root
- Use SSH keys to log in, instead of a password
- Enable a firewall to limit all unwanted traffic
The following tutorials provide many useful tips on creating a secure server.
- Initial Server Setup with Ubuntu 18.04 | Digital Ocean (opens new window)
- Using SSH to connect to a remove server (opens new window)
For experience learning the Linux environment, consider the following tutorials.
- How to use the Unix command line (interactive course) (opens new window)
- An Introduction to Linux (Especially "A Culture of Learning") (opens new window)
- How To Download Software and Content onto your Linux VPS (opens new window)
- How To Use cd, pwd, and ls to Explore the File System on a Linux Server (opens new window)
- How to Add and Delete Users on Ubuntu 16.04 (opens new window)