, , , ,

Reclaim’s Dedicated to Virtual Infrastructure

Tim and I did a Reclaim Today show to celebrate the fact our infrastructure is now entirely hosted on virtual servers, and predominantly Digital Ocean at this point. We talked a bit about where we’ve been, where we are, and where we are going in terms of infrastructure, and I love the idea of capturing some of this more formally as it happens. The final to dedicated server migrations this weekend (Joy Division and Beat Happening) turned out to be more cumbersome than we imagined, but that’s behind us and we are now closer than ever to the Lawnmower Man infrastructure we’ve been dreaming of! I guess the next step is serverless, to quote an awesome post by Tony Hirst—want to get him on an episode of Reclaim Today this week to talk about BinderHub and more. So, it feels to me that Reclaim Today is kinda finding it stride, and like anything it’s all about laying the bricks and doing the work.

, , , , ,

Zeit Here, Zeit Now: Watching the WWW Wake Up to Container Hosting

It was a pretty busy week at Reclaim Hosting, and I am up early on a Saturday morning working on the final migrations of our shared hosting infrastructure to Digital Ocean. Bye, bye ReliableSite! It has been a very productive summer when it comes to infrastructure, and folks are still reclaiming and domaining so no complaints from the bava. We also continue to make headway on Reclaim Today, our live video show highlighting stuff we’re interested in, working  on, dreaming about, etc. Yesterday’s episode was a 25 minute discussion about Now (which I keep calling Zeit Now because the domain is zeit.co/now) which is a hosting environment that makes it dead simple to host Docker containers on the web. We used the episode as an occasion to work through Now, and talk about our own dreams for container-based hosting at Reclaim. I discovered Now thanks to the following Tweet from ed-tech’s mole from the future, Tony Hirst:

I then played with it briefly, but was fumbling around with Docker on my desktop and ran into issues get a Shiny server running. I abandoned the project, but this episode allowed me to get a clearer understanding of what Now can do, how it differs from Cloudron, and what it could mean from faculty, researchers, edtech, and students who want to spin up container -based apps on the quick.  I also liked this episode a lot because I think it encapsulates pretty well how Tim and I have been working together these last 7 or 8 years. It’s been such a fun and funny relationship in so many ways, and capturing some of that on Reclaim Today seems to be just one of many reasons it feels so good.

, ,

Creating a Drupal Multisite

Up until some time last week, I didn’t actually realize that a Drupal Multisite was possible. I received a support ticket asking if Drupal Multisites doable in Reclaim Hosting’s environment, and responded by saying something along the lines of, “well since single Drupal sites are possible within Reclaim, I would imagine a Multisite is as well, though I don’t have much experience with it”. I don’t like responding that way. So I made it my mission to set one up! (Spoiler: Drupal Multisites are, in fact, possible at Reclaim.)

Contents

  • Why Drupal Multisite?
  • Getting Prepared
    • Naming our sites
    • Deciding where our sites will live
    • Set up databases
    • Create subdomains (if applicable)
  • Installing and Configuring Drupal Sites
    • Download Drupal software & upload to account
    • Creating sites.php
    • Making sites directories
    • Copying over & renaming necessary files
    • Creating Files directory
    • Create a symbolic link with cPanel’s directories
  • Drupal Site Setup Wizard
    • Follow the prompts
    • Run a FixPerms script

Why Drupal Multisite?

If you’re familiar with a WordPress Multisite, a Drupal Multisite will sound very familiar. A Drupal Multisite allows single, independent Drupal sites with separate users to run on a singular codebase with shared modules. For more information, head here.

Getting Prepared

  1. Start first by deciding where you want your sites to be called and where you want them to live. I’m going with a fruit theme today, so one of my sites will be called Apple and the other one will be called Orange. Drupal Multisite allows you to set up subdomains (site.drupal.com) or subdirectories (drupal.com/site). I’ve always thought subdomains are a bit cleaner so I’m going to use subdomains off of my brumface.com domain. If you want to use subdirectories, this guide will still apply.
  2. Before even installing Drupal software, I’m going to go ahead and create a database for each site in my cPanel. (For more info, read our guide on database management.)

