
Trianon — скрипт фотохостинга с шифрованием и автоудалением
Описание
Trianon — скрипт анонимного фотохостинга с шифрованием и автоудалением
Готовый фотохостинг на своём сервере за 10 минут. Посетители загружают картинки без регистрации, получают ссылку на альбом, а файлы хранятся на диске в зашифрованном виде и удаляются сами через заданный срок. Установщик сам настраивает сервер, базу данных и бесплатный SSL-сертификат, Интерфейс на русском языке и удобен на телефонах. В админ-панели можно сменить логотип, фон и подвал сайта, отредактировать информационные страницы и разместить рекламу.
Кому подойдёт
- Тем, кто хочет запустить свой сервис обмена изображениями (аналог imgur / fastpic) и зарабатывать на рекламе.
- Сообществам, форумам и командам, которым нужен приватный хостинг картинок без сторонних сервисов.
- Владельцам VPS, которым нужен готовый продукт, а не конструктор: залил, запустил установщик, работает.
Возможности для посетителей
- Загрузка без регистрации. Перетащите файлы в окно или выберите их на диске.
- До 20 изображений за раз. Каждая загрузка автоматически становится отдельным альбомом.
- Индикатор прогресса загрузки в процентах.
- Проверка файлов в браузере: неподходящий формат или слишком большой файл подсвечиваются ещё до отправки.
- Срок хранения на выбор: от 1 до 180 дней. По истечении срока файлы удаляются автоматически.
- Пароль на альбом. Один пароль открывает все изображения альбома, вводить его для каждой картинки не нужно. Автор загрузки видит свои фото без ввода пароля.
- Ссылка на альбом и кнопка «Копировать».
- Прямая ссылка на каждое изображение, её можно вставить на форум, в блог или в чат.
- Короткие адреса вида /i/… для изображения и /a/… для альбома (работают и на Apache, и на Nginx).
- Форматы: JPEG, PNG, GIF. Анимация в GIF сохраняется.
- Удобно на телефоне. Все страницы адаптированы под смартфоны и планшеты: крупные поля и кнопки, выбор фото из галереи, альбом в одну колонку.
- Интерфейс на русском языке, включая сообщения об ошибках и админ-панель.
Адаптивный дизайн
- Корректное отображение на смартфонах, планшетах и компьютерах.
- Поля ввода не вызывают автоматическое увеличение страницы на iPhone.
- Ссылки на альбом и изображение копируются одной кнопкой.
- Таблица в админ-панели прокручивается по горизонтали и не ломает страницу.
Безопасность и приватность
Безопасность была главным требованием при разработке, а не добавлена потом.
- Шифрование файлов на диске (AES-256-GCM). Изображения хранятся в папке только в зашифрованном виде и расшифровываются в момент показа. Даже при доступе к диску сервера посторонний не увидит содержимое. GCM к тому же проверяет целостность, поэтому подменённый файл не будет показан.
- Уникальный ключ шифрования для каждой установки. Установщик генерирует его автоматически.
- Удаление EXIF и метаданных. JPEG и PNG пересохраняются, поэтому из них пропадают GPS-координаты, модель камеры, дата съёмки и другие скрытые данные.
- Случайные ссылки длиной 16 символов: подобрать адрес чужого альбома перебором практически невозможно.
- Встроенная CAPTCHA защищает от ботов и массовых загрузок.
- Ограничение частоты запросов: не больше 30 загрузок в час с одного IP, 10 попыток ввода пароля к альбому и 5 попыток входа в админку за 15 минут.
- IP-адреса не хранятся в открытом виде. Для антиспама используется только их хеш.
- Без регистрации, трекеров, аналитики и сторонних сервисов.
- Пароли хранятся только в виде хеша (bcrypt): и пароли альбомов, и пароль администратора.
- Проверка содержимого файлов, а не только расширения: тип определяется по сигнатуре файла, а слишком большие изображения (больше 25 мегапикселей) отклоняются, что защищает сервер от «бомб распаковки».
- Защита от типовых веб-атак: SQL-инъекций (подготовленные запросы PDO), XSS (экранирование вывода), CSRF (токены во всех формах админки), кликджекинга (заголовки безопасности).
- Закрытый доступ к служебным файлам: конфигурация, скрипты, дампы, бэкапы и папка с загрузками недоступны из браузера.
- Безопасная админ-сессия: вход защищён от перебора, сессия завершается через 30 минут бездействия.
- HTTPS «из коробки»: бесплатный сертификат Let's Encrypt с автопродлением.
Панель администратора
- Список всех загруженных изображений с датой загрузки и сроком удаления.
- Удаление любого изображения в один клик, например по жалобе.
- Настройки сайта без правки кода:
- Логотип и фон главной страницы: JPEG, PNG, GIF или WebP до 5 МБ. Кнопка «Вернуть по умолчанию».
- Подвал сайта: текст и строка копирайта. E-mail и ссылки автоматически становятся кликабельными, {year} заменяется на текущий год.
- Три рекламных места: баннеры 160×600 слева и справа от формы загрузки и мобильный баннер 320×100 под формой.
- Информационные страницы «О нас», «Политика конфиденциальности» и «Условия использования». Можно менять заголовок и текст, выключать ненужные страницы. Ссылки на них автоматически появляются в подвале сайта. В комплекте готовые тексты на русском языке.
- Простая разметка без HTML: абзацы, подзаголовки, списки, кликабельные ссылки и e-mail.
Монетизация
Рекламные места уже встроены в дизайн, отдельно для компьютеров и для мобильных:
- два баннера 160×600 по сторонам от формы загрузки (на экранах шире 1024px);
- мобильный баннер 320×100 под формой (на телефонах и планшетах), чтобы зарабатывать и на мобильном трафике.
Каждый баннер можно настроить одним из способов:
- Картинка со ссылкой для прямых рекламодателей. Ссылка получает атрибут rel="sponsored", как требуют поисковики.
- Код рекламной сети (HTML/JavaScript), например Яндекс РСЯ, Google AdSense и другие.
Каждый баннер включается и выключается отдельно. На любом экране показывается только подходящий по размеру формат, поэтому реклама не ломает вёрстку.
Установка: один скрипт, около 10 минут
Автоматический установщик install.sh делает всё сам:
- Определяет ОС и проверяет ресурсы сервера и свободные порты.
- Устанавливает PHP 8.2, MariaDB и веб-сервер по вашему выбору: Apache или Nginx.
- Создаёт базу данных и пользователя со сгенерированными надёжными паролями.
- Генерирует ключ шифрования и пароль администратора.
- Настраивает виртуальный хост, права на файлы и параметры PHP.
- Получает SSL-сертификат Let's Encrypt. Сначала проверяет, что домен уже указывает на сервер, и настраивает автопродление.
- Проверяет установку и выводит все адреса и данные для входа.
Во время установки отображается прогресс с таймером, а подробный журнал пишется в файл. Установщик не «зависает» на скрытых вопросах пакетного менеджера.
Обслуживание
В комплекте есть скрипты для повседневной работы:
- update.sh — безопасное обновление. Сначала проверяет синтаксис нового кода и сохраняет текущую версию (последние 5 копий). После обновления проверяет, что сайт отвечает, а если нет, показывает команду для отката. Загруженные фото и настройки не затрагиваются.
- backup.sh — резервное копирование базы данных, изображений и конфигурации. Можно поставить в cron на ежедневный запуск. Старые копии удаляются через 7 дней, доступ к архивам есть только у root.
- restore.sh — восстановление из бэкапа: можно восстановить всё целиком или по частям (база, файлы, конфигурация).
- health-check.sh — диагностика. Проверяет веб-сервер, базу, PHP и расширения, права на файлы, доступность загрузок и наличие «забытых» файлов с секретами в веб-каталоге.
- Автоочистка. Изображения с истёкшим сроком и пустые альбомы удаляются автоматически, без настройки cron.
Технические характеристики
| Параметр | Значение |
|---|---|
| Язык / платформа | PHP 8.2 (совместим с PHP 7.4+) |
| База данных | MariaDB 10.3+ / MySQL 5.7+ |
| Веб-сервер | Apache 2.4+ или Nginx 1.18+ |
| Шифрование | AES-256-GCM (OpenSSL) |
| SSL | Let's Encrypt (Certbot) с автопродлением |
| Форматы загрузки | JPEG, PNG, GIF |
| Размер файла | до 1 МБ (настраивается) |
| Файлов за одну загрузку | до 20 (настраивается) |
| Срок хранения | 1–180 дней (настраивается) |
| Лимит загрузок | 30 в час с одного IP (настраивается) |
| Макс. разрешение | 25 мегапикселей |
| Язык интерфейса | русский |
| Адаптивность | смартфоны, планшеты, компьютеры |
| Рекламные места | 2 × 160×600 + мобильное 320×100 |
| Сторонние зависимости | нет (без фреймворков, CDN и внешних API) |
Все лимиты меняются одной строкой в config.php.
Требования к серверу
- ОС: Ubuntu 20.04+, Debian 10+, CentOS 7+, Rocky Linux 8+, AlmaLinux 8+
- ОЗУ: от 1 ГБ (рекомендуется 2 ГБ)
- Диск: от 5 ГБ (зависит от объёма загрузок)
- Домен, направленный на IP сервера (для SSL)
- Root-доступ к VPS
Подойдёт самый недорогой VPS.
Что входит в комплект
- Полный исходный код без обфускации
- Автоматический установщик для Ubuntu / Debian / CentOS / Rocky / AlmaLinux
- Скрипты обновления, резервного копирования, восстановления и диагностики
- Панель администратора с настройками внешнего вида, страниц и рекламы
- Редактируемые страницы «О нас», «Политика конфиденциальности», «Условия использования» с готовыми текстами и страница 404
- Подробная инструкция по установке на русском языке (INSTALL_RU.md) и документация на английском
Коротко
✅ Загрузка без регистрации, до 20 фото за раз
✅ Русский интерфейс и адаптивный дизайн для телефонов
✅ Шифрование AES-256 на диске и удаление EXIF
✅ Автоудаление через 1–180 дней
✅ Пароль на альбом
✅ CAPTCHA и защита от спама
✅ Админ-панель: модерация, логотип, фон, подвал, страницы
✅ Три рекламных места, включая мобильное (баннер или код рекламной сети)
✅ Установка одним скриптом с SSL
✅ Обновление, бэкапы и диагностика в комплекте
✅ Без сторонних сервисов и трекеров
Отзывы (0)
Пока нет отзывов
Оплачивая заказ, вы принимаете публичную оферту и условия возврата
О продавце
DeployKit
4 товаров