Background

You may ask why does a person need a server and why is that a project?

To answer to first part we created this server for a personal website for myself and Thor Hanson, to host a Nextclound instance, and to have a playground on the internet. We could have gotten the same results from Nextcloud by using google services but we wanted to own our data and not have google tracking our content.

We started with renting a Digital Ocean server running Ubuntu 16.04. It has been updated to 18.04 and is running great. Then we went about setting up various services and applications best run on a webserver.

Nextcloud

Nextcloud is a suite of client-server software for creating and using file hosting services. Nextcloud application functionally is similar to Dropbox. Unlike Dropbox, Nextcloud does not offer off-premises file storage hosting. Nextcloud is free and open-source, which means that anyone is allowed to install and operate it on their own private server devices. Along with any data hosted on Nextcloud is still owned by the person that uploaded it.

Nextcloud’s features that we use include:

  • File sharing and synchronization
  • Online shared editing using collabra online
  • Calender synchronization
  • contact synchronization
  • Video conferencing
  • URL shortening
  • Photo gallery
  • RSS catcher
  • And many more

You can find our Nexctcloud instance here.

Websites

In this day and age everyone has a website. I wanted to create one mostly to show off my projects and career progress. I didn’t want to use some of those website builders like wix or godaddy. You can read about my website creating adventures more on the website here.

To implement it wasn’t hard, we just need a LAMP stack.

You can find our base website here, which links to most things on this server.

Gitlab

Gitlab is a self hosted git instance. You can compare it to Github but provides a better UI, is open source, and CI/CD features. It enables us to host our personal projects on our infrastructure making sure we own the whole stack and there is no claim to anyone else having a right to it.

To setup Gitlab we used a local machine in Thors’ dorm to actually host it, then we we used wireguard as a vpn to network to public server with the local computer.

Then I added a machine in my apartment as a Gitlab runner to help with building my projects.

You can find our Gitlab instance here.

Bitwarden

Bitwarden is a password manager that you can host yourself. Previously I used KeepassXC then I used Nextcloud to sync the database. This was a tad annoying and I heard great recommendations about Bitwarden, so I decided to try it and it’s great.

The reasons we decided to host our own instance of bitwarden was because we could, we like owning the infrastructure, and it makes it a smaller target for attackers.

You can find our bitwarden instance here.

Next Steps

Some things I’d like to do to our server:

  • Containerize my website and thorandrew.com. I’d like to use this opportunity to learn docker
  • Refactor how we have bitwarden installed. Currently it is installed in a weird spot on the server and it should be moved.
  • Try out Mastidon. I want to become more active on the internet.