<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ado Kukic</title>
    <description>The latest articles on Forem by Ado Kukic (@kukicado).</description>
    <link>https://forem.com/kukicado</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F139953%2F3895ea71-4ab2-4f5d-bb96-63a4ab932655.jpg</url>
      <title>Forem: Ado Kukic</title>
      <link>https://forem.com/kukicado</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kukicado"/>
    <language>en</language>
    <item>
      <title>Setting up a Factorio Multiplayer Server on DigitalOcean</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Thu, 22 Sep 2022 22:29:58 +0000</pubDate>
      <link>https://forem.com/digitalocean/setting-up-a-factorio-multiplayer-server-on-digitalocean-3g7h</link>
      <guid>https://forem.com/digitalocean/setting-up-a-factorio-multiplayer-server-on-digitalocean-3g7h</guid>
      <description>&lt;p&gt;What is better than Factorio? Factorio with friends. Multiplayer in Factorio allows you to team up with friends to grow, defend, and scale your factory to new heights. While you can host a multiplayer game on your local machine, your friends and collaborators will rely on that local machine running to access the game and with everyone's busy lives, this may not be ideal. Today I'm going to show you how you can host an ongoing Factorio multiplayer game on DigitalOcean that anyone can access whenever they want.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4vj7du3p745bbb5gxkx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4vj7du3p745bbb5gxkx.png" alt="Factorio"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DigitalOcean simplifies cloud computing so builders can spend more time creating software that changes the world. In our case today, that means deploying a Factorio headless server so that we can get help from other people in building the world's biggest factory. The way that we're going to accomplish this is by deploying a DigitalOcean droplet to host our multiplayer Factorio game. To get started with this, we're first going to log in or sign up for a Digital Ocean account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwap58iqxmkjc2b6nhtxi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwap58iqxmkjc2b6nhtxi.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you prefer a video version of this tutorial, you can watch it here&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/VaJaLrxudWk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Droplet on DigitalOcean
&lt;/h2&gt;

&lt;p&gt;Since I already have an account, I'll just hit the login button, which is going to take me to my DigitalOcean dashboard. Next, what we want to do is create a new droplet. I'm going to hit the green &lt;strong&gt;Create&lt;/strong&gt; button in the top right and select droplets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fho4ahu38px2rb294cg5p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fho4ahu38px2rb294cg5p.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is going to take me to the wizard for deploying our droplet, and from here we can decide what type of operating system, how many resources we want to grant the droplet, and so on and so forth. We'll keep Ubuntu as the operating system, and for our plan, we have various different options, ranging from a shared to dedicated CPU, Intel or AMD, workload type, size, and so on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb3fjrtxcx4sqb91odlq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb3fjrtxcx4sqb91odlq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the purpose of this tutorial, I'll select a general purpose dedicated CPU but you can host Factorio on the basic $7 per month plan just as easily. With our plan selected, the last thing we'll need to do is select our data center region. Since I'm located in Las Vegas, I'll pick the one closest to me, which will be San Francisco. Finally, we’ll need to set a password or an SSH key to be able to connect to this droplet once it's created. &lt;/p&gt;

&lt;p&gt;To keep it simple, let’s use password and add the password that we want to use. With all of our options selected, let’s hit the Create Droplet button, and we'll be off to the races.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9wbmkn04c6qh3o7qc0r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9wbmkn04c6qh3o7qc0r.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In about a minute or so, our droplet will be created and deployed, and we’ll be ready to go. When our droplet has finished deploying, the first thing we’ll need to do is connect to it. &lt;/p&gt;

&lt;p&gt;Open up the terminal of your choice as we’ll SSH into the machine. Make note of the Droplet IPv4 address as that’s where our Ubuntu server is.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl9hp57a4pnvue8m4czv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl9hp57a4pnvue8m4czv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To SSH into our server we’ll connect as the root user at the IP address of our droplet, and use our password we set earlier. And we’re in and ready to install our Factorio headless server. The headless version of Factorio does not download any of the games graphic assets so you can’t play the game on the server, but you can run all of the logic needed for the game.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvwifrudj21e0recr6is.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvwifrudj21e0recr6is.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Downloading and Installing Headless Factorio
&lt;/h2&gt;

&lt;p&gt;We can download the headless version Factorio directly from the Factorio website. To do this, execute the following command in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget &lt;span class="nt"&gt;-O&lt;/span&gt; factorio_headless.tar.gz https://factorio.com/get-download/1.1.61/headless/linux64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Running this command will download the headless version of Factorio and store it in a file called &lt;code&gt;factorio_headless.tar.gz&lt;/code&gt;. You can confirm this by running the ls command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4cvz0k587vpoq2muzuh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4cvz0k587vpoq2muzuh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next thing we're going to do is go into our &lt;code&gt;opt&lt;/code&gt; directory by running &lt;code&gt;cd opt&lt;/code&gt;. Our Factorio headless server will run out of this directory. Unzip the file we downloaded above by running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo tar&lt;/span&gt; &lt;span class="nt"&gt;-xf&lt;/span&gt; /factorio_headless.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this command has finished executing we’ll have a new directory in our opt folder called &lt;code&gt;factorio&lt;/code&gt;. Let’s navigate to it by running &lt;code&gt;cd factorio&lt;/code&gt;. Then, run &lt;code&gt;ls&lt;/code&gt; to see the files and folders within.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy63graeqyqnir7c5owd4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy63graeqyqnir7c5owd4.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To enable our headless server to work, the next thing we'll need to do is create a saves folder. I will make a new directory called saves by running &lt;code&gt;mkdir saves&lt;/code&gt;. If you run &lt;code&gt;ls&lt;/code&gt; again, you’ll see that now we have the &lt;code&gt;bin&lt;/code&gt; directory, our &lt;code&gt;data&lt;/code&gt; directory, and now a &lt;code&gt;saves&lt;/code&gt; directory where our game progress is going to be saved. The next thing we'll do is create a save zip file.&lt;/p&gt;

&lt;p&gt;The way to do this is we're going to go into our &lt;code&gt;bin&lt;/code&gt; directory, into the &lt;code&gt;x64&lt;/code&gt; directory and call the &lt;code&gt;factorio&lt;/code&gt; executable and pass in the &lt;code&gt;create&lt;/code&gt; command which is going to create a new save file in the saves directory. Let’s do that and call it &lt;code&gt;digitalocean.zip&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2cevy0h3zipkduynmc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2cevy0h3zipkduynmc1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So our command will look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./bin/x64/factorio &lt;span class="nt"&gt;--create&lt;/span&gt; ./saves/digitalocean.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we have a save file and we are good to go. At this point we can actually start the game and connect to it and play.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting to your Factorio Server
&lt;/h2&gt;

