Hosting Horrors Part 2

Hosting Horrors Part 2

Time to get back to it, hosting your sites that is. Unless you’re reading through the archives. In which case it was just time to click on the link for the next link. Kind of gets rid of the anticipation though doesn’t it?

Setting up your VPS instance

Sign up for Digital Ocean, and then create a droplet. The instructions I’m going to be giving you are for Ubuntu 14.04 LTS. You can use something else instead, but I like Ubuntu quite a lot, your mileage may vary.

There is a great walkthrough I used on Digital Oceans support site here There are a couple of things that I would say though if you are going to be going through this whole walkthrough and using Easy Engine. My first thought when I install a new Linux server is to install MySQL and Apache. You aren’t going to be using Apache and it was a pain to migrate off of it, so I’d recommend against installing it now. Also don’t install MySQL yet unless you have a specific reason to. Let Easy Engine do it and you can save yourself creating a couple of config files and such. It’ll set a random root password that you can change later if you want. It boils down to just setting up your users, specifically one with sudo access. I also usually set my root password in general when I do a new install. You do that by doing the following:

sudo su

Enter in your password then put in

passwd

Set the password and now your root user has a password set. If you want to do a whole lot of root stuff this can be a nice thing. Just realize that you’re going around all of the security that Ubuntu puts in to keep a static root user out. There are occasions when it can be really nice though so just be aware of what you’re doing.

Also make sure that you have openssh-server installed. Make sure that you can SSH into the box. Once you have the DNS setup you can just use user@yourdomain.com where “user” is your username and “domain.com” is any of the domains you pointed at the instance.

Easy Engine

Easy Engine is a piece of software that makes setting up your server infinitely easier. You have to get your VPS setup first though as we went through before. The install process at Easy Engine is pretty good and I’d recommend it. It is basically just running a shell script as root. It allows all of your stack to be installed by Easy Engine.

After that I would recommend running

sudo ee stack install --all

That will install anything that isn’t already installed. Also run

sudo ee stack install -php7

That will allow you to run sites in PHP7 mode. It’s super fast, although a lot of older plugins and themes don’t support it. I tried it out on a clients beta site and the landing page loaded super fast, but it wouldn’t go to any other page. I put it back since I could see them wanting their customers to be able to navigate their site. It’s always something with those people, right?

Creating a site with Easy Engine

Creating a site with Easy Engine is pretty easy. As long as you have your DNS updated and it’s propagated out you can go off to the races.

sudo ee site create yourdomain.com --wpfc --letsencrypt

So lets break that down a bit.

sudo ee site create yourdomain.com

That creates a new site. One of the most basic forms of that is

sudo ee site create yourdomain.com --wp

That creates the site with WordPress. It creates a MySQL database and a user for that database. It installs the newest version of WordPress and then creates a user for you. You can specify that in the config file, but if not it will tell you the login details in the terminal session. I make sure to set my default user as the same email address as my wordpress.com account then I can install Jetpack and enable Single Sign On, and I’m off to the races.

The next part is the

--wpfc

That installs the Nginx cache options for WordPress. There are some faster caching stuff out there, but that enables Memcache and some other goodies. It also tends to just work and I can’t be bothered to mess with my caching options all day long. I’ve tried thw w3tc option (wwwtc super cache) and I’ve had tons of issues getting it to stay working. It’s always something with my .htaccess file. I also make sure to enable the image CDN stuff in Jetpack. If you select jump start when you install it you’ll be good on that. It enables it that way.

The last part is

--letsencrypt

That enables a free SSL cert on it. That’s why I had you create a www A record in your DNS earlier. Lets Encrypt checks for that. It will make a SSL cert for 90 days, but it will also create a cron job that renews it 30 days before it expires for every site you use it on. Pretty cool right? I thought it was. It saved me a ton on SSL certs.

Final Hosting Steps

So your site is installed? Great! Now go to https://yourdomain.com/wp-admin, login, then you’re good to go. I’d recommend installing Jetpack in the plugins section (it’s one of the top featured ones, can’t miss it), activate it, tie it to your wordpress.com account (create one if you don’t have one, they’re free), and click jump start. I also enable monitor on all of my sites so that I get an email if they go down. I also do a couple of other things on all of my new sites, but I’ve already been running pretty long on this. If people are interested I’ll go into my next steps. They’re Google Analytics setup, Google Webmaster Tools, and some email forwarding stuff on the server. Also some WordPress best practices (backup, SEO, Security).

