<?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: Douglas Rogers</title>
    <description>The latest articles on Forem by Douglas Rogers (@standingdreams).</description>
    <link>https://forem.com/standingdreams</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%2F251506%2Fae473b38-71e9-4859-a1f6-a8d8c29e77af.png</url>
      <title>Forem: Douglas Rogers</title>
      <link>https://forem.com/standingdreams</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/standingdreams"/>
    <language>en</language>
    <item>
      <title>Heroku vs DigitalOcean: Deploying to Heroku</title>
      <dc:creator>Douglas Rogers</dc:creator>
      <pubDate>Wed, 20 May 2020 10:30:00 +0000</pubDate>
      <link>https://forem.com/standingdreams/heroku-vs-digitalocean-deploying-to-heroku-5110</link>
      <guid>https://forem.com/standingdreams/heroku-vs-digitalocean-deploying-to-heroku-5110</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n9Kaqj-P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AsFha6830Jf3D64TTxfsakA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n9Kaqj-P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AsFha6830Jf3D64TTxfsakA.png" alt=""&gt;&lt;/a&gt;FINALLY deployed to Heroku!!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Experiment’s Table of Contents&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Part 1: &lt;a href="https://medium.com/@standingdreams/heroku-vs-digital-ocean-an-experiment-in-the-making-ce375e7976d"&gt;An Experiment in the Making&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Part 2: &lt;a href="https://medium.com/@standingdreams/heroku-vs-digitalocean-getting-started-with-digitalocean-8d55d6c8346d"&gt;Getting Started with DigitalOcean&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Part 3: &lt;a href="https://medium.com/@standingdreams/heroku-vs-digitalocean-handling-redirects-with-digitalocean-84a190776d8e"&gt;Handling Redirects with DigitalOcean&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Part 4: &lt;a href="https://medium.com/@standingdreams/heroku-vs-digital-ocean-the-experiment-continues-1ac1b99e39b"&gt;The Experiment Continues&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Part 5: Deploying to Heroku&lt;/p&gt;

&lt;p&gt;I’ve gotten a few requests to hurry up with this experiment. It’s been a while…I know. But finally…I’ve done it: I’ve deployed &lt;a href="https://sd-heroku.herokuapp.com/"&gt;my personal portfolio&lt;/a&gt; to Heroku successfully!&lt;/p&gt;

&lt;p&gt;If you don’t already know, Heroku is an ephemeral PaaS. Again, I’m a front-end guy so that statement is foreign language to me. Ultimately, it means that while it allows you to deploy a website onto the platform, it does not give you full hosting like say &lt;a href="https://m.do.co/c/0d5110e21375"&gt;DigitalOcean&lt;/a&gt; or &lt;a href="https://mdtm.pl/2V5anVA"&gt;MediaTemple&lt;/a&gt;. You have to figure out database and image management yourself. They do have a ton of add-ons (which we will get into later) that can aid in this process. However, if you are not careful the cost for these addons can pile up quickly. Heroku offers a free tier so that you can test. You get 1,000 dyno hours per month. Be careful because that is a 1,000 dyno hours a month for ALL free applications under your account…not 1,000 per application.&lt;/p&gt;

&lt;p&gt;Considering this is a portfolio site and I’m not famous (…yet) traffic to my portfolio is abysmal. Keeping my portfolio on Heroku’s free tier doesn’t seem like a huge issue to me. I have the ability to add a custom domain to the site. The only challenge is that free dynos do not stay woke. Meaning after 30 minutes of inactivity, it goes to sleep and has to be re-awaken. That re-awaken period can take a second for visitors. There are &lt;a href="https://medium.com/@marklocklear/a-tip-for-keeping-your-heroku-app-alive-is-to-set-up-a-monitoring-service-statuscake-is-free-to-4b1163d0919"&gt;methods&lt;/a&gt; to make sure your dyno remains on but…that’s for another post. Also, going to a paid tier allows me to add a SSL certificate to the domain.&lt;/p&gt;

&lt;p&gt;Going back to my list, my next steps were as follows: — Find a cloud database solution — Install Perch’s Cloudinary Template filter onto the site — Connect Github and Heroku — Deploy site to Heroku&lt;/p&gt;