&lt;p&gt;Now that we have our headless version of Factorio on our Droplet and a save file ready to go, the next step is to actually boot up and start the Factorio server. The easiest way to do this is go back into our &lt;code&gt;x64&lt;/code&gt; directory, run the factorio executable and pass in the start server command, passing in our digitaocean.zip save file. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fruu2qm7k9ktagieem2m8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fruu2qm7k9ktagieem2m8.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./bin/x64/factorio &lt;span class="nt"&gt;--start-server&lt;/span&gt; digitalocean.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7hmlvppuzcc561gwe7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7hmlvppuzcc561gwe7e.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Running this command will start up our server. Make a note of the IP address that the server is running on as well as the port the Factorio headless server is running on, in my case it’s :34197. Let's go into our Factorio game, select multiplayer, click the “connect to an address” option and we'll paste in the our IP address and port and hit &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyw0t32vf3yez2ax903rn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyw0t32vf3yez2ax903rn.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Within a few seconds we’ll be in the game, running at 60 frames per second and able to play the game.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4o5b3wl5kxgme7180vr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4o5b3wl5kxgme7180vr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I play the game, the state is being saved on the server in that &lt;code&gt;digitalocean.zip&lt;/code&gt; file, so if I disconnect and reconnect, I’ll be able to pick things back up where I last left off. Our server is now running and anybody that has the IP address and port can connect.&lt;/p&gt;

&lt;p&gt;While this is one way to deploy a Factorio headless server, I want to show you another. The second way involves setting up a service to run our Factorio headless instance.&lt;/p&gt;

&lt;p&gt;To do this, let’s navigate to the &lt;code&gt;data&lt;/code&gt; directory in our &lt;code&gt;factorio&lt;/code&gt; directory and  take a look at this server-settings.example.json file. This file is going to enable us to control various settings of our Factorio server. To utilize this file, we’re first going to make a copy of it and remove the .example extension. Do this by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp &lt;/span&gt;server-settings.example.json server-settings.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We won’t make any changes to the file itself for now. Next, you probably don’t want your root user running the factorio service, so let’s create a new user that only has access to run the Factorio headless server. To do this, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useradd factorio
chown -R facotrio:factorio /opt/factorio
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creating a Headless Factorio Service
&lt;/h2&gt;

&lt;p&gt;Finally, let’s go ahead and create a service that we can turn on or off depending on if we want the server to be running or not. To do this, execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/systemd/system/factorio.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And what this is going to look like is this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;Unit]
&lt;span class="nv"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Factorio Headless Server
&lt;span class="o"&gt;[&lt;/span&gt;Service]
&lt;span class="nv"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;simple
&lt;span class="nv"&gt;User&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;factorio
&lt;span class="nv"&gt;ExecStart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/factorio/bin/x64/factorio &lt;span class="nt"&gt;--start-server&lt;/span&gt; /opt/factorio/svaes/digitalocean.zip &lt;span class="nt"&gt;--server-settings&lt;/span&gt; /opt/factorio/data/server-settings.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This simple service when run is going to start up our server and will use the digitalocean.zip save file we created as well as load up the &lt;code&gt;server-settings.json&lt;/code&gt; file we created earlier. Save and exit this file. To start this service, we’ll have to restart our service daemon by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl daemon-reload
systemctl start factorio
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To ensure that our service is running we can run the &lt;code&gt;systemctl status factorio&lt;/code&gt; command. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jc8tumkxitslujmivbn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jc8tumkxitslujmivbn.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And as you can see, it is active, running and good to go. Let’s make sure the server is in-fact running by reconnecting to it in our Factorio game.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkb2oucmu0oam3kdbg99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkb2oucmu0oam3kdbg99.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this tutorial, we deployed and connected to a remotely hosted headless version of Factorio. Anybody that we share the IP and port can now connect and join our game. We could modify the server-settings.json file to password-protect our game, enable mods, and other settings. The best part about having a headless server running is that the game state is saved on our remote server, so our friends can play even when we aren’t available. I hope you enjoyed this tutorial and good luck building and expanding your factory.&lt;/p&gt;

&lt;p&gt;Happy coding. :)&lt;/p&gt;

</description>
      <category>factorio</category>
      <category>digitalocean</category>
      <category>multiplayer</category>
    </item>
    <item>
      <title>Latest products and features at DigitalOcean: August 2022</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Mon, 12 Sep 2022 19:16:58 +0000</pubDate>
      <link>https://forem.com/digitalocean/latest-products-and-features-at-digitalocean-august-2022-3hdg</link>
      <guid>https://forem.com/digitalocean/latest-products-and-features-at-digitalocean-august-2022-3hdg</guid>
      <description>&lt;p&gt;In August, the team at DigitalOcean was hard at work adding technology to increase performance and providing updates to help your business run smoothly. Check out the key product enhancements for your favorite offerings, including DigitalOcean Droplets, observability, App Platform, developer solutions, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean Droplets (IaaS)
&lt;/h2&gt;

&lt;p&gt;Powerful DigitalOcean Droplets with 48 vCPUs &lt;/p&gt;

&lt;p&gt;We added a CPU-Optimized Droplet plan with 48 vCPUs of dedicated computing power and 96 GB of memory. The new 48 vCPU Droplets are also available for DigitalOcean Kubernetes nodes. You can also &lt;a href="https://docs.digitalocean.com/products/droplets/how-to/resize/"&gt;resize your existing Droplets to this node plan&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean Uptime (Observability)
&lt;/h2&gt;

&lt;p&gt;Empower yourself with DigitalOcean Uptime to determine if resources are available and responsive from an external user's perspective. DigitalOcean Uptime alerts you when your assets are slow, down, or vulnerable to SSL attacks and it's free for new and existing DigitalOcean accounts&lt;/p&gt;

&lt;p&gt;Watch as Chris Sevilleja, Senior Developer Advocate II creates an uptime check in a few seconds and monitors an endpoint.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/yxgEimZL4xY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean App Platform (PaaS)
&lt;/h2&gt;

&lt;p&gt;Access the latest Buildpacks automatically&lt;/p&gt;

&lt;p&gt;You can now easily &lt;a href="https://docs.digitalocean.com/products/app-platform/how-to/upgrade-buildpacks/"&gt;upgrade your App Platform Buildpacks to their latest version&lt;/a&gt; to make sure all of your apps and components are up to date.&lt;/p&gt;

&lt;p&gt;Bypass PostgreSQL's built-in performance limits&lt;/p&gt;

&lt;p&gt;Mitigate potential performance issues from PostgreSQL's built-in connection limits and memory requirements by using &lt;a href="https://docs.digitalocean.com/products/databases/postgresql/how-to/manage-connection-pools/"&gt;connection pools&lt;/a&gt;. For detailed instructions see our &lt;a href="https://docs.digitalocean.com/products/app-platform/how-to/use-environment-variables/#databases"&gt;reference page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Debian 9 and Ubuntu 21.10 end of life&lt;/p&gt;

&lt;p&gt;Debian 9 and Ubuntu 21.10 reached end of life and are &lt;a href="https://docs.digitalocean.com/products/platform/image-deprecation/"&gt;deprecated&lt;/a&gt; as of August 10, 2022. These images will remain accessible for Droplet creation via the API for 30 days after the initial deprecation. After full deprecation, you can create images from a &lt;a href="https://docs.digitalocean.com/products/images/snapshots/how-to/snapshot-droplets/"&gt;snapshot of a Droplet&lt;/a&gt; with that version or from a &lt;a href="https://docs.digitalocean.com/products/images/custom-images/"&gt;custom image&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean Developer Solutions
&lt;/h2&gt;