Conclusion

Now you have a functioning web server. Pretty cool right? Now you just have to administer, update, and take care of it (that’s the easy part right?). Do you have a better way of running your web server? Let me know in the comments. Do you have any questions? Let me know in the same place. That’s actually just going to be a good generalization. Correspond in the comments. Yeah, lets go with that.

Hosting Horrors Part 1

Hosting Horrors Part 1

I started hosting all of my own websites on VPS instances in the cloud. I was sick of the price and quality of hosting in general. I was on a shared hosting plan, like most people that administer their own sites. It was fine when I was just hosting my website, which was really just a place to put my resume and my PGP key. I’ve had that domain for years and use it as my primary professional email domain. I lucked out and got in before Google started charging for a few emails and I’m grandfathered in.

Once I started hosting sites for clients it got to be a bigger issue. The latency and uptime was all over the place. My sites were going down every week. The hosting provider tried to say that they didn’t go down, they just didn’t respond for a while, which seems like an academic distinction to me. Unresponsive is unresponsive. I then migrated all of my sites to a VPS provider. It was pretty good, but I didn’t realize that they were, “Managed,” VPS instances. That means that you don’t have root access, it’s really just shared hosting with less bells and whistles. However the performance was MUCH better. I couldn’t do any of the server optimizations that I really wanted to though. What if I don’t like the compression extensions they’re using? Heck, what if I don’t want to use Apache for a web server? Get a dedicated server was the response from their documentation. I’ve been system administrator on some dedicated servers and I’ll pass. They’re also really expensive. If I need that kind of performance I’d prefer to load balance multiple servers so that I have HA (high availability) and fail-over. Although load balancing your load balancer is an interesting problem. If you want that kind of fault-tolerance with dedicated servers you’re also paying for MULTIPLE dedicated servers which is even more expensive.

After all of that I moved to an awesome service called Digital Ocean. I’ve been with them for a while and I use a similar service in Australia called Binary Lane.

Domain Registration

So with Digital Ocean I started hosting all of my sites. I also migrated all of my domains off of my previous hosting provider to a DNS only service. Digital Ocean doesn’t do domain registration which is good, because it forced me to move my domains to a domain registrar that only does that. It’s a good move, because then if you move from one hosting provider to another you don’t have to pay to re-register your domains. I was out over $100USD this year before I realized that. I use Hover, and highly recommend them. They even helped me with transferring/registering some .com.au addresses, and that is an extreme pain. Did you know you need basically an Australian Social Security Number (ABN) to register a .com.au domain? It’s a pain.

DNS Hosting Settings

So DNS is a bit of a black art in a lot of tech. A lot of people say they know DNS and what they really mean is they know the difference between an A record and an MX record, or they know that DNS translates IP’s into human readable URL’s. The core of DNS is simple, but the ways it interacts is not. Also kudos to anyone running a DNS server is a pain. It’s not too bad on Windows, but the O’reilly book on BIND (the major Linux based DNS server) is huge. I got asked in the early stages of my carer to start running a server for the company, and I agreed (because I was an intern and wanted to please). I looked into it and was floored. Fortunately the company wasn’t great on keeping track of it’s ideas so it died a slow death.

Later on in my career, pretty recently actually, I worked on a product that intimately used DNS. The new standards that doctors and hospitals use to communicate with each other and patients use DNS as an authentication layer. It uses DNS cert requests to verify PKI (public key infrastructure). A couple of my colleagues and I looked through a whole lot of DNS routing stuff before we got a handle on exactly what the order was. For instance if I go to a subdomain for a domain does it query the NS record before the A record? It seems like a subtle difference, but depending on that it can go to an entirely different server that doesn’t have the records you need to resolve. We developed a joke that when stuff didn’t work you’d just say, “I don’t know, maybe it’s the DNS?” Now we’re going to go over how to set your DNS settings for your hosting from your registrar then set the other settings on your host.