-For this step, you’ll want to go to cPanel > MySQL Databases, name your database, and click create.

-Repeat this process for your second site. I called mine labrumfi_orange.

-Now we’re going to create a database user that will be assigned to both of these sites. If you go to cPanel > MySQL Databases and scroll down past your current databases, you’ll see a section where you can add new users:

I called my database username labrumfi_drupal. Set a secure password with the Password Generator and click Create User. (P.s. You’ll need these credentials later on!)

-After creating the database user, we need to assign it to our two databases. This can also be found on the cPanel > MySQL Databases page:

^Select the user and database you just created and click Add. On the following page, you’ll be asked to manage user privileges. Select All Privileges, scroll to the bottom, and click Make Changes.

-Repeat this for your second site. So since I just added labrumfi_drupal to my _apple database, I’m going to now add the same user to my _orange database. When complete, your database section should look something like this:

3. Now that that piece is done, we’re going to create our subdomains under cPanel > Subdomains. If you’re using subdirectories, skip this step. This part is pretty self-explanatory, so for the purposes of keeping this particular tutorial as short as possible, I’m going to point you to this guide on creating subdomains in cPanel. The subdomains I created were apple.brumface.com and orange.brumface.com.

^Note that I took public_html out of my document root. I’ve found that the simpler you can make your locations, the better. But that’s just personal preference.

Installing & Configuring Drupal Sites

  1. Head to drupal.org/download and download a .zip file of the latest version of Drupal.
  2. Go to File Manager and create a new folder directly in your /home directory called drupal. Upload the Drupal .zip file and extract it. Your drupal folder should now look like this:

^All of our drupal files are located inside the drupal-8.5.5 folder. We need to pull them out into the main /drupal directory. From there, you can delete the empty drupal-8.5.5 folder.

3. Now that we’ve got our files in the right place, we need to let Drupal know that we’re going to be working with more than one site. We do this by going to drupal > sites and create a sites.php file. For an example of what to add to your sites.php file, open example.sites.php. I’ve also included instructions below:

Create a sites.php file with the following text:

<?php

$sites = array(
//https://apple.brumface.com
'apple.brumface.com' => 'apple', 
//https://orange.brumface.com
'orange.brumface.com' => 'orange'
);

In the above example, replace ‘apple.brumface.com’ with ‘yourfirstsite.domain.com’, and replace ‘apple’ with ‘yourfoldername’. Repeat for the second site.

Note: If you’re using subdirectories (for instance, domain.com/yourfirstsite) the array would look like this:

<?php

$sites = array(
//https://brumface.com/apple
'www.brumface.com.apple' => 'apple',
//https://brumface.com/orange
'www.brumface.com.orange' => 'orange'
);

Make sure to save changes.

4. Ok, hang with me now- we’re going to do a little SSH action. Its simple enough, but if you need a refresher on logging into your account via terminal, I’ve added a screenshot of my login below. (You can also use the terminal function in your cPanel!)

ssh cPanelusername@server.reclaimhosting.com

^when prompted for a Password, enter your cPanel/FTP password.

-Once in terminal, navigate to /drupal/sites

For the commands below, replace ‘apple’ and ‘orange’ with your ‘site1’ and ‘site2’:

mkdir apple
mkdir orange
cp default/default.services.yml apple/services.yml
cp default/default.services.yml orange/services.yml
cp default/default.settings.php apple/settings.php
cp default/default.settings.php orange/settings.php

^With the above commands, we created our apple and orange directories and then copied and renamed the default files (default.services.yml and default.settings.php) into each one. Now when I refresh in file manager, I see the following:

5. We also need to add an empty ‘files’ folder in both in both our apple and orange directories. The ‘files’ folder will be filled during the Drupal Setup Wizard installation process further down. Feel free to create these folders in terminal or in file manager.