&lt;p&gt;Reminder: Updated API Tokens with new management features&lt;/p&gt;

&lt;p&gt;Here's a reminder to take advantage of the &lt;a href="https://www.digitalocean.com/blog/updated-api-tokens-new-management-features"&gt;updated DigitalOcean API Tokens&lt;/a&gt;. The tokens have many new features including GitHub secret scanning, prefixed tokens, last used at, and expiring tokens. &lt;a href="https://docs.digitalocean.com/reference/api/create-personal-access-token/"&gt;Generate a new API token&lt;/a&gt; and &lt;a href="https://cloud.digitalocean.com/account/api/tokens"&gt;revoke old tokens&lt;/a&gt; to ensure you can use the new features.&lt;/p&gt;

&lt;p&gt;Do you have an idea for improving our products? Submit your feedback and vote on other user suggestions on our &lt;a href="https://ideas.digitalocean.com/"&gt;ideas page&lt;/a&gt;. If you have questions, &lt;a href="https://www.digitalocean.com/community/questions"&gt;ask them here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;Ivan Tarin&lt;/p&gt;

&lt;p&gt;Sr. Product Marketing Manager&lt;/p&gt;

</description>
      <category>digitalocean</category>
      <category>updates</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Announcing DigitalOcean Uptime: Real-time uptime and latency alerts</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Thu, 08 Sep 2022 15:23:24 +0000</pubDate>
      <link>https://forem.com/digitalocean/announcing-digitalocean-uptime-real-time-uptime-and-latency-alerts-2bi7</link>
      <guid>https://forem.com/digitalocean/announcing-digitalocean-uptime-real-time-uptime-and-latency-alerts-2bi7</guid>
      <description>&lt;p&gt;Providing a good user experience is critical to business success, and that experience depends on both availability (uptime) and response time (latency). We are excited to announce a new product from DigitalOcean to help you monitor these important metrics. DigitalOcean Uptime gives you the peace of mind that your assets are being checked regularly, and alerts you before your customers are impacted so that you can recover quickly from incidents. Starting today, anyone with a DigitalOcean account gets one uptime check for free per month so you can be aware of incidents as soon as they happen and resolve them more quickly. Start checking your website with DigitalOcean Uptime today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get alerted when your assets may be slow, down, or vulnerable to SSL attacks
&lt;/h2&gt;

&lt;p&gt;Website latency is the amount of time it takes for data to go from a network to another, and is a critical metric for production applications. The longer your website or application takes to load, the more opportunities your users have to go somewhere else. Empower yourself with DigitalOcean Uptime to determine if resources are available and responsive from an external user's perspective.&lt;/p&gt;

&lt;p&gt;DigitalOcean Uptime allows you to check your services no matter the cloud provider--you can monitor almost any IP or endpoint after a &lt;a href="https://docs.digitalocean.com/products/uptime/how-to/create-checks/"&gt;quick and easy set up&lt;/a&gt;. Simply paste your endpoint to start checking.&lt;/p&gt;

&lt;p&gt;Watch as Chris Sevilleja, Senior Developer Advocate II creates an uptime check in a few seconds and monitors an endpoint.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/yxgEimZL4xY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Slow websites can be due to a range of causes, from needing more computing power, to sites being under attack, or dependencies crashing. By setting an uptime alert you can protect your business during incidents that are common during your busiest times.&lt;/p&gt;

&lt;p&gt;You can create alerts for up to four regions at a threshold of latency down to 1 millisecond (ms) and set how long before you're alerted. By leaving the default configuration you’ll receive an alert immediately after two minutes of latency, by email or to a chosen Slack channel with relevant metrics so you can find the cause.&lt;/p&gt;

&lt;p&gt;DigitalOcean Uptime also includes a regional latency graph, which will visualize any slowdown from the last hour up to the previous 90 days. This can reveal unexpected insights into your app over time and is easy to read, a baseline shows normal use and spikes appear when latency is worst. The regional latency graph can show you latency patterns at specific intervals that can tell you a lot about your infrastructure, product, and users.&lt;/p&gt;

&lt;p&gt;Additionally, with DigitalOcean Uptime, you can track the validity of your SSL certificate and create an alert to tell you before certificates lapse so you can update them to avoid being vulnerable to attack. &lt;/p&gt;

&lt;h2&gt;
  
  
  Hear what users are saying about DigitalOcean Uptime
&lt;/h2&gt;

&lt;p&gt;"As a solo-developer of a popular photo platform it's crucial for me to focus on the users and their needs while Uptime helps me to react extremely fast when services don't work as expected."---Manuel, Founder of &lt;a href="http://locationscout.net/"&gt;Locationscout.net&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;"We use DigitalOcean Uptime to monitor our services and make sure they're all operational. DigitalOcean Uptime is effective, reliable and costs only a fraction compared to similar services. As a long-time DigitalOcean user, all we can say is thank you! It's always great to see DigitalOcean developing new helpful tools for their clients. This review is an honest one. We love DigitalOcean Uptime!" ---René Hermenau, Founder &lt;a href="http://wp-staging.com/"&gt;wp-staging.com&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  All DigitalOcean users can create one uptime check for free!
&lt;/h2&gt;

&lt;p&gt;New and existing DigitalOcean users get one uptime check for free every month! Any additional uptime checks are $1 each per month, keeping the price simple and competitive. &lt;/p&gt;

&lt;p&gt;All uptime checks monitor performance at 1-minute intervals for detailed information on DigitalOcean Uptime like editing regions, and how to set up alerts refer to &lt;a href="https://docs.digitalocean.com/products/uptime/"&gt;our documentation&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Happy Coding,&lt;/p&gt;

&lt;p&gt;Daniel Levy&lt;/p&gt;

&lt;p&gt;Senior Product Manager II, Insights/Experimentation&lt;/p&gt;

</description>
      <category>digitalocean</category>
      <category>uptime</category>
      <category>monitoring</category>
      <category>latency</category>
    </item>
    <item>
      <title>DigitalOcean Kubernetes Control Plane General Availability (GA), now with a 99.95% SLA</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Tue, 16 Aug 2022 19:55:47 +0000</pubDate>
      <link>https://forem.com/digitalocean/digitalocean-kubernetes-control-plane-general-availability-ga-now-with-a-9995-sla-1bh0</link>
      <guid>https://forem.com/digitalocean/digitalocean-kubernetes-control-plane-general-availability-ga-now-with-a-9995-sla-1bh0</guid>
      <description>&lt;p&gt;At DigitalOcean, we strive to create a simple and safe managed Kubernetes experience so that you can scale your business with intuitive developer tools.  Today, we are thrilled to announce that DigitalOcean Kubernetes' High Availability (HA) control plane now includes a &lt;a href="http://docs.digitalocean.com/products/kubernetes/resources/sla/"&gt;99.95% Service Level Agreement (SLA) &lt;/a&gt;to provide confidence that your control plane is fault-tolerant no matter the load. Additionally, all DigitalOcean Kubernetes users can enjoy our new, faster, and more powerful control plane at no cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  New High Availability (HA) capabilities