&lt;p&gt;First things first, I had to create a Heroku app. There are a few ways to make that happen. You can do this the Matrix Way (aka command line) or the WYSIWYG Way (aka Heroku’s dashboard). I wanted to feel like a super backend developer so I opted the Matrix Way. I followed the &lt;a href="https://devcenter.heroku.com/articles/getting-started-with-php"&gt;instructions&lt;/a&gt; for the PHP setup since the site is ran on PHP but built using NodeJS.&lt;/p&gt;

&lt;p&gt;Note: When running a site on Heroku with PHP, you have to have a composer.json file. My file is completely empty considering I don’t have any PHP dependencies on the site. The file still is needed as it indicates that you have PHP site that needs to be built. This is Heroku’s attempt at a zero configuration set up.&lt;/p&gt;

&lt;p&gt;By the end of the instructions, you’ve got your site up and running…but I still needed to add NodeJS to my build since I don’t ship any destination files via Git. I won’t lie: THIS PART KICKED MY BUTT. After a lot of testing and experimenting, I finally wrapped my head around &lt;a href="https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app"&gt;adding a new Buildpack&lt;/a&gt; and was able to get my site built and deployed properly to Heroku.&lt;/p&gt;

&lt;p&gt;Next, it was time to get a database together. Remember those addons I spoke of? Well, Heroku has a bunch of them to help you out in this department. I ended up using &lt;a href="https://elements.heroku.com/addons/cleardb"&gt;ClearDB&lt;/a&gt; for the database. I opted to leave my WordPress instance out of the Heroku part of the experiment. We’ll talk more to that in the final post.&lt;/p&gt;

&lt;p&gt;Next, was the images that get uploaded to Perch. All of my portfolio screenshots are uploaded via the backend of Perch. So what I needed as a way to easily host these images. Heroku does have addons like &lt;a href="https://elements.heroku.com/addons/cloudcube"&gt;Cloudcube&lt;/a&gt; and &lt;a href="https://elements.heroku.com/addons/hdrive"&gt;HDrive&lt;/a&gt; but I wanted something a little more easy and cheaper. I landed on Cloudinary as my cloud asset host. You can see more about my decision in my &lt;a href="https://medium.com/@standingdreams/heroku-vs-digital-ocean-the-experiment-continues-1ac1b99e39b"&gt;previous post&lt;/a&gt;. I did chose to scrap Perch’s Cloudinary Template filter. I found one but decided against using it and just simply used the &lt;a href="https://cloudinary.com/documentation/fetch_remote_images"&gt;Autoupload method&lt;/a&gt; of getting images into Cloudinary.&lt;/p&gt;

&lt;p&gt;The last part to figure out was how to get environment variables to point to the database. On &lt;a href="https://m.do.co/c/0d5110e21375"&gt;DigitalOcean&lt;/a&gt;, I could simply upload a config.local.php file to my site that was not kept inside of Git. Heroku doesn't have an FTP option so I was left with their config variables in the app settings. This feature was pretty nifty since now all my private data is left outside of Git and still accessible to the app.&lt;/p&gt;

&lt;p&gt;After figuring all the above out, I must say…Heroku is not that bad. Figuring all this stuff out is a pain in the butt. However, once you get it down, it makes for a great and cheap alternative to traditional hosting for sites that don’t receive a lot of traffic.&lt;/p&gt;

&lt;p&gt;And that’s it folks. I’m going to sit on this site for a little bit. I would love fabricate some traffic to the site to see how it handles it. That way I can experiment with scaling the site up. Let me know in the comments if you guys would like to see a video version of this experiment that walks thru all the steps and my thought process.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: Some of the links provided in this article are referral links where I get bonus time on the services if you click and sign up.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>heroku</category>
      <category>webhosting</category>
      <category>devops</category>
      <category>digitalocean</category>
    </item>
    <item>
      <title>Heroku vs DigitalOcean: Handling Redirects with DigitalOcean</title>
      <dc:creator>Douglas Rogers</dc:creator>
      <pubDate>Tue, 17 Dec 2019 20:24:54 +0000</pubDate>
      <link>https://forem.com/standingdreams/heroku-vs-digitalocean-handling-redirects-with-digitalocean-470g</link>
      <guid>https://forem.com/standingdreams/heroku-vs-digitalocean-handling-redirects-with-digitalocean-470g</guid>
      <description>&lt;p&gt;I asked for total control and I got total control. One of the first issues I came across was that my site was no longer reading my &lt;code&gt;.htaccess&lt;/code&gt; file. I had all these lovely redirects for previous blogs, &lt;code&gt;non-www&lt;/code&gt; traffic, etc. Welp…all gone. I was so used to &lt;a href="http://bit.ly/2hnP7tF"&gt;MediaTemple&lt;/a&gt; handling that for me. Well, those days are gone now that I’m on &lt;a href="https://m.do.co/c/0d5110e21375"&gt;DigitalOcean&lt;/a&gt;, or at least until the end of my 30 days are over.&lt;/p&gt;