So in order to host your sites at Digital Ocean and have your domain registration with Hover then you’re going to need to change your name servers for hover. You can set them in the domain settings. You need to change them to the following:

ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

Then you’re going to need to change the DNS settings on your Digital Ocean account. You can do this by navigating to networking along the top, then going to networking. Then you can select domains. Add the domain that you have. then go into it. You’re going to want to set an A record for both

@.yourdomain.com

and

www.yourdomain.com

I’d also create an A record for

mail.yourdomain.com

and then create an mx record for

mail.yourdomain.com

You should see the IP for your droplet get entered into your records. Set all the A records to that IP. You can also request a floating IP and use that as well. I just used the one that was included. If you can’t find it then SSH into your VPS and run

ifconfig

That should give you the IP (it’s not the loopback one).

Your DNS should work now. You can verify by running nslookup on your machine (if you’re Windows). However for the purposes of this I’ll just recommend using an online service. A good DNS server to check against is 8.8.8.8. That’s Google’s DNS and they’re pretty good. I also sometimes use 4.2.2.2 which is Verizon.

That concludes Part 1. Next time I’ll go over getting your VPS and the management layer of your server set up. What, you can’t wait for the next part? TOO BAD! BWAH HA HA HA!!! Sorry, but these walk-throughs get super long, so I’m splitting them up. If people hate that let me know in the comments. It seems like a few thousand words in a row is excessive, but what do I know?

Curse of Carry-on

Curse of Carry-on

Carry-on or checked bags

Oh ho (as in hi-ho, not hi you ho), this is a subject that has been done to death among travel blogs, but I’m going to put in my two cents. I am very much for doing a carry-on only traveling lifestyle. For weekend trips I’ve been known to go with just a day bag. My friends would occasionally think I was a bit odd for it. One pair of trousers two pairs of socks, two pair of underwear, and a couple of shirts and you’re pretty much set. That even feels like over packing for me. I understand that isn’t as feasible for women, but I’d counter that women’s clothes don’t tend to take up as much space per item.

My Carry-On

I have a couple of special needs for my carry-on. I just went back on the road and got a <href=http://www.tortugabackpacks.com/>Tortuga Air. It’s an awesome bag, but I forgot to factor in my CPAP (machine for my sleep apnea. It takes up almost 1/4 of my bag. In retrospect I kind of wish that I had grabbed the full size Tortuga bag, but c’est la vie.

On this trip out to Australia I’m planning on being out here for a little while, so I brought an extra duffel with me. I grabbed the duffel bag when I was at REI because it collapses down to almost nothing and there were plenty of times on my last trip that I wished for another bag to make a quick trip somewhere (laundry, groceries, etc.). So I landed in Brisbane after about 24 hours on the road and they lost my bag. I’m not going to call out the airline because I heard that they found it and got it delivered to the house I’m going to be staying at in the same day almost. So props for them. However it made me re-evaluate what I put in my carry-on vs the duffel.

I’m pretty paranoid about airlines losing my bags when I know I’m going to be on the road for months, and potentially a year+, so I tried to make sure that everything in my duffel was disposable. I was a little stressed about it when I continued thinking about it the next day, so I made a list of everything in that bag that I could think of. A bit of it was clothes that are duplicates of ones that I already have but in smaller sizes. I tend to drop weight pretty fast when I’m on the road (always a plus), and I wanted to have some clothes around that I liked. If I lost those I’d be mildly irritated, but it happens. Interestingly the things that I would have been most irritated by were things that would have been inconvenient to replace. My Northface rain jacket that I got in Nepal (otherwise I probably wouldn’t have been able to afford it), as well as my hiking sandals from Nepal. I brought my flip flops in my carry-on, which was kind of stupid. Do you think it would have been hard to find a pair of cheap flip flops in Australia? Of course not.

Oh well, I’m going to do a serious audit of my bags, which I was already planning on, but I thought I’d do it here in Australia. I guess this is a lesson from the universe about procrastinating.

General Thoughts

My general feeling is that carry-on is a better way to travel for me. I don’t really need much. It sounds like a self-congratulatory statement, but it’s true. I’d even go so far as to say that you don’t need that much either (yeah I broke the fourth wall and went all second person on you, deal with it punk). It was drilled into me when I was traveling the first time and my traveling companion, and very old friend, took my bag, on my request, and started throwing stuff out.