&lt;/h2&gt;

&lt;p&gt;Kubernetes is an incredibly popular tool that produces workloads that can scale and heal themselves, saving resources and introducing automation to your infrastructure. However, if your control plane fails, your workloads may keep running, but it can't schedule new workloads or perform cluster-level operations. This weakness in Kubernetes is a single point of failure, and because of this behavior, a resilient and scalable control plane is a must-have, especially for those running production workloads. Our High Availability control plane gives you confidence that you can rely on DigitalOcean Kubernetes.&lt;/p&gt;

&lt;p&gt;When &lt;a href="https://docs.digitalocean.com/products/kubernetes/how-to/create-clusters/#enable-high-availability"&gt;High Availability is enabled&lt;/a&gt;, DigitalOcean Kubernetes runs three replicas of your control plane to ensure better performance and uptime. We offer a &lt;a href="http://docs.digitalocean.com/products/kubernetes/resources/sla/"&gt;99.95% Service Level Agreement (SLA)&lt;/a&gt; per month for the new control plane with High Availability. If you experience downtime beyond this level, we'll credit your DigitalOcean account. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.digitalocean.com/products/kubernetes/how-to/create-clusters/#enable-high-availability"&gt;Configuring HA is straightforward&lt;/a&gt; and costs an additional $40/month. Spin up an HA cluster using the UI in a click, with doctl CLI, or Terraform.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SyVZ8Hpvblk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional enhancements to the new control plane
&lt;/h2&gt;

&lt;p&gt;To create the new DigitalOcean Kubernetes control plane we leveraged the latest cloud-native and open source technologies including the &lt;a href="https://cluster-api.sigs.k8s.io/"&gt;ClusterAPI&lt;/a&gt; for API-based cluster management. We containerized the control plane components and used Kubernetes to manage them, a concept referred to as Kubeception. Because containers are so lightweight, we can spin up new control planes faster than ever. See below for diagrams outlining how the new control plane differs from the legacy control plane.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7sUy_kys--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.prismic.io/www-static/0ee8d12d-b063-4fb3-8bbd-d0642963e356_legacy%2Bcontrol%2Bplane.png%3Fauto%3Dcompress%2Cformat" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7sUy_kys--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.prismic.io/www-static/0ee8d12d-b063-4fb3-8bbd-d0642963e356_legacy%2Bcontrol%2Bplane.png%3Fauto%3Dcompress%2Cformat" alt="Legacy Control Plane" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d7NmObU5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.prismic.io/www-static/5ed42def-1316-47dc-a6b5-3f766ff5f70f_new%2Bcontrol%2Bplane.png%3Fauto%3Dcompress%2Cformat" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d7NmObU5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.prismic.io/www-static/5ed42def-1316-47dc-a6b5-3f766ff5f70f_new%2Bcontrol%2Bplane.png%3Fauto%3Dcompress%2Cformat" alt="New Control Plane" width="880" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The below enhancements to the control plane are applicable for all the DigitalOcean(DOKS) users regardless if you have HA enabled or not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Built on Open Source Software: The DigitalOcean Kubernetes control plane is built with &lt;a href="https://cluster-api.sigs.k8s.io/"&gt;Cluster API&lt;/a&gt; for better operability and reliability. DigitalOcean contributes to Open Source Software (OSS) projects like the &lt;a href="https://github.com/kubernetes-sigs/cluster-api-provider-digitalocean"&gt;Cluster API provider DigitalOcean&lt;/a&gt; that you can use to provision DigitalOcean Kubernetes clusters. As a member of the Cloud Native Computing Foundation (CNCF) all DigitalOcean Kubernetes clusters are certified by the CNCF allowing migration to and from our platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faster cluster creation and recovery: By containerizing the control plane it spins up faster, providing faster recovery from control plane failures of any type with minimal downtime. You can also create clusters and access the Kubernetes API more quickly with the new control plane.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resiliency and Stability: The control plane automatically detects and replaces unhealthy control plane components making it more resilient to unexpected failures. The Cluster API's dynamic resizing of the control plane pods stabilizes it during unpredictable application load increases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic CPU allocation: The new control plane allocates CPU and memory resources to the control plane components on-demand, dynamically adapting to variable usage patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get new features and updates faster: The new control plane can now be updated continuously behind the scenes to ship new features and address bugs, requiring less manual interventions from you. Provisioning a control plane from a Droplet (VM) required installing components onto an immutable image. By containerizing the cluster components, they become mutable, easy to maintain, safer to roll back, and quick to adjust. You will get new capabilities and releases faster. That said, you still choose when to upgrade Kubernetes versions. You can also schedule automatic updates if desired.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Feature availability and pricing
&lt;/h2&gt;

&lt;p&gt;All new DigitalOcean Kubernetes clusters are now managed by the new control plane, which comes free with DigitalOcean Kubernetes. &lt;/p&gt;

&lt;p&gt;In addition to the benefits that come with the new control plane, when HA is enabled on your clusters, your control plane will have an SLA of 99.95%. &lt;a href="https://docs.digitalocean.com/products/kubernetes/how-to/create-clusters/#enable-high-availability"&gt;Enabling HA&lt;/a&gt; is straightforward. It is just a simple check-box or a CLI flag during the cluster creation. If you choose to enable High Availability, you pay $40/month for the control plane. We currently don't support HA for existing clusters, so to utilize HA you will need to create new clusters. &lt;/p&gt;

&lt;p&gt;We are committed to making the DigitalOcean Kubernetes experience simple for startups and tech-enabled small businesses. We look forward to working with you as you scale your business on DOKS.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was originally written by Udhay Ravindran, Senior Product Manager, Kubernetes at DigitalOcean.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>digitalocean</category>
      <category>highavailability</category>
    </item>
    <item>
      <title>Latest products and features at DigitalOcean: July 2022</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Tue, 16 Aug 2022 19:55:11 +0000</pubDate>
      <link>https://forem.com/digitalocean/latest-products-and-features-at-digitalocean-july-2022-bfp</link>
      <guid>https://forem.com/digitalocean/latest-products-and-features-at-digitalocean-july-2022-bfp</guid>
      <description>&lt;p&gt;In July,  the team at DigitalOcean has been hard at work on key product enhancements for your favorite offerings, including App Platform, DigitalOcean Storage options, developer solutions, and more. &lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean Storage 
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;DigitalOcean Spaces introduces HTTP/2 faster and safer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spaces and the Spaces CDN now support HTTP/2 clients. HTTP2 is the latest HTTP protocol and it's being used more every day. It's more secure as it uses binary protocol instead of plaintext. HTTP/2 gives a better web experience by reducing load time significantly as sending binary is faster.&lt;/p&gt;

