Server Providers Overview 0:00Previously, we sped through the provisioning process and skipped over some of the options that are available to us when we're creating a new server. Let's take a look at this in more detail, and we'll start with the server providers and how we can configure them. Now, Forge has first-party support for several providers, including DigitalOcean, Linode, AWS, Vulture, and Hetzner Cloud. A first-party integration means that Forge will actually be able to create the server at the provider of our choice, and in our own accounts. Further, if we decide we've had enough of that server, and it's no longer needed, we may delete it from the Forge dashboard, and it will also be removed from the provider'sFurther, if we decide we've had enough of that server, and it's no longer needed, we may delete it from the Forge dashboard, and it will also be removed from the provider's dashboard too, and thus we'll stop paying for it. I've previously mentioned that we may also bring our own servers to Forge. All servers that are provisioned by Forge use Ubuntu, currently supporting 20.04 and 22.04. This means that as long as our custom server meets the requirements listed on the Forge documentation, it will be compatible and provisionable with Forge. So since we already have the create server modal open, you can see that I already have a DeepSound server in the background here, and that is with Hetzner. Adding Provider Credentials 1:05So since we already have the create server modal open, you can see that I already have a DeepSound server in the background here, and that is with Hetzner. That's a provider that I have already configured. Now, of course, I can always go through and select another provider, let's say DigitalOcean, and because I've not yet configured it, Forge is going to take us to the account settings page and the server providers panel. And from here, I can add new providers. So I can select DigitalOcean, Linode, or another one, and I can provide a profile name, which is just the identifiable name that we're going to give this credential. And this name is particularly useful because we can have multiple credentials for eachis just the identifiable name that we're going to give this credential. And this name is particularly useful because we can have multiple credentials for each provider. So here I might call it personal, and then I can provide an API key from DigitalOcean itself. And we can generate those through the providers dashboard. Once we've configured our server providers, we will see them listed below on the active providers list. Here I can see the ID of the provider, which is useful if we're using an API request, the name that we gave to this credential, the provider of choice, and whether it's already Create Server Options 2:05Here I can see the ID of the provider, which is useful if we're using an API request, the name that we gave to this credential, the provider of choice, and whether it's already in use. And then we can edit this credential and change the name or update the API key if required. OK, so let's head back to the dashboard here and open up the create server modal once more. Since I've already configured Hetznut, I'm going to select this as the option. OK, let's work through this form top to bottom. So the first thing we'll see is that we have the ability to choose the server's operating system. By default, it's selected as 20.04, but we can also select 22.04.system. By default, it's selected as 20.04, but we can also select 22.04. The difference between these two currently is that Forge is not able to install any other version of PHP than 8.1 when using Ubuntu 22.04. So if we require an older version of PHP, we must use Ubuntu 20, and then we'll be able to select multiple versions of PHP. Now Forge can provision different types of servers for us, each with its own purpose and speciality. When we open up the type menu, Forge will helpfully show us an overview of which services are installed for each server type. Choosing Server Type 3:18When we open up the type menu, Forge will helpfully show us an overview of which services are installed for each server type. App servers are general purpose. They include everything we need to run our app in a self-contained server, including PHP, Nginx, Database, Redis, and Memcached. Web servers are light-purpose app servers, and they don't include a database or cached services, meaning we're only running PHP and Nginx. Worker servers are lighter still and are designed for running QWorkers. Database server only runs MySQL, MariaDB, or Postgres, depending on which we choose. Note that these are not managed databases like what DigitalOcean or AWS offers.Database server only runs MySQL, MariaDB, or Postgres, depending on which we choose. Note that these are not managed databases like what DigitalOcean or AWS offers. They'll only ever run the database directly on the server owned by yourself. Cached servers include Redis and Memcached. Melee search servers only run Melee search, which is an alternative to Algolia or Elasticsearch, and they allow you to provide local search results from your data. And finally, the load balance server runs Nginx and is designed to balance traffic between two or more web or app servers. They work by utilizing the private network feature of Forge, and will connect other web or app servers together.They work by utilizing the private network feature of Forge, and will connect other web or app servers together. For this, we'll create an app server. Now, Forge will automatically generate a name for our server, but if we want to use our own naming conventions, we may change this. For instance, Laracost's Curved Thunder, or we'll just leave it as default. Now when creating a server with a first-party provider, we're able to select both the region to create the server in and the size of the server. Each provider supports different regions and sizes, and remember that we will be billed for the server we create separately by the provider we've chosen. Region, Size, and VPC 4:56Each provider supports different regions and sizes, and remember that we will be billed for the server we create separately by the provider we've chosen. So here I can select Falkenstein, Nuremberg, Helsinki, Ashburn, and different sizes here. These options are not available when using a custom VPS, because the hardware is already decided on. Next, we may select which VPC to connect our server to. A VPC, or a Virtual Private Cloud, is just a secure and isolated network that we can place our servers into, and this will allow us to connect our servers together and keep all internal traffic within the network, meaning our data is safe and secure. For example, if we provision a web, database, and cache server, we'd want to be able toall internal traffic within the network, meaning our data is safe and secure. For example, if we provision a web, database, and cache server, we'd want to be able to connect them together so that our web server can access the data and cache servers. When we're creating a server that installs PHP, we may also select which version to install from, and we can select anything from 5.6 all the way up to 8.1. If we're creating a server that installs a database, such as a database server or an app server, we may select which database and version to install. Here we can install MySQL 8, MariaDB 10.6, and PostgreSQL 12, 13, and 14. By default, Forge will also create a database called Forge on the server, but we can change that name to anything we like, such as app or demo or prod.By default, Forge will also create a database called Forge on the server, but we can change that name to anything we like, such as app or demo or prod. We'll stay with Forge for now. Recipes are scripts that we can instruct Forge to execute our server once it is provisioned. This is particularly useful if we want to install additional software or make customizations to our servers that are beyond the scope of what Forge is doing for us. And finally, there are some additional options we can select. We may choose to add our service key to our connected source control providers, and typically we'll only want to do this on app or web servers so that they are able to clean our projects. And then occasionally a server provider such as DigitalOcean or Hetzner will allow you Provisioning Progress Screen 6:59we'll only want to do this on app or web servers so that they are able to clean our projects. And then occasionally a server provider such as DigitalOcean or Hetzner will allow you to take daily backups of your servers. These backups can be enabled by checking the relevant backup box. Keep in mind that these are typically billed at a separate cost by the provider. Okay, so that's listed all of the options available. Let's create our server and check out the provisioning screen. When we first land on the server's provisioning page, Forge will show us the sudo and database password or Mele search if that is available also. These will also be emailed to us when the server has finished provisioning.password or Mele search if that is available also. These will also be emailed to us when the server has finished provisioning. And if we close this modal down, Forge shows us the progress of the provisioning process and explains what each step is for and will update the active state as it progresses. Once this is finished, Forge will redirect us to the server's dashboard and we can go ahead and start to create our sites.