tr

Geliştiriciler için VPS: CI/CD ve Test Ortamı

Yazılım geliştiriciler için kendi kontrolündeki bir VPS, bulut hizmetlerine olan bağımlılığı azaltır ve geliştirme süreçlerini hızlandırır. Anubiz Host'un offshore VPS'leri, CI/CD pipeline, Docker registry, staging ortamı ve geliştirme sunucusu olarak kullanılabilir.

Need this done for your project?

We implement, you ship. Async, documented, done in days.

Start a Brief

Self-Hosted GitLab Kurulumu

GitLab CE (Community Edition) tüm kaynak kod yönetimi, CI/CD ve container registry özelliklerini ücretsiz sunar:

apt update
apt install -y curl openssh-server postfix

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash

EXTERNAL_URL="https://gitlab.yourdomain.com" apt install -y gitlab-ce

GitLab yapılandırması:

gitlab-ctl reconfigure

İlk admin şifresi:

cat /etc/gitlab/initial_root_password

GitLab minimum önerilen kaynaklar: 4 vCPU, 8 GB RAM, 50 GB disk. 5-10 geliştirici için yeterlidir.

Docker Registry ve CI/CD Pipeline

Self-hosted Docker registry ile container image'larınızı kontrol altında tutun:

docker run -d -p 5000:5000 --restart=unless-stopped   -v /opt/registry:/var/lib/registry   --name registry registry:2

GitLab CI konfigürasyonu (.gitlab-ci.yml):

stages:
  - test
  - build
  - deploy

test:
  stage: test
  image: node:20
  script:
    - npm ci
    - npm test

build:
  stage: build
  script:
    - docker build -t registry.yourdomain.com/myapp:$CI_COMMIT_SHA .
    - docker push registry.yourdomain.com/myapp:$CI_COMMIT_SHA

deploy:
  stage: deploy
  script:
    - ssh deploy@prod-server "docker pull registry.yourdomain.com/myapp:$CI_COMMIT_SHA && docker compose up -d"
  only:
    - main

Staging ve Test Ortamı Yönetimi

VPS üzerinde birden fazla ortam (development, staging, production) yönetimi:

Docker Compose profilleri ile farklı ortamları aynı sunucuda izole edin:

version: '3.8'
services:
  app:
    image: myapp:latest
    profiles: ["staging", "production"]
    environment:
      - NODE_ENV=${APP_ENV:-staging}

  app-dev:
    image: myapp:dev
    profiles: ["development"]
    volumes:
      - ./src:/app/src

Ortam başlatma:

# Staging
APP_ENV=staging docker compose --profile staging up -d

# Production
APP_ENV=production docker compose --profile production up -d

Nginx subdomain routing ile her ortama ayrı URL:

  • dev.yourdomain.com
  • staging.yourdomain.com
  • yourdomain.com (production)

Monitoring ve Log Yönetimi

Geliştirici VPS için hafif monitoring stack:

Prometheus + Grafana Docker Compose ile:

version: '3.8'
services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin123
    depends_on:
      - prometheus

  node-exporter:
    image: prom/node-exporter
    ports:
      - "9100:9100"

Centralized log management için Loki + Promtail:

  loki:
    image: grafana/loki:latest
    ports:
      - "3100:3100"

Why Anubiz Host

100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included

Ready to get started?

Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.

Anubiz Chat AI

Online