I had an entire separate first-aid kit. It even had that stupid red cross on it. It was huge. Almost all gone. So were my stash of thumb drives, and half my clothes, and a bunch of adapters, and tons of other stuff I don’t even remember. We threw it out and horrified the poor manager at the hostel in Nepal. I hope he grabbed the stuff and sold it.

I also had a 35L or so day bag and a 50L hiking pack. Granted that was everything I owned, but still, looking back it seems ridiculous to me. I had that very particular travel turtle look you know if you’ve been to many hostels. I didn’t even have any cold weather gear. I feel bad now with having a baggy of band-aids (plasters for my European friends) in my toiletry bag. I’m going to do a complete breakdown of what I have packed and then what I threw out. I think it might be good for people to see.

It also will show that even people that have traveled quite a bit are still prone to accumulating dross (also known as junk, but I like to sound fancy, FANCY!!! /with jazz hands). I’m not really a pack rat like some of my family, but I do like being prepared. There was a bit of kit that I wish I had on my first trip and I think I went a bit overboard when I came out this time.

The one thing that I missed having the first time was a good wireless card for my laptop with an external antennae. You don’t think it’s a big deal until you’re on the third floor of a hostel trying to get work done and they don’t have any wireless repeaters set up. Your options at that point are not to work, or try to get work done in the lobby where they are playing drinking games and blasting the stereo. I don’t know about you, but my willpower isn’t that strong and I invariably would end up playing the games and being merry. I mostly tried to get my work done during the day, but with time zone differences that wasn’t always feasible.

I’m finishing this post quite a bit after I started it (a bad habit to be sure). I got my bag back, and immediately threw out everything I didn’t need. Not really, It’s been two months and I still have too much stuff. However I hope to be back on the road again soon and it’ll necessitate me throwing out quite a bit of my junk. I’ll do a postmortem on it when I’m done.

Cheers and remember that you never really need as much as you think. Reduce, reuse, and recycle. Wait, that might have been for something else.

Bitcoin, Ether, and DAO Oh My! Part 2

Bitcoin, Ether, and DAO Oh My! Part 2

We return to our heroes deep in their quest to buy DAO (or bitcoin, or just reading stuff on the internet to justify their curiosity, no judgement).

What’s next?

So you deposit some money in your account what’s next? You buy DAO with something called ether. It’s the cryptocurrency of the Ethereum platform. So your first thought might be that you want to go to BTC then get your ether right? That’s what I did, and I would recommend against it. You cannot trade BTC for ether on your exchange. However you can trade fiat currency for it. You take a little hit whenever you convert currency to crypto-currency, and when you exchange crypto-currency for another. It’s not a lot, but it adds up if you keep doing it, also if you’re talking about a bit of money 3%-7% is probably more than you’d care to just throw away on bad planning. So you can buy your ether, then you’re going transfer it to your ethereum wallet. Here is a bit of a digression. I’m going to go over how to convert your BTC to ether for the people that either already have some BTC, or made the mistake (like I did) of not going straight to ether. If you haven’t bought the bitcoin then I would recommend just buying the ether directly from an exchange then transferring it to your wallet, although the wallet setup for Ethereum is the same regardless.

Ethereum Wallet

So you want to get the Ethereum wallet to do your DAO transactions all according to plan right? Great! If you’re based in the USA it’s probably not going to be a huge problem. However if you’re overseas, or in an area that either doesn’t have great internet or a lot of people around with an ethereum wallet you’re going to have issues. I spent about two days trying to get my ethereum wallet to sync. I have a couple of tips though to make it easier.

Installation

Go here to download the newest version of the Ethereum Mist Wallet. Download the version for your system. I’m going to assume that people are mostly on Windows. If people want a mac version of the walkthrough let me know and I’ll add it, although I don’t have a mac currently so it won’t have a ton of screenshots or anything. The syntax for the commands should be the same (since they’re using Go as a language), although the paths to the stuff won’t be. If linux users want a walkthrough I can do that as well.