&lt;p&gt;I had to get my hands dirty if I wanted to get my redirects back in order. That meant turning to DigitalOcean’s documentation. Apache does not allow &lt;code&gt;.htaccess&lt;/code&gt; files to override things out the box. Not sure why. I’m sure it’s a good reason but that reason is beyond me. Again…I’m not a DevOps guys. You can do this one of a few ways: via the command line or FTP into your Droplet and navigate to &lt;code&gt;/etc/apache2/apache2.conf&lt;/code&gt;. I chose the latter. But also not that you STILL will need to access your Droplet via command line so that you can restart Apache and enable &lt;code&gt;mod_rewrite&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Towards the bottom of apache2.conf you want to add the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;Directory /var/www/html/&amp;gt;
    AllowOverride All
&amp;lt;/Directory&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save this out, turn to the command line if you are not already there and &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-connect-to-your-droplet-with-ssh"&gt;SSH into your Droplet&lt;/a&gt;. You’re going to need &lt;code&gt;mod_rewrite&lt;/code&gt; so that WordPress can use permalinks and various other reasons. To enable &lt;code&gt;mod_rewrite&lt;/code&gt; insert the following after you’ve logged into your Droplet via SSH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo a2enmod rewrite
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can run sudo apache2ctl configtest to ensure that you haven’t made any syntax errors. You should see Syntax OK. If you see the following, that’s fine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to suppress this message, we will need to open the main configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/apache2/apache2.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At the bottom of this file you will need to add what’s called a &lt;code&gt;ServerName&lt;/code&gt; directive pointing to your domain (or IP Address if you have not set up your domain yet).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ServerName replace_this_with_your_server_domain_or_IP_here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save and close the file when you are finished. You can re-run &lt;code&gt;sudo apache2ctl configtest&lt;/code&gt; and you should not get that long message above &lt;code&gt;Syntax OK&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Last but not least, restart Apache.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart apache2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pretty intense, right? Well, that was just the beginning. You still have to add rules to &lt;code&gt;000-default-le-ssl.conf&lt;/code&gt; if you installed a SSL Certificate! Like I said before: if you are scared of the command line or running things yourself, run away!!!&lt;/p&gt;

&lt;p&gt;Navigate to &lt;code&gt;/etc/apache2/sites-available/000-default-le-ssl.conf&lt;/code&gt; in you FTP client or open it up in the command line by typing &lt;code&gt;sudo nano /etc/apache2/sites-available/000-default-le-ssl.conf.&lt;/code&gt; We want to add rewrite rules in here. You could enable &lt;code&gt;.htaccess&lt;/code&gt; files and do it that way but since I have control over config files, I figured I’d do it this way.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RewriteEngine On
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteRule ^/(.*)         https://www.example.com/$1 [L,R]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;example.com&lt;/code&gt; with your own domain. If you are looking to use a &lt;code&gt;non-www&lt;/code&gt; URL for your site, remove the &lt;code&gt;www&lt;/code&gt; from the block above. Save the file and restart Apache.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart apache2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Again, not for the faint at heart. If you are having issues yourself, I suggest you refer to DigitalOcean’s amazing documentation for more help.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Where do devs go online to chat?</title>
      <dc:creator>Douglas Rogers</dc:creator>
      <pubDate>Thu, 12 Dec 2019 18:08:32 +0000</pubDate>
      <link>https://forem.com/standingdreams/where-do-devs-go-online-to-chat-3n5o</link>
      <guid>https://forem.com/standingdreams/where-do-devs-go-online-to-chat-3n5o</guid>
      <description>&lt;p&gt;Aside from Twitter and Reddit, where else do developers to go chat? I've realized that I've just been in my own bubble, pounding away at my keyboard and I have not made many developer friends/buddies/communities. I have a few developer coworkers that I chat with from time to time. But where else is there for us to go to connect with one another?&lt;/p&gt;

