Refining My Self-Hosting Setup: A Fresh Start
For years, I've used DirectAdmin to host my applications. While it has served me well, I always felt it was a bit overkill for my needs. I was fortunate enough to secure a lifetime license when that was still an option, and I’ve enjoyed using it over the years. However, I eventually decided it was time for a fresh start and a more streamlined approach.
Step 1: Defining My Server's Purpose
The first task was to figure out what I wanted to do with my server. I've always been a fan of self-hosting my tools, and I knew I wanted to continue that. Here's the list of tools I decided to self-host:
- GitEA (for GitHub-like functionality)
- Vaultwarden (Password manager)
- Nginx Reverse Proxy (for domain and SSL management)
- YouTrack (Project management)
- Ghost (Blog, where you’re reading this post!)
Step 2: Installing Docker
Since I’ve been working with Docker for a couple of years, I knew this would be the easiest way to manage my applications. After installing Docker, I made sure to organize my server environment so that managing everything would be as smooth and efficient as possible.
Step 3: Setting Up Nginx Reverse Proxy
Next, I turned to Nginx Reverse Proxy, running it in a Docker container. Thankfully, there was a straightforward guide available to get things up and running. I spent some time familiarizing myself with the setup, exploring where everything was located, and understanding how it all worked. Within about an hour, I had a good grasp of the system and was ready to move on.
Step 4: Installing YouTrack
I decided to start with YouTrack because it’s a tool I’ve used before and could help me stay organized as I set up the rest of my server. I already had a Docker configuration file for YouTrack, so it was simply a matter of copying and pasting the Docker Compose file to get it running.
Once YouTrack was set up, I configured the subdomain and SSL, which made me feel ready to move quickly through the rest of the setup.
Step 5: Vaultwarden for Password Management
The next tool I set up was Vaultwarden, which replaced multiple password managers I had been using: Google Password Manager, Bitwarden, and LastPass. Having separate solutions for personal and work passwords was becoming a hassle, so I consolidated everything into Vaultwarden. Once it was up and running, I used it to store my passwords for the other tools I had set up.
Step 6: GitEA for Git Hosting
Next, I installed GitEA, a GitHub alternative that allows me to self-host my repositories. While I don’t mind using GitHub, this setup gives me more control and the ability to experiment. I started by automating backups of all my repositories. In case something were to happen to my server, I wanted to make sure I had a backup. I set up automated forking of all my repositories to GitHub and made them private. Once everything was backed up, I connected my IDEs to my self-hosted Git server.
Step 7: Ghost for Blogging
Finally, I set up Ghost to host this very blog! I’ve always been passionate about writing and sharing my experiences, and I hope to inspire others to experiment with self-hosting and tool integrations. Writing about my experiences with different tools has always been a topic of interest for me, and I’m excited to share my journey here.
Ongoing Improvements
While I’ve made great progress, there are still a few things I’d like to implement. For instance, I want to set up regular snapshots of my server, configure backups for Vaultwarden, and find a user-friendly interface to manage my Docker containers. Right now, I manage everything via the command line, but I’m aiming to automate more processes down the line.
That said, the foundation is set, and I’m excited to continue building and refining my self-hosted setup.