Unzip the wallet, then open up the Ethereum Wallet executable. If you’re in the USA and have good internet you’re probably OK. However it’s going to take a long time. The wallet is downloading a full version of the Ethereum blockchain, and on my system that is currently taking up 18.7GB of data. If you want it a bit quicker and you’re on a new install of Ethereum you can do it quicker. Yay! Although you need to do a bit in the command line. So open up your command line/terminal (on mac) and navigate to the folder where your Ethereum wallet is. Then go into /resources/node/geth. Geth is a command line version of the wallet. What we’re going to do is use it to use the fast sync option. So put in

geth --fast.

This will do a quicker download of the whole blockchain. However it will only work if you have an empty chaindata folder. If you don’t then run

get removedb

Then confirm that you want to remove the DB. This will still take many hours though. What I had to do was run it on a VPS instance I run in San Francisco (I installed it first of course). Then exported the whole blockchain

geth export chaindata.bin

Then gzip it and SFTP it over to my laptop in sunny Sunshine Coast. You have no idea if you’re on good internet how low the timeout periods are on some stuff.

Buying DAO with Ether

So you have your wallet right? Pretty easy right? No? Well too bad, now you have to buy your DAO.

So we’re going to go in and buy your DAO. Open up your Ethereum wallet and let it sync, it might take a couple of minutes. Now you can either use the default wallet, or create a new one. I would create a new one if I were you. Create a strong password for it. A short snippet of a quote that you’re familiar with is good, include the punctuation and capitalization.

Now we’re going to back up your wallet. So go to Accounts -> Backup -> Application Data along the top menu. Then backup the folder in there. If you ever make a new Mist wallet install you just need to copy these folders back into here for a new install. I created an encypted .7z file (7-zip) to keep them in, but you might not be as paranoid as me. So now we’re going to get ether with Bitcoin. If you bought ether on an exchange you can just send it to your wallet address now. Click deposit ether using bitcoin. You’ll need to specify the transfer you want. I am also going to save you something that took DAYS to sort out. Make sure when you’re transferring bitcoin that you go abou .1BTC below the max deposit/deposit limit whichever is lower. If you go over you have to contact Shapeshift.io and get them to sort it out. Although their customer service was awesome and sorted me out every time. So now you have some ether right? Settle down, we’re almost done.

Buying DAO

So when the DAO started you got DAO by sending Ether to an address on DAOhub. I don’t think that’s how you’d get it today, but we’ll go on with it. So DAO is shown entirely by the ether wallet address that you have. You can put in your ether wallet address on DAOHub and you can see your balance. Make sure you have the right address! You can’t generally get your ether/bitcoin back from people. If you include a refund address and you send it somewhere bogus then I believe it will go back to you eventually.

Conclusion

I learned a lot taking care of this, and am now setup to get crypto-currencies whenever I want. That’s pretty nice. It was a bit of a headache though. I’m not sure I’d recommend it to people, I do prefer transferring bitcoin to my friends to settle up checks and bartabs as opposed to using Paypal or Venmo, or that Square service I couldn’t get anybody I know to use. It’s also international which I like. I also like being able to put some of my cash in Coinbase so that if the dollar tanks I’m not screwed.

Have any other questions? Had some issues yourself? Put it in the comments you wonderful person you.

Bitcoin, Ether, and DAO Oh My! Part 1

Bitcoin, Ether, and DAO Oh My! Part 1

So you want to buy some DAO

So you want to buy some DAO. Good for you. It sounds pretty cool right? I’m a big fan of decentralized autonomous democracy. It also gives a lot of entrepreneurs an alternative to either the VC or bootstrapping route (aside from crowdfunding, which can be a headache). You have some money in the bank and you want to get you some DAO. A few things you’re going to need in order to do that. You also need to decide how much privacy you need. First off you’re going to need to get you’re hard earned fiat currency (USD, AUD, EUR etc.) and convert it into a cryptocurrency.

Exchanges

So you have some options here. I’m going to go over a few of the ones that I looked at when I was picking one. I will also tell you that if you’re on the road like I am it’s a much bigger pain then if you aren’t.

Coinbase

