Свой сервер

Разверни iBase на своём VPS и получи полный контроль над данными.

1

Зачем свой сервер

iBase — это сервис, который обрабатывает твой DNS-трафик. Если ты используешь наш сервер — ты доверяешь нам. Если хочешь не доверять никому, можно поднять свой.

Полный контроль
Ты видишь все настройки, никаких скрытых логов.
Свой домен
Например, dns.example.com вместо нашего поддомена.
Свой аплинк
WARP, Mullvad, своя нода — что угодно.
Независимость
Если iBase-проект закроется, твой сервер продолжит работать.
Свой сервер — это ответственность. Ты сам отвечаешь за uptime, безопасность, обновления и юридические вопросы в своей юрисдикции.
2

Требования

Минимум для запуска:

VPS
1 vCPU, 1 ГБ RAM, 20 ГБ SSD
ОС
Debian 12 или Ubuntu 22.04 LTS
Домен
dns.example.com с A-записью
SSL
Let's Encrypt (обязательно)
Аплинк
VPN-провайдер или своя нода
3

Стек

iBase-сервер состоит из нескольких компонентов:

nginx
Фронтенд, терминирует TLS
PHP 8.2+
Управление, токены, кабинет
PostgreSQL 15+
База данных
DoH-обработчик
Туннель (в разработке)
Пока DoH-обработчик и WireSpectr в разработке, self-host возможен в режиме только management — регистрация, токены, кабинет. Туннель можно поднять через сторонние решения (например, dnscrypt-proxy).
4

Установка

Пошаговая установка на чистом Debian 12.

Шаг 1. Подготовка сервера

# Обновление системы
apt update && apt upgrade -y

# Установка зависимостей
apt install -y nginx postgresql postgresql-contrib \
    php8.2-fpm php8.2-pgsql php8.2-mbstring php8.2-curl \
    php8.2-xml php8.2-zip git certbot python3-certbot-nginx

Шаг 2. Настройка PostgreSQL

# Создание базы и пользователя
sudo -u postgres psql

CREATE DATABASE iBase;
CREATE USER iBase_user WITH PASSWORD 'strong_password_here';
GRANT ALL PRIVILEGES ON DATABASE iBase TO iBase_user;
\q

Шаг 3. Клонирование проекта

# Клонируем репозиторий
cd /var/www
git clone https://github.com/your-org/iBase.git
cd iBase

# Права
chown -R www-data:www-data /var/www/iBase
chmod -R 755 /var/www/iBase

Шаг 4. SSL-сертификат

# Получаем сертификат Let's Encrypt
certbot --nginx -d dns.example.com

Шаг 5. nginx-конфиг

server {
    listen 443 ssl http2;
    server_name dns.example.com;

    ssl_certificate /etc/letsencrypt/live/dns.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dns.example.com/privkey.pem;

    root /var/www/iBase;
    index index.php;

    # DoH-эндпоинт (пока в разработке)
    location /dns-query {
        proxy_pass http://127.0.0.1:8443;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
    }

    # PHP-приложение
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Шаг 6. Перезапуск

systemctl restart nginx php8.2-fpm
5

Конфигурация

Основные настройки — в config/app.php и config/database.php.

config/database.php

<?php
return [
    'host'     => 'localhost',
    'port'     => 5432,
    'database' => 'iBase',
    'username' => 'iBase_user',
    'password' => getenv('DB_PASSWORD') ?: 'strong_password_here',
    'charset'  => 'utf8',
];

config/app.php

<?php
return [
    'name'         => 'iBase',
    'debug'        => false,
    'base_url'     => 'https://dns.example.com',
    'timezone'     => 'UTC',
    'session_name' => 'iBase_session',
];
Важно: debug должен быть false на продакшене. Иначе ошибки БД и стектрейсы будут видны всем посетителям.
6

DoH-эндпоинт

Полноценный DoH-обработчик пока в разработке. Он будет:

  • принимать POST /dns-query с DNS-пакетом в теле,
  • проверять токен в EDNS0 COOKIE или HTTP-заголовке,
  • если токен верный — туннелировать трафик через WireSpectr,
  • если нет — прозрачно проксировать на https://cloudflare-dns.com/dns-query.

Планируется как отдельный сервис на Go — для производительности. Архитектура:

nginx :443
├── /dns-query → DoH-обработчик (Go, :8443)
├── /api/* → PHP-FPM (управление)
└── /* → PHP-FPM (кабинет)
7

Статус

Что уже готово и что нет:

✓
Management
Регистрация, вход, кабинет, токены, ключи.
✓
База данных
PostgreSQL, схема users / keys / stormwalls.
✓
WireSpectr
Спецификация v0.1 готова.
◐
DoH-обработчик
В разработке.
◐
WireSpectr-сервер
В разработке.
○
Установочный скрипт
В планах.
○
Docker-образ
В планах.
○
Ansible playbook
В планах.
Хочешь помочь с разработкой? Напиши на dev@iBase.webhm.cloud. Мы особенно ищем людей для DoH-обработчика на Go и аудита WireSpectr.