6. There’s one final step. When we create a subdomain in cPanel, cPanel creates a folder in File Manager for them by default. (Remember when I set my document root outside of public_html?) But since we just made our own directories within the sites folder, we have to create a symbolic link from cPanel’s default directories with our correct directories. It’s weird, I know.

ln -s drupal apple
ln -s drupal orange

Now when we navigate to apple.brumface.com or orange.brumface.com in our browser, we see the following:

Drupal Site Setup Wizard

If you need assistance with the Drupal Setup Wizard, here is a list of the settings that I used:

Language: English
Profile: Choose Standard Installation
Requirements: Run a Fix Perms script if needed
Database: Choose MySQL, MariaDB, Percona Server, or equivalent; enter the database information that you created earlier
Install:

Configure Site: Set your site information

If you stuck with me this long, congrats!

, , , ,

Whoowns or Whoowens?

One of the cPanel scripts I’ve found really useful as of late is the whoowns script that let’s you know which account owns a specific domain. Let me provide a quick scenario.  You have an issue with a domain and you can’t figure out which account in lives in, which could mean it’s an addon domain that wasn’t registered through us, etc. Tracking it down can be a pain. You can figure out what server it is on by using a command like nslookup (nameserver lookeup) that will tell you the hostname and identify the server:

nslookup themissingdomain.tld

The above command will return something like beathap.reclaimhosting.com.  Which means the account is on the Beathap server, but given it is not the primary domain of an account it is not going to appear in the list of all cPanel account. And this is where I would get stuck.

But using whoowns will tell you the account owner, just log in via terminal and use the following command:

/scripts/whoowns themissingdomain.tld
themissi

That will tell you the account that domain lives in which means problem solved. A simple, useful script.

So, when extolling its virtues in Slack I wrote /scripts/whoowens —and soon after Tim had some fun and wrote his own script. So, when you run /script/whoowens on any of Reclaim’s servers you get the following:

That’s geeky and it’s awesome. Hosting humor #4life.

,

Reclaim Today

I’ve always enjoyed listening to Podcasts. I remember listening to some back in middle and high school, but recently I rediscovered them in college. I live about 2 and a half hours from my hometown, and my Spotify got repetitive during the many drives back and forth. I quickly locked into many series like Serial, S-Town, Anna Faris is Unqualified, and Nerdist (ID10T), to name a few. Do you all listen to any? What are some of your favorite? — Seriously, let me know, I need more to listen to.

I’m writing about Podcasts because Reclaim Hosting has taken on a new project in the last week or so. We are creating a podcast. Yes, that’s exactly what it sounds like with a little more added to it. Right now, they’re more like videocasts, where we sit down and chat in a Google Hangout that streams to YouTube. We use the audio from each stream to post to a software called Fireside. It’s working well so far!

When I say ‘we,’ I mean Tim. He nailed it from the technical side. He figured out a mobile rig that allows us to move to different locations throughout the office to film different locations. Right now we have a Mac Mini hooked up to the TV, a camera attached to the Mac Mini, and a microphone attached to the camera. Most of the rig is on a rolling cart, save for a few tripods. The Mac Mini serves as the hub for the recording and frees up a laptop for us to join the hangout to use visual aids. But, he explains the entire set up much better on his blog. It’s super cool to see his process and how quickly he was able to put this together.

The entire podcast came together rather quickly, we discussed the idea just about a week ago, and we recorded the first episode the next day. This wasn’t a very long episode; we wanted to set out our expectations for the podcast and describe what we want it to become. You can listen to the podcast (if you want a traditional version) on our Fireside instance.

How about that intro, huh? Another excellent work of Tim’s and what a wicked way to introduce the podcast. He talks about his process in his post as well.

The Intro shows some of the main points of what we want to cover while creating these episodes. And while creating a podcast seems like a lot of work, we want to break the stigma of perfection. These episodes definitely do not need to be perfect. We want to capture what some of the topics in almost real-time, and document what Reclaim Hosting is currently working on. Making sure each episode is perfect takes away from that experience.

I’m excited to jump into the world of podcasting and even host some of my own episodes. I feel like a true millennial jumping on the podcast train. We’ve got a lot to talk about so stay tuned!