&lt;p&gt;HTTP/2-conformant clients now receive HTTP/2 responses, while others receive HTTP/1.1 responses. In certain cases, such as when an HTTP/2 request has a formatting error, it may downgrade to HTTP/1.1 for operational reasons, as permitted by the HTTP/2 specification.&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean App Platform (PaaS)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hugo and Go Buildpacks versions NOW available&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Buildpacks are open source tools that automatically containerize raw source code so you can focus on writing code instead of containerization. DigitalOcean App Platform uses Buildpacks to containerize your source code and deploy it for you. The new updates will help Hugo and Go developers deploy faster. App Platform has Buildpacks for the most popular languages. Developers can can build and deploy &lt;a href="https://www.digitalocean.com/pricing/app-platform"&gt;3 static sites for free&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hugo Buildpack&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;We updated the default version of Hugo from 0.99.1 to 0.101.0. You can override the default version by setting a HUGO_VERSION environment variable. For more information and configuration options, see &lt;a href="https://docs.digitalocean.com/products/app-platform/reference/buildpacks/hugo/"&gt;the buildpack's documentation page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go Buildpack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We added more Go versions and default versions of Go have been updated. For more information and configuration options, see &lt;a href="https://docs.digitalocean.com/products/app-platform/reference/buildpacks/go/"&gt;the buildpack's documentation page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean Networking
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reserved IPs Floating IP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We have renamed Floating IP to &lt;a href="https://docs.digitalocean.com/products/networking/reserved-ips/"&gt;Reserved IP&lt;/a&gt;. The Reserved IP service retains the same functionality as the prior service. The decprecating &lt;a href="https://docs.digitalocean.com/reference/api/api-reference/#tag/Floating-IPs"&gt;Floating IP endpoints&lt;/a&gt; and fields (floating_ips) will remain available until the fall of 2023. Please update any automation, scripts, or services to the new Reserved IP endpoints.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Current version of &lt;a href="https://github.com/digitalocean/doctl/releases/tag/v1.77.0"&gt;doctl (v1.77.0)&lt;/a&gt; deprecates the floating-ip commands in favor of the new reserved-ip ones&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://docs.digitalocean.com/reference/api/api-reference/#tag/Reserved-IPs"&gt;New API endpoints&lt;/a&gt; and fields (reserved_ips) to reflect the name change&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use the Projects API to query Reserved IP resources, the endpoint still returns reserved IP addresses in the floating_ips field.&lt;/p&gt;

&lt;p&gt;Faster storage with NVMe proliferation to more datacenters---DigitalOcean Block Storage Volumes &lt;/p&gt;

&lt;p&gt;Newly-created Block Storage Volumes are now on NVMe-based storage at the same cost for NYC1, NYC3, SFO2, SFO3, FRA1, SGP1, LON1, and AMS3 datacenters. Most existing Block Storage Volumes remain on SSD-based storage. We're continuing to roll out NVMe, in the interim, you can migrate volumes using rsync or similar tools to copy data. &lt;/p&gt;

&lt;p&gt;The DigitalOcean API now supports listing Droplets by name by using the name query parameter, as in GET /v2/droplets?name="your_droplet_name". Learn more in the &lt;a href="https://docs.digitalocean.com/reference/api/api-reference/"&gt;API documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean Developer Solutions
&lt;/h2&gt;

&lt;p&gt;Featured Solution&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.digitalocean.com/apps/folding-home"&gt;Folding@home&lt;/a&gt; ​​is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. it brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers.&lt;/p&gt;

&lt;p&gt;Marketplace Solutions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://marketplace.digitalocean.com/apps/appwrite"&gt;Appwrite&lt;/a&gt; provides you with all the core APIs you need for building a modern application packaged together as a set of easy-to-use Docker containers.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://marketplace.digitalocean.com/apps/okteto-1"&gt;Okteto&lt;/a&gt; is a development platform for Kubernetes applications. Build better applications by developing and testing your code directly in your own Kubernetes infrastructure. &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://marketplace.digitalocean.com/apps/invoice-ninja"&gt;Invoice Ninja&lt;/a&gt; open-source platform to create &amp;amp; email invoices, track payments and expenses, and time billable tasks &amp;amp; projects for clients.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://marketplace.digitalocean.com/apps/deadletter-facial-identification-tool"&gt;Deadletter&lt;/a&gt;  facial Identification Tool - an open-source machine learning platform for research, personal and commercial applications.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://marketplace.digitalocean.com/apps/thingsboard-community-edition"&gt;ThingsBoard Community Edition&lt;/a&gt; ThingsBoard is an open-source IoT platform for data collection, processing, visualization, and device management. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try SaaS Add-Ons today!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.digitalocean.com/blog/announcing-add-ons"&gt;Add-Ons (SaaS)&lt;/a&gt; are available on-demand from innovative software providers that &lt;a href="https://marketplace.digitalocean.com/vendors"&gt;apply to the DigitalOcean Marketplace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Do you have an idea for improving our products? Submit your feedback and vote on other user suggestions on our &lt;a href="https://ideas.digitalocean.com/"&gt;ideas page&lt;/a&gt;. If you have questions, &lt;a href="https://www.digitalocean.com/community/questions"&gt;ask them here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally written by Ivan Tarin, Sr. Product Marketing Manager at DigitalOcean.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>digitalocean</category>
      <category>news</category>
      <category>releases</category>
    </item>
    <item>
      <title>How to Easily Connect to DigitalOcean's Managed MongoDB</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Tue, 07 Jun 2022 21:36:48 +0000</pubDate>
      <link>https://forem.com/digitalocean/how-to-easily-connect-to-digitaloceans-managed-mongodb-5gd1</link>
      <guid>https://forem.com/digitalocean/how-to-easily-connect-to-digitaloceans-managed-mongodb-5gd1</guid>
      <description>&lt;p&gt;So you've just created a new MongoDB database using &lt;a href="https://www.digitalocean.com/products/managed-databases-mongodb" rel="noopener noreferrer"&gt;DigitalOcean's managed databases&lt;/a&gt; and you're wondering how to connect it to your application. Whether you're building a new app, adding new features to an existing one, or just want to access your newly created database cluster, it has never been easier to connect to your MongoDB database on DigitalOcean. &lt;/p&gt;

