init infrait

This commit is contained in:
2026-02-12 18:47:12 +03:00
commit 7a6ecf6281
18 changed files with 1389 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Вход в админку | InfraIT</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Montserrat:wght@600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
</head>
<body>
<main class="section">
<div class="container" style="max-width:560px;">
<h1>Админка InfraIT</h1>
<p class="section-subtitle">Введите пароль администратора.</p>
<form method="post" class="lead-form">
{% if error %}
<p class="form-error">{{ error }}</p>
{% endif %}
<label>Пароль<input type="password" name="password" required></label>
<button type="submit" class="btn btn-primary">Войти</button>
</form>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,77 @@
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Настройки сайта | InfraIT</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Montserrat:wght@600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
</head>
<body>
<main class="section">
<div class="container" style="max-width:900px;">
<div style="display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;">
<div>
<h1>Личный кабинет администратора</h1>
<p class="section-subtitle">Редактирование контактов, SEO и интеграций.</p>
</div>
<a class="btn btn-secondary" href="{{ url_for('admin_logout') }}">Выйти</a>
</div>
<form method="post" class="lead-form" style="margin-top:14px;">
{% if success %}
<p class="form-success">Настройки сохранены.</p>
{% endif %}
<label>Название компании
<input type="text" name="company_name" value="{{ settings.company_name }}" required>
</label>
<label>Телефон (как отображать)
<input type="text" name="phone_display" value="{{ settings.phone_display }}" required>
</label>
<label>Телефон (для ссылки tel:)
<input type="text" name="phone_link" value="{{ settings.phone_link }}" required>
</label>
<label>Email
<input type="email" name="email" value="{{ settings.email }}" required>
</label>
<label>URL сайта (canonical)
<input type="url" name="site_url" value="{{ settings.site_url }}" required>
</label>
<label>Yandex Verification Token
<input type="text" name="yandex_verification" value="{{ settings.yandex_verification }}">
</label>
<label>ID Яндекс.Метрики
<input type="text" name="yandex_metrika_id" value="{{ settings.yandex_metrika_id }}" placeholder="12345678">
</label>
<label>Telegram Bot Token
<input type="text" name="telegram_bot_token" value="{{ settings.telegram_bot_token }}" placeholder="123456:ABC...">
</label>
<label>Telegram Chat ID
<input type="text" name="telegram_chat_id" value="{{ settings.telegram_chat_id }}" placeholder="-100...">
</label>
<label>География выездов
<input type="text" name="geo_primary" value="{{ settings.geo_primary }}">
</label>
<label>География удаленной работы
<input type="text" name="geo_secondary" value="{{ settings.geo_secondary }}">
</label>
<button type="submit" class="btn btn-primary">Сохранить настройки</button>
</form>
</div>
</main>
</body>
</html>

37
templates/base.html Normal file
View File