Saving Email Responses using Signatures

Although I’m just a few weeks into my new position, I’m already finding myself sending out similar emails multiple times a week. This is by no means a complaint, but rather something that just comes with the territory of working with various schools on their Domain of One’s Own initiatives. How does Reclaim Hosting handle backups? What are your graduation exit strategies? Can you resend my admin password? What is the protocol for a hacked site? You know, things like that. And while each scenario, project, account, etc. is just a little bit different, the Reclaim facts don’t change, nor do the guides and support articles that I link up to.

To save myself some time from rewriting the same email over and over again, I’ve started using the signatures in my email client, Spark. (As a heads up- Gmail tackles this with Canned Responses, but I hardly ever log into the web version of my email.) I’ve saved my most common responses as email signatures. So now when I go to respond to an email, I simply select the signature I want to respond with, customize it to the scenario at hand, and click send. Emails that used to take me half an hour to compose are now taking me ~5 minutes.

In Spark, you can create new signatures by going to Preferences > Signatures:

^You can also create new signatures while you’re composing an email!

^Click the up and down arrows next to your signature.

^A new window will pop up where you can scroll through your existing “signatures” or create a new one. Hover your mouse over the signature you want to use (it will turn blue) and click to select. Also as a small tip: make sure you add your *actual* signature to the templated responses.

Now all that’s left to do is customize your response however needed, then click send. Booyah!

, , , ,

App Release: Big Picture Calling Card

App Release: Big Picture Calling Card

Reclaim Hosting has long been a big fan of the work that Alan Levine is doing with SPLOTs (Smallest Possible learning...object...tools? Who knows what it actually stands for). The idea, born out of the work Alan was doing with Brian Lamb's group at TRU, was to make simple tools built on top of WordPress that solved simple problems. For users in Canada it was especially important that no logins be required. A suite of tools were developed and Alan has gone on to continue maintaining them and even developed additional ones like "Calling Card" themes for personal sites and packaging up the DS106 Assignment Bank and Daily Create into standalone packages.

As Jim wrote about earlier, we had visions of bringing Alan on in a fellowship role to work with us on developing many of these tools into standalone installers in our Reclaim Hosting environment. I'm happy to announce that the first of many goes live today, the Big Picture Calling Card.

Big Picture is a theme developed by Alan and based off of an HTML5UP theme of the same name. It's a single page landing site that works well for personal sites as well as small projects where you may want all the information on a single page. Now, installing a theme isn't necessarily hard, and Alan has done a lot of work documenting both in his Github repository as well as on his blog how to get up and running. But for users brand new to WordPress even the act of installing themes, activating plugins, and configuring settings in Customizer can be a hell of a learning curve (a great learning opportunity in my opinion, but a curve nonetheless). In the same way that creating an installer for Omeka has opened the doors for many more folks to work with that software we have seen time and again how building applications for our environment can simply the amount of onboarding necessary to build out amazing stuff.

Big Picture Calling Card is rolling out to servers over the next 24 hours for all Reclaim Hosting users and available directly in Installatron. And the great news is that this is the first of many SPLOT-based applications that we will be making available including additional calling card themes as well functional applications like the TRU Writer and TRU Collector.

, , , , ,

Today

Today

