# İlk Kurulum

Onoxsoft Panel'i sıfır bir AlmaLinux 9 sunucuya tek komutla kurabilirsiniz. Bu sayfa kurulum sürecini adım adım açıklar.

## Ön Koşullar

- **İşletim sistemi:** AlmaLinux 9 (minimal install) — CentOS Stream 9 da desteklenir
- **RAM:** Minimum 2 GB, önerilen 4 GB+
- **Disk:** Minimum 20 GB SSD
- **CPU:** 2 vCPU+
- **Ağ:** Statik IP, 80/443/2083 portları açık
- **Root erişimi:** SSH ile root veya sudo yetkili kullanıcı

::: warning Temiz Sunucu
Kurulum betiği, önceden kurulmuş Apache/Nginx/MySQL/cPanel gibi servisleri **kaldırmaz**. Kurulumu temiz (fresh) bir sunucuda çalıştırın.
:::

## Tek Komutla Kurulum

```bash
curl -fsSL https://raw.githubusercontent.com/onoxsoft/panel/main/install.sh | bash
```

Betik şu adımları otomatik tamamlar:

1. AlmaLinux 9 paket güncellemesi (`dnf update -y`)
2. EPEL + Remi repo eklenmesi
3. Apache 2.4, PHP 8.3-FPM, MariaDB 10.11, Redis, PowerDNS kurulumu
4. Postfix + Dovecot + Rspamd kurulumu
5. fail2ban + ModSecurity kurulumu
6. Onoxsoft Panel uygulama dosyalarının `/srv/panel` konumuna çekilmesi
7. `.env` dosyasının oluşturulması (otomatik secret üretimi)
8. Veritabanı ve migration çalıştırılması
9. `panel.your-ip.nip.io` üzerinde geçici SSL alınması
10. Admin kullanıcısı oluşturulması

Kurulum yaklaşık **25-35 dakika** sürer.

## Kurulum Sırasında Sorulan Sorular

Betik kurulum sırasında birkaç soru sorar:

```
Panel domain name (e.g. panel.example.com): panel.yourdomain.com
Admin email: admin@yourdomain.com
Admin password [auto-generate? y/N]: y
Server timezone [Europe/Istanbul]:
Enable AutoSSL via Let's Encrypt? [Y/n]: y
```

::: tip Domain Yoksa
Domain yoksa Enter'a basarak atlayabilirsiniz. Panel `https://<sunucu-ip>:2083` adresinde erişilebilir olur. Domain'i daha sonra **Admin > Sunucu Ayarları > Panel Domain** menüsünden ekleyebilirsiniz.
:::

## Kurulum Sonrası İlk Giriş

Kurulum tamamlandığında terminalinizde şu çıktıyı görürsünüz:

```
╔══════════════════════════════════════════════════╗
║           Onoxsoft Panel Kurulumu Tamamlandı         ║
╠══════════════════════════════════════════════════╣
║  Panel URL  : https://panel.yourdomain.com       ║
║  Admin      : admin@yourdomain.com               ║
║  Şifre      : P@ssw0rd_Onoxsoft_xK9mZ           ║
║  API Token  : onox_live_xxxxxxxxxxxxxxxxxx       ║
╚══════════════════════════════════════════════════╝
```

::: danger Şifreyi Hemen Değiştirin
Otomatik üretilen şifreyi ilk girişte değiştirin: **Profil > Şifre Değiştir**
:::

## Manuel Kurulum (İsteğe Bağlı)

Daha fazla kontrol istiyorsanız betik kullanmak yerine adım adım kurabilirsiniz:

### 1. Depoyu Klonla

```bash
git clone https://github.com/onoxsoft/panel.git /srv/panel
cd /srv/panel
```

### 2. PHP Bağımlılıklarını Yükle

```bash
composer install --no-dev --optimize-autoloader
```

### 3. `.env` Oluştur

```bash
cp .env.example .env
php artisan key:generate
```

### 4. Temel `.env` Ayarları

```ini
APP_NAME="Onoxsoft Panel"
APP_ENV=production
APP_URL=https://panel.yourdomain.com
APP_KEY=  # artisan key:generate ile doldurulur

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=onox_panel
DB_USERNAME=onox
DB_PASSWORD=güçlü_şifre_girin

REDIS_HOST=127.0.0.1
REDIS_PORT=6379

QUEUE_CONNECTION=redis
CACHE_DRIVER=redis
SESSION_DRIVER=redis

PANEL_HOSTNAME=panel.yourdomain.com
PANEL_PORT=2083

# Mail sunucu entegrasyonu
MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=587
MAIL_FROM_ADDRESS=noreply@yourdomain.com

# Sysapi köprüsü — sudo whitelist yolundan değiştirmeyin
SYSAPI_SCRIPTS_PATH=/srv/panel/scripts/sysapi
SYSAPI_SUDO_USER=onox-sysapi

# AutoSSL (Let's Encrypt)
ACME_EMAIL=admin@yourdomain.com
ACME_STAGING=false
```

### 5. Veritabanı Kur

```bash
mysql -u root -e "CREATE DATABASE onox_panel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -e "CREATE USER 'onox'@'localhost' IDENTIFIED BY 'güçlü_şifre';"
mysql -u root -e "GRANT ALL PRIVILEGES ON onox_panel.* TO 'onox'@'localhost';"
php artisan migrate --seed
```

### 6. Storage İzinleri

```bash
chown -R apache:apache /srv/panel/storage /srv/panel/bootstrap/cache
chmod -R 775 /srv/panel/storage /srv/panel/bootstrap/cache
```

### 7. Supervisor ile Queue Worker

```bash
cp /srv/panel/install/supervisor/onox-worker.conf /etc/supervisord.d/
supervisorctl reread && supervisorctl update && supervisorctl start onox-worker:*
```

### 8. Cron Job

```bash
(crontab -l ; echo "* * * * * php /srv/panel/artisan schedule:run >> /dev/null 2>&1") | crontab -
```

### 9. Apache Vhost

```bash
cp /srv/panel/install/apache/onox-panel.conf /etc/httpd/conf.d/
systemctl reload httpd
```

### 10. İlk Admin Kullanıcısı

```bash
php artisan onox:create-admin --email=admin@yourdomain.com --name="Sistem Yöneticisi"
# Şifre güvenli girdi olarak sorulur
```

## Servisleri Doğrula

```bash
systemctl status httpd mariadb redis powerdns postfix dovecot rspamd fail2ban
```

Tüm servisler `active (running)` durumunda olmalıdır.

## Firewall Portları

```bash
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2083/tcp   # Panel
firewall-cmd --permanent --add-port=2222/tcp   # Panel SSH proxy (isteğe bağlı)
firewall-cmd --permanent --add-port=25/tcp     # SMTP
firewall-cmd --permanent --add-port=587/tcp    # Submission
firewall-cmd --permanent --add-port=993/tcp    # IMAPS
firewall-cmd --permanent --add-port=53/tcp     # DNS
firewall-cmd --permanent --add-port=53/udp     # DNS
firewall-cmd --reload
```

## Sonraki Adımlar

- [Sistem Gereksinimleri](/tr/getting-started/sistem-gereksinimleri)
- [AlmaLinux 9 Kurulum Kılavuzu](/tr/getting-started/almalinux-9-kurulum)
- [Admin Panele Genel Bakış](/tr/admin/overview)
- [İlk Hosting Paketi Oluşturma](/tr/admin/paket-yonetimi)
