Trying to combine installation tutorials - what am I missing


I just started trying to set up my own GitLab CE instance in the cloud. It seemed like I had enough tutorials to accomplish what I want, but I keep running into isses. Maybe somebody can give me a few pointers how to get some of these issues sorted out?

Where I want to get:
Ideally I want to start with a single VM for the main GitLab instance and another one for one runner. On the main GitLab VM I wanted to have the container registry and a reverse proxy that takes care of TLS. I tried to spin GitLab up using docker compose.

What worked:
I could spin up GitLab and forward Nginx requests to the container (port 8080), connections were secure.
I could seemingly configure the instance and execute commands using docker exec.

Issues that I could not fix:

  • I never know which logfiles to look at and see which config options are actually used
  • I don’t seem to understand the role of the omnibus config override in the docker compose file
  • I can’t get ssh connections working - I tried to forward port 22 to 2222 to avoid a clash with the used port in the host system in the compose file - when I try to connect I get a generic error message that it could be permissions or anything else, no idea where to look
  • Sending mails does not work. No idea where I can see the effective config - looked at the production log and there are log messages that show some weird target string that I can’t make sense of, but sending somewhere is logged as a success
  • In the GUI it says the container is not active but needed for CI/CD - I think I read that it only gets activated when tls is used - is that the problem? I assume the solution is spinning up the registry in docker compose and configuring as an external registry, but I can’t seem to find resources that show how this can be done (the docker compose part, I hope the gitlab.rb settings would be self-explanatory)

Any ideas how I can approach this? I would consider paying for gitlab premium, but I would love to get an understanding of how this works and the fact that it is billed annually removes this option.