&lt;p&gt;Simply copy the connection string provided in the Connection Details section of the dashboard and remember to replace the password field with your password and you're off to the races.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnx7c6g93zwkxdj45ir9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnx7c6g93zwkxdj45ir9.png" alt="Connection String"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you forgot or don't have your password on hand, you can generate a new one in the Users and Databases tab by clicking on the More Options menu and hitting the Reset Password button. You'll need to provide your username and then you will be able to reveal the newly generated password.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd472an7czoe6gh9ihjnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd472an7czoe6gh9ihjnc.png" alt="Reset password"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make a note of your password as you need it in just a little bit. Let's connect our MongoDB database to the official MongoDB GUI tool, &lt;a href="https://www.mongodb.com/products/compass" rel="noopener noreferrer"&gt;MongoDB Compass&lt;/a&gt;. I'll open up Compass and in the new connection card I'll add my connection string, add the password and hit Connect. If all is right, I'll be connected and can view, edit, and manipulate data in my MongoDB database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp10z0yv3avwleosawxdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp10z0yv3avwleosawxdf.png" alt="MongoDB Compass"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The same process of connecting can be applied to our applications. I have a simple NodeJS application that is going to connect to our database cluster using the MongoDB NodeJS driver and will write some data to a database called &lt;code&gt;test&lt;/code&gt; in a file called &lt;code&gt;index.js&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;MongoClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mongodb&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;MongoClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mongodb+srv://doadmin:{REPLACE-WITH-YOUR-PASSWORD}@db-mongodb-sfo3-18734-0eb71eca.mongo.ondigitalocean.com/admin?tls=true&amp;amp;authSource=admin&amp;amp;replicaSet=db-mongodb-sfo3-18734&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;useNewUrlParser&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;useUnifiedTopology&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;db&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;test&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;collection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;test&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;insertOne&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello from DigitalOcean!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="p"&gt;});&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Just like with the Compass example, we just need to provide the connection string and we'll be good to go. Let's see it in action.&lt;/p&gt;

&lt;p&gt;To run the app, from your terminal window execute the following command: &lt;code&gt;node index.js&lt;/code&gt;. The app will connect to MongoDB, insert a document in the &lt;code&gt;test&lt;/code&gt; collection, inside of a database called &lt;code&gt;test&lt;/code&gt;, and then exit.&lt;/p&gt;

&lt;p&gt;Going back to Compass and refreshing our database, we can see the newly added data. That's it! Now that you know how to connect your DigitalOcean MongoDB cluster to your applications, I can't wait to see what you will build.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi901nvjezf458t1lmheo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi901nvjezf458t1lmheo.png" alt="MongoDB Compass data"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good luck, luck and happy coding.&lt;/p&gt;

&lt;p&gt;You can watch a video walkthrough of the above tutorial below:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/zUc9xVhoFss"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>digitalocean</category>
      <category>database</category>
    </item>
    <item>
      <title>DigitalOcean Functions Challenge</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Tue, 07 Jun 2022 15:04:43 +0000</pubDate>
      <link>https://forem.com/digitalocean/digitalocean-functions-challenge-1f2c</link>
      <guid>https://forem.com/digitalocean/digitalocean-functions-challenge-1f2c</guid>
      <description>&lt;h2&gt;
  
  
  We are thrilled to announce the DigitalOcean Functions Challenge!
&lt;/h2&gt;

&lt;p&gt;Join the challenge to play with DigitalOcean Functions, learn more about the power of serverless, win prizes, and have fun along the way!&lt;/p&gt;

&lt;p&gt;What are Functions? Functions are blocks of code that run on demand without the need to manage any infrastructure. Develop on your local machine, test your code from the command line (usingdoctl), then deploy to App Platform — no servers required.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Participate
&lt;/h3&gt;

&lt;p&gt;1. Visit the &lt;a href="https://docs.digitalocean.com/products/functions/"&gt;DigitalOcean Functions docs&lt;/a&gt; to get acquainted.&lt;/p&gt;

&lt;p&gt;2. Join the #functions-challenge channel in the &lt;a href="https://discord.gg/digitalocean"&gt;DigitalOcean Discord&lt;/a&gt; (Optional)&lt;/p&gt;