I recently got back from a lovely weeklong vacation in Myrtle Beach where amongst all the relaxing I got nostalgic while showing some old DTLT Today videos to a friend. Right on the heels of that I read Jim's post about Reclaim's 5 year anniversary and while doing some digging in my Twitter archive (I'm no longer on Twitter but have a full archive of my stuff here) I found that Jim and I must have put out an episode the day we went public with the idea of Reclaim Hosting narrating our thoughts on the formation of it. Luckily Jim is the best kind of pack rat and had a copy since the original post I wrote had a broken embed from a media server that no longer exists at UMW and I was able to get it back online. Seriously, if you're a Reclaim fan and have some time to spare check this out:

It never ceases to amaze me when I go back to watch these videos how they become a time capsule of a particular moment. I cherish every one we did because just like blogging it helps me understand not just the relationships and the interactions I've been privileged to have in my career but also the political, commercial, and cultural changes that were influencing the work we were doing as a group. So needless to say the bug was starting to bite hard and I know better than to fight that feeling.

So yesterday after floating the idea to Jim and thinking it really could happen I rearranged some furniture in our back office and spent the evening developing an opening sequence (I'm such a god damn sucker for branding, I can't help it!). In an homage to DTLT Today we are calling it Reclaim Today and we recorded our first episode today in meta fashion talking about why we're doing this and what our goals are for the podcast.

As a geeky colophon to that I wanted to write a bit about the technical aspects of building both the opener and how we're currently managing the podcast as a distributed company with half of the team of 4 remote.

For the opener sequence like many video projects I started by checking out what was available on Videohive. I have an Adobe Suite license and I've played with After Effects with a few other projects so I find these templates a great way to get something professional up real quick. I also found a decent audio track on Audiojungle (same marketplace, part of the Envato network). So for ~$35 and a few hours time finding images and editing text I had the pieces I needed to build the video you see at the top of this post.

For the actual recording we leaned towards Google Hangouts on Air, which you can setup to livestream but also record straight to YouTube. Hangouts are awesome in that it's dead simple to act as a standalone switcher between folks, people can share their screens, and no one has to "control the feed" as it were. Hangouts suck in that sometimes you might want that control. Great example was that I had to download the YouTube video, insert our intro video and outro, and reupload as a new video because apparently you can't play videos within a Hangout. The quality also leaves a bit to be desired. So we'll see if we stay with that or move towards something like Wirecast which we used extensively at UMW for a variety of projects including DTLT Today and it was very powerful but a complex and expensive piece of software (and we talk a bit about this conundrum on the first episode).

Another nice piece of the setup I got working was that we had a mobile TV cart on one end of the room with a long HDMI cable to a standalone mac mini that was driving the hangout. The mini had a Yeti mic and Logitech HD webcam connected to it and we ran a long audio cable from the Yeti behind the couch with a splitter so Meredith and I could both hear everything without any echo. It ended up being a pretty nice solution allowing us to look right into the camera while interacting directly with the screen behind it and managing audio in a way that allowed for now echoing. I do want to start breaking out the audio in a separate recording so we're not left with the compressed stuff Hangouts gives us for the final recording (thinking about Audio Hijack Pro for that).

So anyways, we're having a blast and we've launched this thing. As the kids say these days, like and subscribe for more!

Giving user-account access to your developer

Scenario:

When starting a DoOO project, your institution may already have existing sites hosted elsewhere that you want to migrate to Domain of One’s Own. (I recommend reading through the Migrations & Transfers category if you need additional assistance with migration workflows.) Maybe your school has existing WordPress sites with custom themes and plugins, and perhaps you’re working with a developer to move them over to DoOO. The following guide will work for any administrator as well, but in the event that you want to hand out only partial access to the person doing the work, keep reading:

Workflow:

1) Developer is given the user’s cPanel credentials
2) Developer logs in directly to user’s cPanel account at https://cpanel.yourDoOOproject.edu
3) Files are uploaded and the site is set up (via FTP or cPanel)
4) “Import” the site files into Installatron viewer. (We have a guide on this here.)

Details:

1) Individual cPanel credentials for a user can be found in WHMCS > Client Profile > Product/Services tab:

2) Developer logs in at https://cpanel.yourDoOOproject.edu:

3) Developer uploads files in cPanel (left) or SFTP (right):

4. Import WordPress site to Installatron viewer:

, , , ,

Marking Time: 5 Years at Reclaim Hosting

It’s hard to believe, but yesterday was the fifth of what Tim and I are officially acknowledging as Reclaim Hosting‘s birthday. I always thought it was the 28th of July, but as I’ll talk about here soon, my memory is entirely unreliable. Reclaim is now 5 years old! That is crazy to me, it has been both very quick and at the same time seems like I have always been a Reclaimer. Time is wild, it’s been 13 years since I took a job at UMW as an instructional technologist, 10 years since EDUPUNK, 8 years since ds106, 6 years since our pilot of UMW Domains, 5 years since we created the best little hosting company around, and now almost 3 years since I followed Tim’s lead and went full time at Reclaim. I think a lot about time on this blog, in fact this blog (and my daddy blog before it) is in many ways dictated by a sense of tracking time and trying to record the quotidian things that would otherwise soon be forgotten by my increasingly porous memory. 

