#!/usr/bin/env bash # ============================================================================= # MapSystem — hızlı kurulum # # Tek sunucu: # curl -fsSL https://mapsystem.com.tr/indir/kur.sh | sudo bash # # Küme (cluster) kuracaksanız ilk node: # curl -fsSL https://mapsystem.com.tr/indir/kur.sh | sudo bash -s -- --kume # # İndirilmiş paketle (internetsiz sunucu): # sudo bash kur.sh --paket mapsystem-1.0.1-linux-x64.tar.gz # # Betik sürüm paketini indirir, SHA-256 özetini doğrular ve paketteki # install-mapsystem.sh ile kurar. install-mapsystem.sh'ın bütün seçenekleri # (--port, --data-dir, --cache-dir, --node-id ...) olduğu gibi geçirilebilir. # Yeniden çalıştırmak güvenlidir: yeni sürüme günceller, veri dizinini korur. # # Copyright (C) 2026 KBM Bilgisayar İletişim San. ve Tic. Ltd. Şti. (E-Sistem) # SPDX-License-Identifier: GPL-3.0-or-later # ============================================================================= set -euo pipefail BASE_URL="${MAPSYSTEM_URL:-https://mapsystem.com.tr/indir}" VERSION="" # boş: en güncel sürüm PACKAGE="" # yerel paket (.tar.gz) CLUSTER="no" PASS=() usage() { sed -n '2,20p' "$0" 2>/dev/null | sed 's/^# \{0,1\}//' cat <<'U' Seçenekler: --kume Küme kurulumu: bu makineyi ilk node yapar, katılım anahtarı üretir. --surum Belirli bir sürümü kurar (varsayılan: en güncel). --paket İndirmek yerine elinizdeki paketi kullanır. --adres İndirme adresi (varsayılan https://mapsystem.com.tr/indir). -h, --help Bu yardım. Diğer her seçenek install-mapsystem.sh'a aktarılır (ör. --port 8080 --node-id node1). U } while [[ $# -gt 0 ]]; do case "$1" in --kume|--cluster) CLUSTER="yes"; shift;; --surum|--version) VERSION="$2"; shift 2;; --paket|--package) PACKAGE="$2"; shift 2;; --adres|--url) BASE_URL="$2"; shift 2;; -h|--help) usage; exit 0;; *) PASS+=("$1"); shift;; esac done log() { printf '\033[1;36m==>\033[0m %s\n' "$*"; } die() { printf '\033[1;31m[X]\033[0m %s\n' "$*" >&2; exit 1; } [[ $EUID -eq 0 ]] || die "root gerekli: sudo ile çalıştırın." command -v apt-get >/dev/null || die "Bu betik Ubuntu / Debian içindir." [[ "$(uname -m)" == "x86_64" ]] || die "Yalnızca x86_64 (amd64) desteklenir." for t in curl tar sha256sum; do command -v "$t" >/dev/null || { apt-get update -qq && apt-get install -y -qq curl tar coreutils >/dev/null; break; } done WORK="$(mktemp -d /tmp/mapsystem-kurulum.XXXXXX)" trap 'rm -rf "$WORK"' EXIT if [[ -z "$PACKAGE" ]]; then if [[ -z "$VERSION" ]]; then VERSION="$(curl -fsSL "$BASE_URL/latest.txt" | tr -d '[:space:]')" || die "Sürüm bilgisi alınamadı: $BASE_URL/latest.txt" fi PACKAGE="$WORK/mapsystem-$VERSION-linux-x64.tar.gz" log "MapSystem $VERSION indiriliyor" curl -fL --progress-bar -o "$PACKAGE" "$BASE_URL/mapsystem-$VERSION-linux-x64.tar.gz" || die "Paket indirilemedi." curl -fsSL -o "$WORK/SHA256SUMS" "$BASE_URL/SHA256SUMS" || die "SHA256SUMS indirilemedi." log "Paket doğrulanıyor (SHA-256)" ( cd "$WORK" && grep " mapsystem-$VERSION-linux-x64.tar.gz\$" SHA256SUMS | sha256sum -c --quiet - ) \ || die "Özet tutmuyor: paket bozuk ya da değiştirilmiş. Kurulum durduruldu." else [[ -f "$PACKAGE" ]] || die "Paket bulunamadı: $PACKAGE" fi log "Paket açılıyor" tar xzf "$PACKAGE" -C "$WORK" DIR="$(find "$WORK" -mindepth 1 -maxdepth 1 -type d -name 'mapsystem-*' | head -1)" [[ -n "$DIR" && -x "$DIR/install-mapsystem.sh" ]] || die "Paket yapısı beklenmedik: install-mapsystem.sh yok." BUNDLE="$(ls "$DIR"/mapsystem-app-*-linux-x64.tgz 2>/dev/null | head -1)" [[ -n "$BUNDLE" ]] || die "Paket içinde uygulama arşivi yok." ARGS=(--bundle "$BUNDLE") if [[ "$CLUSTER" == "yes" ]]; then ARGS+=(--cluster-mode mesh --new-cluster --control-plane true) fi log "Kuruluyor" bash "$DIR/install-mapsystem.sh" "${ARGS[@]}" "${PASS[@]}" if [[ "$CLUSTER" == "yes" ]]; then cat < Kullanıcılar ekranından değiştirin. Belgeler ve kaynak kod: https://git.e-sistem.com.tr/map/mapsystem SON