I recently setup a Gogs server. This post is not about Gogs, but the process I used to set up Gogs so it was just right for our needs.
Gogs is a git service. We’ve been using gitolite for a few years now, but our business needs have grown and we need a web interface to our git server. So we’re giving Gogs a try.
Gogs is relatively new software that has numerous configuration options, and external dependencies. Each installation will differ based on available resources and workflow needs. Figuring out our setup was a process of trial and error. More than once I realized I made a bad choice at one point or another, and decided to start over.
The trick I used to make this process go faster and prevent making the same mistake more than once was to write a detailed installation guide covering every step of the process.
Some of the steps were the exact bash command as entered into Terminal. Some of the steps, such as install Virtual Box, were much broader. I documented what I needed so that I could exactly duplicate my process if I needed to do it all over again.
When I realized it just wasn’t working with CentOS, and decided to switch to Ubuntu, I did not completely start over. I changed only the instructions that were effected by the switch in OS, and then followed my instructions. Most of the other decisions were just fine at this point, and I didn’t have to think about those choices making this round go so much faster.
The most important part of this process was to document each step before taking that step. I figured out what I needed to do next, and wrote it down. Some times that next step may have been fixing an error I made earlier, going back to that step, and proceeding through the instructions.
I won’t share my instructions, because they probably won’t work for you. You need to think through all those decisions in your situation, not blindly follow my decisions.
The only instruction I will share is to document your own process as you figure it out.