Найти в Дзене
avencores.

Onion SSR Boilerplate: создание конфиденциальных .onion-сайтов с полной серверной отрисовкой

Оглавление

Onion SSR Boilerplate — это шаблон на базе SvelteKit, созданный для разработки сайтов с доменом .onion в сети Tor. Главная особенность — 100% серверная отрисовка (SSR) без клиентского JavaScript, что особенно важно для пользователей Tor, которые предпочитают отключать JS.

Основные возможности

* SSR-Only режим: рендеринг полностью на стороне сервера, без передачи логики в браузер.

* Интеграция с Supabase: подключение и работа с БД через REST API.

* Обработка HTML-форм: серверная валидация данных, удобная и безопасная.

* Docker-развёртывание: готовая конфигурация для запуска вместе с Tor hidden service.

* Защитные заголовки: строгая Content Security Policy и другие меры для повышения безопасности.

* Локальные ресурсы: без использования сторонних CDN.

* Инструменты разработчика: поддержка ESLint, Prettier, Vitest, Vite и SvelteKit.

Преимущества подхода

1. Максимальная конфиденциальность — отсутствие клиентского JS исключает слежку и сторонние скрипты.

2. Гибкость — Supabase облегчает работу с данными и не требует ручной настройки REST API.

3. Простота развертывания — благодаря Docker проект можно запускать на любой платформе.

4. Поддержка Tor-экосистемы — готов к созданию hidden services с .onion-адресами.

5. Прозрачность — весь код и зависимости находятся под контролем разработчика.

Docker и Tor

* В комплекте есть docker-compose.yml, где настроен сервис Tor. Он автоматически создаёт hidden service и выдаёт .onion-адрес.

* Можно запускать как единый контейнер, передав параметры окружения (SUPABASE_URL, ключи доступа и т.д.).

Структура проекта

* src/routes/ — маршруты и серверные обработчики

* src/lib/supabase.js — конфигурация Supabase

* supabase/migrations/ — миграции базы данных

* hooks.server.js — глобальные обработчики и заголовки безопасности

* Dockerfile и docker-compose.yml — контейнеры для развёртывания

Пример приложения

В проекте есть гостевая книга (Guestbook):

* Страница /guestbook позволяет отправлять сообщения через форму.

* Серверная логика валидирует данные и записывает их в базу.

* При успехе или ошибке пользователь получает ответ с сервера.

Ограничения

* Нет поддержки интерактивных SPA-функций (drag & drop, динамические интерфейсы).

* Нагрузка полностью ложится на сервер, поэтому для высокой посещаемости нужны мощные ресурсы.

* Требуется настройка Supabase и контроль за безопасностью.

Скачать с GitHub

⬇️Поддержать автора⬇️

✅SBER: 2202 2050 7215 4401