&lt;p&gt;3. Create a DigitalOcean Function. You can create a function one of two ways. As a standalone function (&lt;a href="https://docs.digitalocean.com/products/functions/how-to/create-functions/"&gt;Docs&lt;/a&gt;) or a function in an App Platform app (&lt;a href="https://docs.digitalocean.com/products/app-platform/how-to/manage-functions/"&gt;Docs&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;4. Make an API request to create your shark. Instructions Below.&lt;/p&gt;

&lt;p&gt;5. Visit &lt;a href="https://functionschallenge.digitalocean.com/"&gt;functionschallenge.digitalocean.com&lt;/a&gt; and see your shark swimming in the aquarium!&lt;/p&gt;

&lt;p&gt;6. Share your shark with a friend or your community.&lt;/p&gt;

&lt;p&gt;7. Let us know you've completed your challenge by &lt;a href="https://forms.gle/TP5vV3XKCQ2G4EaDA"&gt;filling out this form&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;8. Upon successfully completing these steps participants will earn a DigitalOcean T-shirt and DigitalOcean Sammy Stickers (up to the 500th participant.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://functionschallenge.digitalocean.com/"&gt;Join the Functions Challenge!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Succeed
&lt;/h3&gt;

&lt;p&gt;Follow these instructions in order to earn the prize&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Your shark must be created during the dates of the challenge, June 7 - July 7, 2022. The submission period ends at 11:59 pm PST/ 8 AM UTC on July 7, 2022.&lt;/li&gt;
&lt;li&gt;  Challenge participants must be at least 18+ years old.&lt;/li&gt;
&lt;li&gt;  Participants must submit projects individually and only one per participant.&lt;/li&gt;
&lt;li&gt;  The project must be deployed either as a standalone function (&lt;a href="https://docs.digitalocean.com/products/functions/how-to/create-functions/"&gt;Docs&lt;/a&gt;) or a function in an App Platform app (&lt;a href="https://docs.digitalocean.com/products/app-platform/how-to/manage-functions/"&gt;Docs&lt;/a&gt;.)&lt;/li&gt;
&lt;li&gt;  Once your shark is swimming in the aquarium, participants must share the experience your community to grow the number of sharks in the aquarium.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://functionschallenge.digitalocean.com/"&gt;Join the Functions Challenge!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to make an API request to create your shark
&lt;/h3&gt;

&lt;p&gt;Visit the docs and create your &lt;a href="https://docs.digitalocean.com/products/functions/"&gt;DigitalOcean Function&lt;/a&gt;. You can create a function one of two ways. As a standalone function or a function in an App Platform app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;API URL&lt;br&gt;
POST &lt;code&gt;https://functionschallenge.digitalocean.com/api/sammy&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Header: Accept&lt;br&gt;
&lt;code&gt;application/json&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Header: Content-Type&lt;br&gt;
&lt;code&gt;application/json&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parameter: name&lt;br&gt;
Your name!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parameter: type&lt;br&gt;
The type of Sammy: &lt;code&gt;sammy, retro, pony, punk, pizza, bootcamp, dinosaur, robot, xray&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visit &lt;a href="https://functionschallenge.digitalocean.com/"&gt;functionschallenge.digitalocean.com&lt;/a&gt; and see your shark swimming in the aquarium!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://functionschallenge.digitalocean.com/"&gt;Join the Functions Challenge!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn then Build
&lt;/h3&gt;

&lt;p&gt;Resources to help you get started&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regional availability&lt;/strong&gt;: DigitalOcean Functions will be available in: NYC, AMS, SFO, SGP, LON, FRA, TOR, BLR regions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;: View our &lt;a href="https://docs.digitalocean.com/products/functions"&gt;documentation&lt;/a&gt; to learn more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample apps&lt;/strong&gt;: Learn about &lt;a href="https://github.com/do-community/functions-resources"&gt;sample apps&lt;/a&gt; available for DigitalOcean Functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Walkthrough video&lt;/strong&gt;: See &lt;a href="https://www.youtube.com/watch?v=rR4R9tp-4bs/"&gt;here&lt;/a&gt; for a walkthrough of DigitalOcean Functions.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rR4R9tp-4bs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Manage Functions in App Platform&lt;/strong&gt;: &lt;a href="https://docs.digitalocean.com/products/app-platform/how-to/manage-functions/"&gt;How to&lt;/a&gt; develop on your local machine, test your code from the command line usingdoctl, then deploy to App Platform --- no servers required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://functionschallenge.digitalocean.com/"&gt;Join the Functions Challenge!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Get Help
&lt;/h3&gt;

&lt;p&gt;Join the #functions-challenge channel in the &lt;a href="https://discord.gg/digitalocean"&gt;DigitalOcean Discord&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Mentors
&lt;/h3&gt;

&lt;p&gt;These are your DigitalOcean Functions Challenge Mentors who will be helping answer your questions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/nerdypaws"&gt;Amy Negrette&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/kimschles"&gt;Kim Schlesinger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/KukicAdo"&gt;Ado Kukic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>digitalocean</category>
      <category>serverless</category>
      <category>functions</category>
    </item>
    <item>
      <title>Introducing DigitalOcean Functions: A powerful serverless computing solution</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Tue, 24 May 2022 17:50:16 +0000</pubDate>
      <link>https://forem.com/digitalocean/introducing-digitalocean-functions-a-powerful-serverless-computing-solution-3c48</link>
      <guid>https://forem.com/digitalocean/introducing-digitalocean-functions-a-powerful-serverless-computing-solution-3c48</guid>
      <description>&lt;p&gt;DigitalOcean is committed to providing products that serve developers throughout their journey, and access to serverless computing has been one of the most popular requests from DigitalOcean users who want to spend less time managing their infrastructure and more time building impactful applications. In recent years, serverless computing has gained tremendous popularity among developers building modern apps, and according to IDC's IaaSView buyer survey, 25% of cloud IaaS buyers intend to utilize serverless functions in the next 12 months. In September 2021, DigitalOcean acquired Nimbella to accelerate our introduction of serverless computing, and today we're delighted to announce the general availability of our serverless product, &lt;a href="https://www.digitalocean.com/products/functions"&gt;DigitalOcean Functions&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;DigitalOcean Functions is a fast, scalable, and cost-effective compute solution that enables you to build quickly, scale automatically, and save costs by removing the need to pay for idle resources. Functions are snippets of code that run in response to event-based triggers, and builders of all kinds can now create serverless functions on DigitalOcean for a variety of purposes, including serverless APIs for your web apps and mobile apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of DigitalOcean Functions
&lt;/h2&gt;

&lt;p&gt;DigitalOcean Functions enable higher developer productivity and lower operating costs. Some of the benefits include: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Enabling developers to focus more on their code. Since the provisioning and scaling of resources are managed by DigitalOcean, you can spend your valuable time improving your app.&lt;/li&gt;
&lt;li&gt;  Saving costs by eliminating the need to maintain idle servers. Since functions run in response to certain events, you pay for resources only when they are running.&lt;/li&gt;
&lt;li&gt;  Automatic scaling based on demand. DigitalOcean will handle scaling of the infrastructural components so you don't have to. &lt;/li&gt;
&lt;li&gt;  Getting to market faster without having to learn complex infrastructure-oriented concepts such as containers and Kubernetes. You can write functions in your preferred language and deploy them easily in just a few steps.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why use DigitalOcean Functions
&lt;/h2&gt;

&lt;p&gt;With DigitalOcean Functions, we manage the resources and automatically scale them (either up or down) based on demand. This solution is uniquely positioned to serve the needs of developers and businesses by providing the ability to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Build apps that require on-demand functions as well as long-running containers. In many scenarios, developers want to extend their apps running on containers or static sites with serverless components. For example, a developer with a container-based app could add a function as an API endpoint, enabling them to easily extend their app running on containers with serverless components. This results in faster time to market and lower costs since they don't need to pre-provision containers, and means variations in traffic to parts of the app are handled without a full app rewrite.&lt;/li&gt;
&lt;li&gt;  Test your functions before pushing to production. DigitalOcean Functions includes a developer console and a command line tool so you can develop functions locally using your favorite editors and IDEs, ship quickly to the cloud, and test your serverless functions before committing your code to GitHub or GitLab to deploy your app to production. The developer tooling is free to use, conveniently accessible from your local terminal, and available to you out of the box.&lt;/li&gt;
&lt;li&gt;  Seamlessly integrate with Managed Databases. DigitalOcean offers a comprehensive set of services including Managed Databases for MySQL, Redis, PostgreSQL, and MongoDB so that you can easily add a managed database in the app creation workflow. Your app can have a DigitalOcean functions component that's triggered based on HTTP requests to update the database. For example, if you have an e-commerce site and a user adds an item to the shopping cart, an API can trigger a function to update the database that maintains inventory data. Connections to the database utilize security features such as trusted sources.&lt;/li&gt;
&lt;li&gt;  Enjoy support for common languages and runtimes. DigitalOcean Functions supports many of the most popular runtimes, including Node.js, Python, Go, and PHP. We take care of applying patches and other updates to ensure the execution environment is stable and secure.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pricing, documentation, and availability 
&lt;/h2&gt;

&lt;p&gt;You get 90,000GB-seconds of usage for free per month and overages are charged at $0.0000185/GB-second. There is no separate charge for function invocations. In other words, the pricing is simpler, more affordable, and predictable.&lt;/p&gt;

&lt;p&gt;Please refer to the &lt;a href="https://www.digitalocean.com/pricing/functions"&gt;pricing page&lt;/a&gt; to learn more about the limits of memory and runtime for DigitalOcean Functions. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Regional availability: DigitalOcean Functions will be available in: NYC, AMS, SFO, SGP, LON, FRA, TOR, BLR regions.&lt;/li&gt;
&lt;li&gt;  Documentation: View our &lt;a href="https://docs.digitalocean.com/products/functions"&gt;documentation&lt;/a&gt; to learn more.&lt;/li&gt;
&lt;li&gt;  Sample apps: Learn about &lt;a href="https://github.com/do-community/functions-resources"&gt;sample apps&lt;/a&gt; available for DigitalOcean Functions.&lt;/li&gt;
&lt;li&gt;  Walkthrough video: See below for a walkthrough of DigitalOcean Functions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rR4R9tp-4bs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking forward 
&lt;/h2&gt;

&lt;p&gt;Over the next few months, we'll be adding more ways for you to invoke and configure your functions such as background functions, scheduling, and many more exciting use cases. We'll also be adding support for more language runtimes and scheduled functions. Stay tuned for more updates! &lt;/p&gt;

&lt;p&gt;We hope that you're excited about this release and that you'll give &lt;a href="https://cloud.digitalocean.com/functions?i=97a18e"&gt;DigitalOcean Functions&lt;/a&gt; a try. Check out the &lt;a href="https://docs.digitalocean.com/products/functions"&gt;docs&lt;/a&gt; for more information and join our upcoming &lt;a href="https://try.digitalocean.com/serverless-event-amer/"&gt;serverless event in the Americas&lt;/a&gt; and &lt;a href="https://try.digitalocean.com/serverless-event-apac/"&gt;APAC&lt;/a&gt; to dive deeper into the product, how-to guidance, and use cases on June 7, 2022. If you'd like to have a conversation about using DigitalOcean Functions in your business, please &lt;a href="https://www.digitalocean.com/company/contact/sales/"&gt;contact our sales team&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;-Serverless Business Unit at DigitalOcean&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>functions</category>
      <category>digitalocean</category>
    </item>
    <item>
      <title>Find DigitalOcean at KubeCon + CloudNativeCon EU 2022</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Fri, 13 May 2022 21:36:55 +0000</pubDate>
      <link>https://forem.com/digitalocean/find-digitalocean-at-kubecon-cloudnativecon-eu-2022-5cp0</link>
      <guid>https://forem.com/digitalocean/find-digitalocean-at-kubecon-cloudnativecon-eu-2022-5cp0</guid>
      <description>&lt;p&gt;We're thrilled to meet up with technologists from leading open source and cloud native communities at &lt;a href="https://kccnceu2022.sched.com/"&gt;KubeCon + CloudNativeCon Europe 2022&lt;/a&gt;. This year, DigitalOcean will join talented individuals across industries to share how cloud native tech can speed up development while lowering overall costs. &lt;/p&gt;

&lt;p&gt;We'd love to meet you there! On Monday, May 16, our Cloud Native Developer Advocate, &lt;a href="https://twitter.com/kimschles"&gt;Kim Schlesinger&lt;/a&gt;, will be on-site at the &lt;a href="https://dok.community/dok-day-europe-2022-kubecon/"&gt;Data on Kubernetes Day&lt;/a&gt;, an event running from 8:45 - 17:30 CET. DigitalOcean is proud to sponsor the &lt;a href="https://dok.community/"&gt;DoK Community&lt;/a&gt;, and Kim will have plenty of DigitalOcean swag to give away, so come say hello and grab some Sammy swag. All DoK Day talks will be live-streamed if you can't attend in person. &lt;/p&gt;

&lt;p&gt;On Thursday, May 19, from 11:00 - 12:30 CET,  you'll find Kim facilitating &lt;a href="https://kccnceu2022.sched.com/event/yto4/gitops-to-automate-the-setup-management-and-extension-a-k8s-cluster-kim-schlesinger-digitalocean"&gt;GitOps to Automate the Setup, Management, and Extension of a Kubernetes Cluster&lt;/a&gt;. Join the workshop and learn how to set up a GitOps pipeline with Terraform, FluxCD, and Crossplane to manage a Kubernetes cluster. &lt;/p&gt;

&lt;p&gt;Later on Thursday, May 19, from 16:30 - 17:05 CET, &lt;a href="https://twitter.com/maybeawg"&gt;Adam Wolfe Gordon&lt;/a&gt; and &lt;a href="https://github.com/waynr/"&gt;Wayne Warren&lt;/a&gt;, senior software engineers working on DigitalOcean Managed Kubernetes and the DigitalOcean Container Registry, will be hosting &lt;a href="https://kccnceu2022.sched.com/event/ytqU/from-docker-push-to-bytes-on-disk-inside-distribution-wayne-warren-adam-wolfe-gordon-digitalocean"&gt;From &lt;code&gt;docker push&lt;/code&gt; to Bytes on Disk: Inside Distribution&lt;/a&gt;. In the talk, Adam and Wayne will describe how &lt;code&gt;docker pull&lt;/code&gt; and &lt;code&gt;docker push&lt;/code&gt; work by explaining how a container image makes it from your computer to the cloud, what it looks like when it gets there, and what happens when you ask for it back. &lt;/p&gt;

&lt;h2&gt;
  
  
  Follow DigitalOcean for more cloud native content
&lt;/h2&gt;

&lt;p&gt;If you can't attend the conference but still want to keep up with the Kubernetes news of the week, join us for our weekly talk show, &lt;a href="https://www.digitalocean.com/community/pages/cloud-chats"&gt;Cloud Chats&lt;/a&gt;, on Thursday, May 19, at 11:00 am ET. The Cloud Chats crew will get an update from KubeCon + CloudNativeCon EU and discuss the tech news of the week. &lt;/p&gt;

&lt;p&gt;To find out what all the Kubernetes hype is about, or if you'd like to improve your DevOps skills, check out our library of &lt;a href="https://www.digitalocean.com/landing/doks-resources"&gt;Kubernetes Resources&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To learn about what's new with DigitalOcean Managed Kubernetes, check out our &lt;a href="https://www.digitalocean.com/blog/new-in-digitalocean-kubernetes-may-2022"&gt;May 2022 Feature Releases Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>digitalocean</category>
      <category>kubecon</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>How to Integrate MongoDB Into Your Next.js App</title>
      <dc:creator>Ado Kukic</dc:creator>
      <pubDate>Thu, 10 Sep 2020 23:06:13 +0000</pubDate>
      <link>https://forem.com/kukicado/how-to-integrate-mongodb-into-your-next-js-app-42ok</link>
      <guid>https://forem.com/kukicado/how-to-integrate-mongodb-into-your-next-js-app-42ok</guid>
      <description>&lt;p&gt;Are you building your next amazing application with &lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt;? Do you wish you could integrate MongoDB into your Next.js app effortlessly? Do you need this done before your coffee is done brewing? If you answered yes to these three questions, I have some good news for you. We have created an official &lt;a href="https://github.com/vercel/next.js/tree/canary/examples/with-mongodb"&gt;Next.js&amp;lt;&amp;gt;MongoDB&lt;/a&gt; integration that will have you up and running in minutes, and you can consider this tutorial your official guide on how to use it.&lt;/p&gt;

&lt;p&gt;In this tutorial, we'll take a look at how we can use the &lt;a href="https://github.com/vercel/next.js/tree/canary/examples/with-mongodb"&gt;with-mongodb example&lt;/a&gt; to create a new Next.js application that follows MongoDB best practices for connectivity, connection pool monitoring, and querying. We'll also take a look at how to use MongoDB in our Next.js app with things like serverSideProps and APIs. Finally, we'll take a look at how we can easily deploy and host our application on &lt;a href="https://vercel.com/"&gt;Vercel&lt;/a&gt;, the official hosting platform for Next.js applications. If you already have an existing Next.js app, not to worry, simply drop in the &lt;a href="https://github.com/vercel/next.js/blob/canary/examples/with-mongodb/util/mongodb.js"&gt;MongoDB utility file&lt;/a&gt; into your existing project and you are good to go. We have a lot of exciting stuff to cover, so let's dive right in!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mongodb.com/how-to/nextjs-with-mongodb"&gt;Continue Reading on MongoDB Developer Hub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>nextjs</category>
      <category>vercel</category>
    </item>
  </channel>
</rss>