I like recalling the origin myth of Reclaim Hosting, because it makes me smile. I was coming off my lowest point personally; I finally quit drinking and committed to get my mental health in order—no small task for me—and few things could have been further from my mind than starting a company.  Tim and I toyed with striking out with the idea behind Reclaim Hosting in February (?) of 2013 after a trip to Emory University, but that discussion went dormant while we ramped up for the official launch of UMW Domains (which, as it would happen, we spent Reclaim’s fifth anniversary migrating UMW’s servers to Digital Ocean 🙂 ). But once I returned from leave in the Summer of 2013 Tim approached me after his thankless vacation at the beach dealing with a Hippie Hosting server outage and, rather than throwing up his hands and jumping ship on the server admin life, he wanted to doubled down. He was like, “So, are you back or what?” [I had been mentally absent for a bit.] “Because I think we should start a company?” I was thinking to myself, “Wow, this guy is no joke, he means it?” I did think about stuff like going independent a lot, as most do, but rarely had I committed. But when I saw how serious Tim was and I knew what I knew about him, I immediately committed. That’s the power of Tim Owens. We decided on the name Reclaim Hosting, and that day (or a day later) we were heading to the county clerk’s office to become partners in a small venture that would literally make my life more a fairytale than the ongoing farce it had become 🙂

It happened really quick, I had a like $600 left over from the $5,000 Shuttleworth Grant David Wiley got me, and we used that to fund the first two or three months of a new server (clash.reclaimhosting.com) in order to run Reclaim Hosting in parallel with UMW Domains. We got some press immediately from the Chronicle, which jump-started interest by highlighting the fact we were offering folks a domain and web hosting for $12 a year. It was definitely an experiment, but the rush early on was a good sign we may be on to something. I remember the question we kept getting during those early days was will this continue beyond the year? And, we were pretty upfront that we did not know. We were transparent that if it did continue, we could not sustain it at $12 an account, and we would have to rethink pricing, etc. We had about $1400 in the bank in May 2014, which means we were running a profit of around $800—although neither of us were being paid by Reclaim. So whether we could sustain Reclaim was definitely a question mark, but that all changed when the University of Oklahoma reached out in June of 2014 for an institutional setup, then soon after Davidson College, CSU Channel islands, and Emory University—- the rest is history

We have operated in the black from day 1; we always had a straightforward business model; we do not prey on our customers with product up-selling or data siphoning; and we remain fiercely independent in that we owe no one nothing—there are no investors we  have to answer to, and when an IT department or security officers find themselves puffing up their chest and making things harder than necessary to enable academic technology, we can simply walk away. In fact, one could argue it is because of those people that we even exist! I am really proud of what we start, and in that 5 years we have doubled in size in terms of people, with Lauren Brumfield growing with us for over 3 years now, and Meredith Fierro filling out support for a year and a half. Growing is tricky, and we remain vigilant of the issues tied up with getting too big too fast and forgetting why we did this to begin with. But you know what, 5 years on not much has changed: our support remains consistently solid; our prices remain as affordable as ever; and our commitment to helping faculty and students explore the open web for teaching and learning is still unflagging. 

So, all this to say happy belated birthday, Reclaim Hosting, I remain a big fan! And, in honor of our fifth anniversary we’re resurrecting our first server, namely clash.reclaimhosting.com, which will truly mark the end of something, i.e., the migration of our last two Reliable Site servers on August 4th (beathap.reclaimhosting.com and joydiv.reclaimhosting.com) will mean all of our critical infrastructure is now on Digital Ocean. A project two years in the making—what did I say about tracking time on the blog? Making the myths one post at a time.