So I ended up going with Coinbase (referral link). It isn’t available in every country, but it is in the USA. Although I was helping out a friend get setup in Australia and it isn’t available here. You can do a bit without proving your identity, but if you want to start shifting more than a couple of hundred dollars you are going to need to put in a lot of identifying info (e.g. ID scans, phone number, address). There is a limit of $40USD/day on debit card transfers, which is a bit of a pain, but you can transfer in a lot from a bank account with no fee in a few days which is very nice. If you want to keep transferring in via your card you can set it to transfer in the same amount every day until you disable it. Although you’re paying about 4% on your transfers as opposed to 0% on bank transfers.

Coinbase has a great app that you can use as a wallet as well. Although I’m not sure how I feel about keeping all of my BTC (bitcoin) in an online wallet. The 2FA (2-factor authentication)) is pretty good too, and it accepts foreign phone numbers. Although if you register with an IP overseas you have to send in a copy of your passport or drivers license (as I figured out the hard way). So if you are overseas you might want to use a VPN to get around that hassle.

Circle

Circle is a pretty popular exchange, and I saw some good reviews on it. However I was unable to even login because they kept saying my phone number wasn’t properly input. I tried it in every way I could think, and it still didn’t work. I currently have an Australian number, so that might be it, but I saw a lot of people online that had the same issue. I’m not comfortable using a service that requires 2FA that isn’t rock solid, but it might work great for you. Who knows?

I actually tried again while writing this and I think that the issue is that their phone number verification is checking for phone numbers in US format. For instance the area codes in Australia are xx instead of xxx. There are a bunch of countries like that and Circle should fix it if they require SMS verification to open an account and they want to say that they’re a worldwide provider.

247 Exchange

247 Exchange was actually the first exchange I tried, when I thought this whole thing would be much more straightforward than it was. The interface is pretty basic, but that doesn’t bother me much, but the fees were pretty high. Also the identity verification was pretty slow. They took long enough that I ended up going with a different exchange both for me and my friend. You get pretty large initial limits though.

On further inspection it doesn’t look like it supports American bank accounts. Also I couldn’t find out any way to transfer bitcoins out of it. Which is pretty weak. However that might have just been because I didn’t have any BTC there.

Cex.io

So with Cex.io I had some issues getting my documents together. Mostly it was that I was working at a cafe at the time and I didn’t have my passport card with me. I’m going through the identity verification now, so hopefully it will work out. I already have an account with Coinbase, and I like them, but I like the idea of being on two exchanges in case one of them has issues. I also keep some BTC on a mobile wallet (which we’ll cover in a bit). My friend ended up going with cex.io (on my recommendation) because they accept Australians, and I think they do most countries as well. They are a very reputable exchange, although they aren’t especially loved in the cryptocurrency community because they were big in cloud based bitcoin mining. That is mostly politics in the community though and has little to do with how safe your money is, or how good their service offering is.

So once you’re verified (name, ID, address, proof of residency like a bank statement, and a photo of you holding your ID), you have a very large limit on debit card transactions. It was about $3000/day for my friend. Although you end up paying about 4% on the transactions. You can add a bank, but it’s just a SWYFT transfer (international wire transfer), which is pretty pricey. I’d probably just go with the card. It’s too bad they don’t have like an ACH transfer or whatever the equivalent is internationally. It’s probably a international banking thing.

Update: While I’ve been writing this I found out that cex.io can’t do business with residents of Oregon. I maintain a residence in another state, and could have just added that address, but they didn’t mention it the first time I filled out their info. You also have to submit a ticket to delete an account, which is awesome. I probably won’t be going back there again. However if you’re international they are still a good option.

Bitstamp

I like Bitstamp’s overall look. It’s pretty straight to the point. I haven’t been able to verify my identity yet because they have very low timeouts set for their verification document uploads. I’m not sure if that is on purpose for security reasons, it can help prevent types of DOS (denial of service) attacks, or if they just didn’t think about it. I’m looking forward to getting on some better internet and then checking out their offering.

I took another look. They are on the list of places that don’t allow people with residency in Oregon to buy bitcoin. So I’m in the process of switching my bank to another state then I’ll try again.

Further reading

So if none of these are good options for you, I’d highly recommend this article at 99 bitcoins

We will continue next time with how to get your Ethereum wallet setup as well as some tips (hard won tips I’ll tell you) on how to minimize the time it takes to download the blockchain for the Ethereum wallet, also how to get DAO.