&lt;p&gt;Twitter contains so much noise that it's difficult to facilitate a conversation. Places like Reddit and Hacker News, to me, foster a bunch of bullies waiting to tell you that your post sucks or for moderates to delete your post because you said "I" too many times.&lt;/p&gt;

&lt;p&gt;Are there Discord channels? Slack channels? IRC Chatrooms? (FYI: I've NEVER got a chance to learn IRC)&lt;/p&gt;

&lt;p&gt;Lets discuss.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Heroku vs DigitalOcean: Getting Started with DigitalOcean</title>
      <dc:creator>Douglas Rogers</dc:creator>
      <pubDate>Fri, 22 Nov 2019 14:41:35 +0000</pubDate>
      <link>https://forem.com/standingdreams/heroku-vs-digitalocean-getting-started-with-digitalocean-29j0</link>
      <guid>https://forem.com/standingdreams/heroku-vs-digitalocean-getting-started-with-digitalocean-29j0</guid>
      <description>&lt;p&gt;The Experiment’s Table of Contents&lt;br&gt;
Part 1: &lt;a href="https://dev.to/standingdreams/heroku-vs-digitalocean-an-experiment-in-the-making-44kj"&gt;An Experiment in the Making&lt;/a&gt;&lt;br&gt;
Part 2: Getting Started with DigitalOcean&lt;/p&gt;




&lt;p&gt;The reason I'm getting started with this project is because I ran across this Chrome extension that does a variety of audits on your websites including SEO, security and performance. I got a 35% in the security department. While trying to figure out ways to increase that score, I realized how little I was able to do that with my MediaTemple GridContainer. I contacted MediaTemple to ask how I could alter the &lt;code&gt;httpd.conf&lt;/code&gt; file and they told me I didn't have access to the root because I was on shared hosting. Unacceptable.&lt;/p&gt;

&lt;p&gt;Between &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fm.do.co%2Fc%2F0d5110e21375" rel="noopener noreferrer"&gt;DigitalOcean&lt;/a&gt; (I will refer to DigitalOcean as DO from here on) and Heroku, DO is definitely the platform that gives me the most control over my server. As I mentioned in the previous post, DigitalOcean is an IaaS, so they give us a server and leaves it up to me to decide upon and make use of other software to setup, interact, maintain and deploy code to the server. If I want a LAMP stack, then I must decide what version of Ubuntu to use, install Apache, setup a firewall, install MySQL, install PHP and its various components and PHPMyAdmin.&lt;/p&gt;

&lt;p&gt;Luckily, DO provides &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Ftutorials%2Fhow-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04" rel="noopener noreferrer"&gt;great documentation&lt;/a&gt; to help you get off the ground with all of this. I had no problems following the steps and had my server up and running with in x. If working in the command line gives you the heebie jeebies, then first off you may not want to explore this project. You will be all up and through the command line working with DO so just stay away. Secondly, DO makes it easy for you by providing one-click apps that have a variety of pre-configured applications for you to use, including LEAN stack, WordPress, MongoDB and PHPMyAdmin. The command line makes me feel like I'm in the Matrix so I'm starting from the bottom floor of it all and installing every single thing by myself.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0xpq8s7qpakbyn9b8k99.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0xpq8s7qpakbyn9b8k99.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DO has superb documentation on how to do everything from &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Ftutorials%2Fhow-to-create-your-first-digitalocean-droplet" rel="noopener noreferrer"&gt;creating your first Droplet&lt;/a&gt; to &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Ftutorials%2Fhow-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04" rel="noopener noreferrer"&gt;installing Linux, Apache, MySQL and PHP on on Ubuntu&lt;/a&gt;. I decided to run with Ubuntu 16.04.3. DO has version 17.10 available but after some research, there wasn't much of a difference and the documentation uses 16.04.3 so I kept it that way for consistency. I'm not going to get into too much details of my set up because it was pretty basic for setting up this experiment. I figured that I'd start low and scale up if I need to, &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Ftutorials%2Fhow-to-resize-your-droplets-on-digitalocean" rel="noopener noreferrer"&gt;which DO makes possible&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The one challenging part that I came across was installing PHP packages. I had to do a little digging on what packages would be necessary for WordPress as a base to start off with. My logic was if I start there I would have a solid foundation. But if anything breaks…meh, it's my site. For those looking for this answer, these are the PHP packages I ended up installing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;php7.0-cgi&lt;/li&gt;
&lt;li&gt;php7.0-cli&lt;/li&gt;
&lt;li&gt;php-dev&lt;/li&gt;
&lt;li&gt;php-all-dev&lt;/li&gt;
&lt;li&gt;php7.0-mysql&lt;/li&gt;
&lt;li&gt;php7.0-xmlrpc&lt;/li&gt;
&lt;li&gt;php7.0-curl&lt;/li&gt;
&lt;li&gt;php7.0-gd&lt;/li&gt;
&lt;li&gt;php-apcu&lt;/li&gt;
&lt;li&gt;php-pear&lt;/li&gt;
&lt;li&gt;php7.0-pspell&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure that you are using PHP7 or else you'll need a different set of packages.&lt;/p&gt;

&lt;p&gt;Once I was done with installing all those packages, I moved on to database management. I was going to use PHPMyAdmin but figured I could rely on good ole' &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fsequelpro.com%2F" rel="noopener noreferrer"&gt;Sequel Pro&lt;/a&gt;. That would be one less thing I have to install and secure. Just note the MySQL Host and SSH Host are your Droplet's IP Address and Sequel Pro automatically checks for the usual location &lt;code&gt;~/.ssh&lt;/code&gt; for SSH Keys. If you have it in a custom location, you'll need to point Sequel Pro there.&lt;/p&gt;

&lt;p&gt;From Sequel Pro, I created a database user and created a database for WordPress and &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fgrabaperch.com%2Fref%2Froger6%2F" rel="noopener noreferrer"&gt;Perch&lt;/a&gt;. Note: if you want to connect to Sequel Pro with that new database user, the Username and Password is the new database user's name and it's password while the SSH Host and SSH User is still the root server user. In the tutorial, it recommends you create a different server user than root and I recommend you use that server user. I know…that's a tad confusing but it will make sense once you go thru all the documentations. I may just create a separate post.&lt;/p&gt;

&lt;p&gt;After the database was all ready, I uploaded my portfolio. I was met with this initially:&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnkty7cj3br5sxoidzd8u.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnkty7cj3br5sxoidzd8u.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this moment I'm thinking "OMG!!! What is happening?!?!"&lt;br&gt;
It took me a minute to discover the &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Ftutorials%2Fhow-to-install-wordpress-with-lamp-on-ubuntu-16-04" rel="noopener noreferrer"&gt;"How To Install WordPress with LAMP on Ubuntu 16.04"&lt;/a&gt; for some reason (read: I discovered it a while ago but did not follow the instructions) and that left me in the dark about enabling &lt;code&gt;.htaccess&lt;/code&gt;, &lt;code&gt;mod_rewrite&lt;/code&gt;, and disabling indexes. I figured it out eventually (again…followed the instructions properly) but it was painful before discovering that tutorial.&lt;/p&gt;

&lt;p&gt;After pulling my hair out and downing a bottle of whiskey, I finally had my portfolio up and running. Then I turned my attention to the WordPress blog. Let me say this: No one probably visits my WordPress blog. It is the first version of &lt;a href="https://www.standingdreams.com" rel="noopener noreferrer"&gt;Standing Dreams&lt;/a&gt; and was like a music/lifestyle blog and my portfolio. BUT, for the purposes of this blog series, I wanted to maintain it and see what it takes to move from one service to the next.&lt;/p&gt;

&lt;p&gt;I got my portfolio up. I got my blog up. Now it's time to move on to the big move. I had to wait a few days because my domain was with Media Temple and I wanted to move it to Google Domains. After getting all that situated, it was a pretty easy move. I was able to install my &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fletsencrypt.org%2F" rel="noopener noreferrer"&gt;Let's Encrypt&lt;/a&gt; SSL Certificate relatively easy as well. With Media Temple, I had to go thru a crazy process to install a SSL Certificate from Let's Encrypt. They also would not allow me to auto renew this SSL Certificate so every 90 days I was renewing my SSL Certificate.&lt;/p&gt;

&lt;p&gt;So far, so good. I definitely have full control over my server. I will keep you guys updated with challenges I face over the next few weeks.&lt;/p&gt;

</description>
      <category>heroku</category>
      <category>digitalocean</category>
      <category>devops</category>
      <category>security</category>
    </item>
    <item>
      <title>Heroku vs DigitalOcean: An Experiment in the Making</title>
      <dc:creator>Douglas Rogers</dc:creator>
      <pubDate>Fri, 15 Nov 2019 03:36:24 +0000</pubDate>
      <link>https://forem.com/standingdreams/heroku-vs-digitalocean-an-experiment-in-the-making-44kj</link>
      <guid>https://forem.com/standingdreams/heroku-vs-digitalocean-an-experiment-in-the-making-44kj</guid>
      <description>&lt;p&gt;The Experiment's Table of Contents&lt;br&gt;
Part 1: An Experiment in the Making&lt;br&gt;
Part 2: &lt;a href="https://dev.to/standingdreams/heroku-vs-digitalocean-getting-started-with-digitalocean-29j0"&gt;Getting Started with DigitalOcean&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I have been a loyal customer of &lt;a href="http://bit.ly/2hnP7tF"&gt;MediaTemple&lt;/a&gt; for years. They made my hosting needs extremely easy. I loved the customer service. I hosted sites for friends and family with ease. I just loved it.&lt;/p&gt;

&lt;p&gt;However, as I got further into my development career and wanted more, I felt my tier was very lacking. I was paying $20 a month for a GridContainer. While it served my basic needs, it left me with no access to the root where all the fun happens. Being a true tinker, this was unacceptable. At the company I worked at, we use Heroku and &lt;a href="https://m.do.co/c/0d5110e21375"&gt;DigitalOcean&lt;/a&gt; on a few sites. I loved features that came with Heroku but I loved the control that came with DigitalOcean.&lt;/p&gt;

&lt;p&gt;Like any great developer, I turned to Google for some good comparisons between DigitalOcean and Heroku. I found a few blog posts and Quora posts but nothing answered my questions exactly. I wanted someone to spell it out for me. You know…make my life easier. Isn't that what Google is for?? Since I couldn't find the answers, I figured I'd do a little experiment to answer my own question. Plus it gave me a chance to play with new stuff. (TOYS!!!)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Heroku is a PaaS - i.e. Platform as a service, letting you run apps on their platform their way. DigitalOcean is an IaaS, or Infrastructure as a Service, which gives you raw servers to compose as you want to run your app. The differences are mainly around pricing and control vs effort.&lt;br&gt;
  &lt;em&gt;An answer on &lt;a href="https://www.quora.com/What-is-better-Heroku-or-Digital-Ocean"&gt;Quora&lt;/a&gt; by &lt;a href="https://www.quora.com/profile/Russell-Smith-1"&gt;Russell Smith&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For starters, I am not a DevOps guy. I'm a front-end developer with some backend chops. I have worked in both, DigitalOcean and Heroku, before but it was like someone's grandmother poking around an iPhone: slow and cautious with lots of questions and fear I would burn the internet down with every click. I do know that Heroku is a PaaS (Platform as a Service) and DigitalOcean is a IaaS (Infrastructure as a Service). The comparison between the two only comes up because people rely on both in some capacity for hosting for some sort of site, web app or API. However, because they are basically different, there are less solid answers as to which you should turn to when you're looking for a new hosting solution.&lt;/p&gt;

&lt;p&gt;SO here we are! My goal is to take &lt;a href="https://www.standingdreams.com"&gt;my portfolio&lt;/a&gt; that is ran off of &lt;a href="https://grabaperch.com/ref/roger6/"&gt;Perch CMS&lt;/a&gt; and &lt;a href="http://www.standingdreams.com/lifestyle"&gt;a legacy WordPress&lt;/a&gt; blog, host them on both services for one month each and record my findings. AGAIN…I am by no means a DevOps guy. I will be depending the services' documentation, customer service reps, &lt;a href="https://stackoverflow.com/users/4240495/douglas-rogers"&gt;StackOverflow&lt;/a&gt; and Google for all of my needs. Since I have credits with DigitalOcean (and because my coworker called heads for DigitalOcean on a coin toss), DigitalOcean will be first up.&lt;/p&gt;

&lt;p&gt;I'll simply post findings, frustrations, tip and tricks, rants and raves about my experience for the next person that is looking at Heroku and &lt;a href="https://m.do.co/c/0d5110e21375"&gt;DigitalOcean&lt;/a&gt; for their hosting needs.&lt;/p&gt;

&lt;p&gt;Wish me luck. 👍🏾&lt;/p&gt;

</description>
      <category>devops</category>
      <category>heroku</category>
      <category>digitalocean</category>
      <category>mediatemple</category>
    </item>
  </channel>
</rss>