@@ -0,0 +1,37 @@
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}{{ settings.company_name }} — IT-аутсорсинг для бизнеса{% endblock %}</title>
<meta name="description" content="InfraIT: комплексное IT-обслуживание бизнеса в Татарстане и Казани с выездом в день запроса. По России — удаленная поддержка. Фиксированная стоимость, быстрое реагирование, поддержка серверов и сетей.">
<meta name="keywords" content="IT аутсорсинг Казань, IT обслуживание Татарстан, обслуживание компьютеров организаций, поддержка серверов, администрирование сетей, IT поддержка бизнеса">
<link rel="canonical" href="{{ settings.site_url }}">
<meta property="og:title" content="InfraIT — комплексное IT-обслуживание бизнеса">
<meta property="og:description" content="Компьютеры, серверы и сети для бизнеса без простоев. Татарстан и Казань с выездом, Россия удаленно.">
<meta property="og:type" content="website">
<meta property="og:locale" content="ru_RU">
<meta name="yandex-verification" content="{{ settings.yandex_verification }}">
{% if settings.yandex_metrika_id %}
<script>
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) { if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym({{ settings.yandex_metrika_id }}, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true });
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/{{ settings.yandex_metrika_id }}" style="position:absolute; left:-9999px;" alt=""></div></noscript>
{% endif %}
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Montserrat:wght@600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
{% block head_extra %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
<script src="{{ url_for('static', filename='js/main.js') }}"></script>
{% block scripts %}{% endblock %}
</body>
</html>

339
templates/index.html Normal file
View File

@@ -0,0 +1,339 @@
{% extends "base.html" %}
{% block title %}{{ settings.company_name }} — IT-обслуживание бизнеса в Татарстане и по России{% endblock %}
{% block head_extra %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "{{ settings.company_name }}",
"url": "{{ settings.site_url }}",
"email": "{{ settings.email }}",
"telephone": "{{ settings.phone_link }}",
"areaServed": ["Татарстан", "Казань", "Россия"],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"addressRegion": "Республика Татарстан",
"addressLocality": "Казань"
},
"serviceType": "Комплексное IT-обслуживание бизнеса"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Чем аутсорсинг выгоднее штатного системного администратора?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Вы получаете команду специалистов по цене ниже одного штатного сотрудника, фиксированную стоимость и подмену на время отпусков и больничных."
}
},
{
"@type": "Question",
"name": "Как быстро вы реагируете на заявки?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Большинство обращений берём в работу в течение 1530 минут. Для критичных инцидентов действует приоритетная схема в зависимости от тарифа."
}
},
{
"@type": "Question",
"name": "Вы работаете только в Казани?",
"acceptedAnswer": {
"@type": "Answer",
"text": "В Казани и по Татарстану выезжаем в день запроса. По России оказываем удаленную IT-поддержку и администрирование."
}
}
]
}
</script>
{% endblock %}
{% block content %}
<header class="hero" id="top">
<div class="container">
<div class="topbar">
<a class="brand" href="#top" aria-label="{{ settings.company_name }}">
<img src="{{ url_for('static', filename='img/infrait-logo.png') }}" alt="{{ settings.company_name }} logo" onerror="this.style.display='none'; this.nextElementSibling.style.display='inline-flex';">
<span class="brand-fallback">{{ settings.company_name }}</span>
</a>
<nav class="nav">
<a href="#services">Услуги</a>
<a href="#pricing">Тарифы</a>
<a href="#process">Как работаем</a>
<a href="#faq">FAQ</a>
<a href="#contact">Контакты</a>
</nav>
<a href="tel:{{ settings.phone_link }}" class="phone">{{ settings.phone_display }}</a>
</div>
<div class="hero-grid">
<div>
<span class="badge">IT-аутсорсинг для бизнеса 5-100 ПК</span>
<h1>Комплексное IT-обслуживание компьютеров, серверов и сетей для стабильной работы бизнеса</h1>
<p class="lead">Берём на себя всю IT-часть: от поддержки пользователей до серверов и резервного копирования. Дополнительно обеспечиваем поставку лицензионного ПО и мягкую миграцию на отечественные решения без остановки работы.</p>
<div class="cta-row">
<a href="#contact" class="btn btn-primary">Рассчитать стоимость</a>
<a href="#contact" class="btn btn-secondary">Получить консультацию</a>
</div>
<div class="geo-note">
<strong>География:</strong> {{ settings.geo_primary }}. {{ settings.geo_secondary }}.
</div>
</div>
<aside class="hero-card">
<h3>Почему с InfraIT проще</h3>
<ul>
<li>Аутсорсинг дешевле штатного IT-специалиста</li>
<li>Фиксированная ежемесячная стоимость</li>
<li>Один подрядчик за всю IT-инфраструктуру</li>
<li>Быстрое реагирование на инциденты</li>
<li>Поставка ПО и переход на российские аналоги под ключ</li>
<li>Поддержка роста и масштабирования</li>
</ul>
</aside>
</div>
</div>
</header>
<main>
<section class="section" id="services">
<div class="container">
<h2>Услуги IT-обслуживания</h2>
<p class="section-subtitle">Мы берём на себя всю IT-часть, чтобы бизнес работал без простоев.</p>
<div class="cards">
<article class="card"><h3>Рабочие станции Windows/macOS</h3><p>Настройка, обслуживание, обновления, контроль лицензий и производительности.</p></article>
<article class="card"><h3>Поддержка пользователей</h3><p>Удалённая помощь и выезды по Татарстану, чтобы сотрудники не теряли рабочее время.</p></article>
<article class="card"><h3>Серверы и сервисы</h3><p>Поддержка AD, файловых и прикладных серверов, контроль стабильности и доступа.</p></article>
<article class="card"><h3>Сети и Wi-Fi</h3><p>Администрирование сетевой инфраструктуры, сегментация, защита и оптимизация.</p></article>
<article class="card"><h3>VPN и удалённая работа</h3><p>Безопасный доступ сотрудников к корпоративным ресурсам из любой точки.</p></article>
<article class="card"><h3>Резервное копирование</h3><p>Настройка бэкапов и регулярная проверка восстановления данных.</p></article>
<article class="card"><h3>Мониторинг инфраструктуры</h3><p>Постоянный контроль серверов, сетей и критичных узлов с превентивным реагированием.</p></article>
<article class="card"><h3>Модернизация IT-систем</h3><p>Плановые обновления оборудования и ПО без остановки бизнес-процессов.</p></article>
<article class="card"><h3>IT-консалтинг и планирование</h3><p>Понятный план развития инфраструктуры под задачи и бюджет компании.</p></article>
<article class="card"><h3>Поставка лицензионного ПО</h3><p>Подбираем, закупаем и внедряем софт для бизнеса: ОС, офисные пакеты, безопасность, серверные лицензии.</p></article>
<article class="card"><h3>Миграция на отечественные решения</h3><p>Переход на российское ПО поэтапно: аудит, пилот, перенос данных, обучение сотрудников и сопровождение.</p></article>
</div>
</div>
</section>
<section class="section highlight" id="pricing">
<div class="container">
<h2>Тарифы обслуживания</h2>
<p class="section-subtitle">Стоимость зависит от количества компьютеров: чем больше парк, тем ниже цена за 1 ПК.</p>
<div class="pricing-grid">
<article class="price-card">
<h3>Лайт</h3>
<p class="for">Для офисов 5-10 ПК</p>
<p class="price">от 2 500 ₽ / ПК</p>
<ul>
<li>Удалённая поддержка пользователей</li>
<li>Базовое администрирование сети</li>
<li>Установка и обновление ПО</li>
<li>Консультации по рабочим вопросам</li>
</ul>
<a href="#contact" class="btn btn-secondary">Выбрать Лайт</a>
</article>
<article class="price-card featured">
<p class="chip">Основной выбор</p>
<h3>Стандарт</h3>
<p class="for">Для офисов 10-30 ПК</p>
<p class="price">от 2 100 ₽ / ПК</p>
<ul>
<li>Всё из тарифа Лайт</li>
<li>Поддержка серверов</li>
<li>VPN для удалённых сотрудников</li>
<li>Резервное копирование</li>
<li>Мониторинг инфраструктуры</li>
<li>Плановые выезды по Татарстану</li>
<li>Базовая поставка и обновление ПО</li>
</ul>
<a href="#contact" class="btn btn-primary">Выбрать Стандарт</a>
</article>
<article class="price-card">
<h3>Про</h3>
<p class="for">Для 30+ ПК и критичных систем</p>
<p class="price">индивидуально</p>
<ul>
<li>Приоритетная поддержка</li>
<li>Расширенная стратегия бэкапов</li>
<li>SLA с фиксированными метриками</li>
<li>IT-планирование и аудит рисков</li>
<li>Повышенный уровень безопасности</li>
<li>Миграция на отечественное ПО под ключ</li>
</ul>
<a href="#contact" class="btn btn-secondary">Обсудить Про</a>
</article>
</div>
<p class="pricing-note">Точная стоимость рассчитывается после короткого аудита: учитываем количество ПК, серверов, филиалов и требования к доступности.</p>
</div>
</section>
<section class="section" id="benefits">
<div class="container">
<h2>Выгоды для бизнеса</h2>
<div class="benefits-grid">
<article><h3>Меньше простоев</h3><p>Проблемы решаются до того, как превращаются в остановку работы отдела или офиса.</p></article>
<article><h3>Понятные расходы</h3><p>Ежемесячный бюджет на IT прогнозируем и не зависит от внезапных инцидентов.</p></article>
<article><h3>Безопасность данных</h3><p>Регламенты доступа, резервные копии и контроль восстановления снижают риски потерь.</p></article>
<article><h3>Нет зависимости от одного человека</h3><p>С вами работает команда, а не один администратор, недоступный в отпуске или на больничном.</p></article>
<article><h3>IT развивается вместе с компанией</h3><p>Инфраструктура масштабируется под рост штата, филиалов и новых бизнес-задач.</p></article>
</div>
</div>
</section>
<section class="section" id="commercial">
<div class="container two-col">
<article class="panel">
<h2>Почему аутсорсинг выгоднее штатного администратора</h2>
<ul>
<li>Команда экспертов по цене одного специалиста</li>
<li>Закрываем и пользователей, и серверы, и сети</li>
<li>Нет затрат на налоги, отпускные и найм</li>
<li>Закупаем и сопровождаем нужное ПО без лишних подрядчиков</li>
<li>Фиксированный договор и прозрачные KPI</li>
</ul>
</article>
<article class="panel" id="process">
<h2>Как мы работаем</h2>
<ol>
<li><strong>Аудит:</strong> изучаем инфраструктуру, риски и узкие места.</li>
<li><strong>Обслуживание:</strong> запускаем регулярную поддержку и контроль.</li>
<li><strong>Развитие:</strong> планируем и внедряем улучшения под рост бизнеса.</li>
</ol>
</article>
</div>
<div class="container" style="margin-top:16px;">
<article class="panel">
<h3>После заключения договора</h3>
<p>Критически важные системы подключаем к нашему мониторингу. При сбоях мы узнаем о проблеме сразу, моментально начинаем работы и оперативно уведомляем заказчика о статусе и сроках восстановления.</p>
</article>
</div>
</section>
<section class="section muted" id="extra-services">
<div class="container">
<h2>Дополнительные услуги</h2>
<p class="section-subtitle">Усиливают защиту и устойчивость бизнеса, но не перегружают вашу операционку.</p>
<div class="cards two">
<article class="card">
<h3>Соответствие ФЗ-152 (персональные данные)</h3>
<ul>
<li>Аудит IT-инфраструктуры и процессов хранения данных</li>
<li>Рекомендации по защите и разграничению доступа</li>
<li>Практические шаги для снижения риска штрафов</li>
</ul>
<p>Подключается как отдельная услуга без лишней бюрократии.</p>
</article>
<article class="card">
<h3>Переход на отечественное ПО</h3>
<ul>
<li>Аудит текущего программного стека</li>
<li>Подбор российских аналогов под ваши задачи</li>
<li>Пилот, миграция и сопровождение команды</li>
</ul>
<p>Помогаем перейти спокойно и без остановки работы.</p>
</article>
</div>
</div>
</section>
<section class="section seo" id="seo-yandex">
<div class="container">
<h2>SEO-блок для Яндекс: IT-аутсорсинг в Казани и Татарстане</h2>
<p>InfraIT оказывает услуги IT-аутсорсинга для малого и среднего бизнеса: обслуживание компьютеров, серверов, сетей и корпоративных сервисов. Если вам нужно IT-обслуживание в Казани или по Татарстану с выездом инженера в день запроса, мы берём задачу в работу оперативно. Для компаний из других регионов России предоставляем удалённую IT-поддержку, мониторинг и администрирование с прозрачным SLA.</p>
<p>Мы работаем с офисами, бухгалтериями, юридическими фирмами, торговыми и сервисными компаниями, где важны стабильность, безопасность и предсказуемые расходы на IT. Отдельно сопровождаем поставку программного обеспечения и внедряем отечественные аналоги, чтобы бизнес соответствовал требованиям и развивался без технических рисков.</p>
</div>
</section>
<section class="section" id="faq">
<div class="container">
<h2>FAQ для руководителей</h2>
<div class="faq-list">
<details>
<summary>Сколько стоит IT-обслуживание в месяц?</summary>
<p>Цена зависит от количества компьютеров и состава инфраструктуры. Базово: чем больше ПК, тем ниже цена за единицу. Предварительный расчёт делаем после короткого интервью.</p>
</details>
<details>
<summary>Насколько быстро вы подключаетесь к инцидентам?</summary>
<p>Большинство заявок берём в работу в течение 15-30 минут. Для критичных задач на тарифе Про действуют приоритетные регламенты и SLA.</p>
</details>
<details>
<summary>Можно ли работать без выездов, только удалённо?</summary>
<p>Да. Для клиентов по России предоставляем полностью удалённый формат. {{ settings.geo_primary }}.</p>
</details>
<details>
<summary>Вы можете взять инфраструктуру "под ключ"?</summary>
<p>Да, это наш основной формат. От поддержки сотрудников до серверов, сетей, бэкапов и развития IT.</p>
</details>
<details>
<summary>Помогаете с поставкой ПО и переходом на российские решения?</summary>
<p>Да. Подбираем и поставляем лицензии, проводим пилот, переносим данные и поэтапно мигрируем на отечественное ПО с сопровождением сотрудников.</p>
</details>
</div>
</div>
</section>
<section class="section contact" id="contact">
<div class="container two-col">
<div>
<h2>Оставьте заявку</h2>
<p>Рассчитаем стоимость обслуживания и предложим формат поддержки под ваш бизнес за 30 минут.</p>
<ul class="contacts">
<li><strong>Телефон:</strong> <a href="tel:{{ settings.phone_link }}">{{ settings.phone_display }}</a></li>
<li><strong>Email:</strong> <a href="mailto:{{ settings.email }}">{{ settings.email }}</a></li>
<li><strong>Выезды:</strong> {{ settings.geo_primary }}</li>
<li><strong>По России:</strong> {{ settings.geo_secondary }}</li>
</ul>
</div>
<form method="post" class="lead-form" novalidate>
{% if success %}
<p class="form-success">Спасибо! Заявка отправлена. Мы свяжемся с вами в ближайшее время.</p>
{% endif %}
{% if error %}
<p class="form-error">{{ error }}</p>
{% endif %}
<label>Имя*<input type="text" name="name" required></label>
<label>Компания*<input type="text" name="company" required></label>
<label>Телефон*<input type="tel" name="phone" required></label>
<label>Email<input type="email" name="email"></label>
<label>Город<input type="text" name="city" placeholder="Казань"></label>
<label>Количество компьютеров*<input type="number" name="computers" min="1" required></label>
<label>Комментарий<textarea name="message" rows="4" placeholder="Кратко опишите текущую задачу"></textarea></label>
<button type="submit" class="btn btn-primary">Получить консультацию</button>
</form>
</div>
</section>
</main>
<a class="mobile-sticky-cta" href="#contact">Рассчитать стоимость</a>
<footer class="footer">
<div class="container footer-inner">
<div>
<a class="footer-logo" href="#top" aria-label="{{ settings.company_name }}">
<img src="{{ url_for('static', filename='img/infrait-logo.png') }}" alt="{{ settings.company_name }} logo" onerror="this.style.display='none'; this.nextElementSibling.style.display='inline-flex';">
<span class="brand-fallback">{{ settings.company_name }}</span>
</a>
<p>Комплексное IT-обслуживание бизнеса: компьютеры, серверы и сети.</p>
</div>
<div>
<p><a href="tel:{{ settings.phone_link }}">{{ settings.phone_display }}</a></p>
<p><a href="mailto:{{ settings.email }}">{{ settings.email }}</a></p>
</div>
</div>
</footer>
{% endblock %}