Gogs appeared to be a great UI for private git repos. It consumes less resources and it is more stable comparing to gitlab. Also I experienced issues when I had to move dockerized gitlab 10.4.4-ce to other server and save all setups, user, etc.

So I stopped on gogs, and here is how I did a setup for it using docker.

So, let's firstly add a docker network for communications between gogs and nginx, which is going to be a front-end web server for all other dockerized services on my machine.
docker network create infrastructure
Docker network created, and now it is time to setup a "docker-compose.yml" file for nginx which is going to serv as a front-end server for gogs.
version: '3'
  services:
    nginx:
      image: 'nginx:1.13-alpine'
      restart: always
      ports:
        - 80:80
        - 443:443
      volumes:
        - ./sites-enabled/git.denrox.com:/etc/nginx/conf.d/git.denrox.com.conf:ro //config file for gogs
        - ./ssl/live:/etc/ssl:ro //ssh dir location
  networks:
    default:
      external:
        name: infrastructure //adding to network which we created earlier
Now let's create a "./sites-enabled/git.denrox.com" config file, which we are going to place near "docker-compose.yml" for nginx.
server {
  listen 80;
  listen 443 ssl;
  server_name git.denrox.com;

  if ($scheme = http) {
    return 301 https://$server_name$request_uri;
  }

  ssl_certificate /etc/ssl/git.denrox.com/fullchain.pem;
  ssl_certificate_key /etc/ssl/git.denrox.com/privkey.pem;
  ssl_session_timeout 1d;
  ssl_session_cache shared:SSL:20m;
  ssl_session_tickets off;

  gzip on;
  gzip_disable "msie6";
  gzip_types text/css application/json text/javascript application/javascript;

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_pass http://gogs:3000; //host which our gogs container will get
  }
}
And we can not set a "docker-compose.yml" for gogs
version: '3'
services:
  postgres:
    image: postgres:10.2-alpine
    restart: always
    environment:
      - POSTGRES_USER=gogs
      - POSTGRES_PASSWORD=laden1
      - POSTGRES_DB=gogs
      - PGDATA=/var/lib/postgresql/data/db-files/
    volumes:
      - "./data/db:/var/lib/postgresql/data/"
    networks:
      - backend
  gogs:
    image: gogs/gogs:latest
    restart: always
    hostname: 'gogs'
    links:
      - postgres
    environment:
      - "RUN_CROND=true"
    networks:
      - backend
      - frontend
    volumes:
      - "./data/gogs:/data"
    depends_on:
      - postgres

networks:
  backend:
    driver: bridge
  frontend:
    external:
    name: infrastructure
Now we can "cd" to "gogs/docker-compose.yml" and run "docker-compose up -d", and then do the same with "nginx/docker-compose.yml".