⚙️ scripts/04_server_gitlab.sh

← К панели 📁 Все скрипты 💾 Скачать
#!/bin/bash
# ============================================================
# Скрипт 04: GitLab CE в Docker
# ============================================================

set -e

echo "▶️  04. GitLab..."
echo ""

GITLAB_DIR="$HOME/docker/gitlab"
mkdir -p "$GITLAB_DIR"
cd "$GITLAB_DIR"

# ─── 1. docker-compose.yml ────────────────────────────────
echo "📝 Создание docker-compose.yml..."
cat > docker-compose.yml << 'EOF'
services:
  gitlab:
    image: gitlab/gitlab-ce:16.11.0-ce.0
    container_name: gitlab-native
    restart: always
    hostname: gitlab.kspai.ru
    ports:
      - "8080:80"
      - "2222:22"
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.kspai.ru'
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['redirect_http_to_https'] = false
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        letsencrypt['enable'] = false
        gitlab_rails['trusted_proxies'] = ['172.16.0.0/12', '192.168.0.0/24']
        nginx['real_ip_trusted_addresses'] = ['172.16.0.0/12', '192.168.0.0/24']
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/-/health"]
      interval: 30s
      timeout: 10s
      retries: 5
EOF

# ─── 2. Запуск ────────────────────────────────────────────
echo "🐳 Запуск GitLab (может занять 3-5 минут)..."
docker compose up -d

echo ""
echo "⏳ Ожидание запуска (120 сек)..."
sleep 120

# ─── 3. Проверка ──────────────────────────────────────────
echo ""
echo "🔍 Проверка:"
docker compose ps
echo ""
curl -s -o /dev/null -w "GitLab: HTTP %{http_code}\n" http://localhost:8080/

# ─── 4. Пароль root ───────────────────────────────────────
echo ""
echo "🔑 Пароль root (сохраните!):"
docker exec gitlab-native grep 'Password:' /etc/gitlab/initial_root_password 2>/dev/null || echo "   (будет доступен через 1-2 минуты)"

echo ""
echo "✅ 04_server_gitlab.sh завершён"
echo ""
echo "🌐 GitLab: https://gitlab.kspai.ru"