# Архив сайта cad.ru (1998 год) ## ВСЕ о САПР (CAD/CAM/CAE Archive) Это архивная версия исторического русскоязычного сайта о системах автоматизированного проектирования (САПР), созданного в 1998–1999 годах для "Русской Промышленной Компании" (РПК). Развернуто по адресу: [1998.cadpoint.ru](https://1998.cadpoint.ru/). **Осторожно:** - фреймы (frameset) и meta-refresh; - оптимизировано под разрешение 640х480; - кодировка KOI8-R (не UTF-8); - куча "битых ссылок" на внешние ресурсы. ### ⚠️ Важно: Кодировка KOI8-R Этот архив хранится в кодировке **KOI8-R** (устаревший стандарт для русского текста в интернете конца 90-х). #### Отображение в Gitea (веб-интерфейс) Если в веб-интерфейсе Gitea видишь "кракозябры" или иероглифы вместо русского текста — **это не ошибка, файлы хранятся корректно**. Веб-интерфейс Git/Gitea обычно ожидает UTF-8 и не умеет надёжно показывать KOI8-R как есть. Содержимое в репозитории не повреждено. #### Правильное отображение и работа ##### 1. Локально (клонирование + IDE) ```bash git clone https://git.cube2.ru/erjemin/1998-cad-cadpoint.git cd 1998-cad-cadpoint ``` Откройте файлы в IDE **с явным указанием кодировки KOI8-R**: - **VS Code**: нижняя панель → `UTF-8` → выберите `KOI8-R` - **JetBrains IDE** (PhpStorm, IntelliJ и т.д.): правый клик → `File Encoding` → `KOI8-R` - **nano/vim**: `:set encoding=koi8-r` (vim) `.editorconfig` в репозитории подскажет IDE открыть KOI8-R файлы с правильной кодировкой автоматически. ##### 2. Через nginx (контейнер/веб-сервер) Сайт отдаётся через nginx с заголовком: ``` Content-Type: text/html; charset=koi8-r ``` Браузер автоматически декодирует текст корректно. Содержимое отображается правильно для конечного пользователя. ### Структура ``` . ├── html/ # Статические файлы сайта │ ├── index.htm # Промежуточная страница с meta-refresh │ ├── index1.htm # Главная (frameset) │ ├── header.htm # Шапка фреймовой структуры │ ├── nav.htm # Навигация (левая панель) │ ├── main.htm # Основной контент │ ├── _b/ # Графические элементы (GIF) │ ├── _co/ # Раздел "Компании" │ ├── _pr/ # Раздел "Программные продукты" │ ├── _ex/ # Раздел "События и новости" │ ├── _pb/ # Раздел "Публикации" │ ├── _fr/ # Раздел "Ссылки" │ ├── _sh/ # Раздел "Поиск" │ ├── images/ # Баннеры и логотипы │ ├── robots.txt # Инструкции для поисковых роботов │ └── favicon.* # Иконки браузера ├── config/ │ └── nginx/ │ ├── cadpoint1998--internal-nginx.conf # Конфиг внутреннего nginx (в контейнере) │ └── cadpoint1998--external-nginx.conf # Конфиг внешнего nginx (на хосте, для reverse-proxy) ├── Dockerfile # Контейнеризация архива (nginx + HTML + конфиги) ├── docker-compose.yml # Dev-конфиг (локальное тестирование) ├── docker-compose.prod.yml # Prod-конфиг (продакшен с Watchtower) ├── .gitignore # Исключение из репозитория ├── .gitattributes # Правила кодировки и обработки файлов ├── .editorconfig # Рекомендации для редакторов ├── .env.example # Пример переменных окружения └── README.md # Этот файл ``` ### Важные замечания #### ❌ НЕ делай - ❌ Не переводи файлы в UTF-8 без планомерного миграционного процесса - ❌ Не пересохраняй файлы в редакторе без явного указания `Keep KOI8-R` - ❌ Не игнорируй предупреждения IDE о кодировке #### ✅ Делай - ✅ Явно указывай кодировку KOI8-R при открытии файлов - ✅ Используй `.editorconfig` (IDE будут читать автоматически) - ✅ Проверяй git diff перед коммитом, чтобы убедиться, что файлы не перекодированы - ✅ При внесении изменений убеждайся, что IDE сохраняет KOI8-R ### Технический контекст #### Фреймовая структура (HTML frameset) Сайт использует устаревший элемент `` для разделения layout: - Левая колонка: `nav.htm` (навигация) - Верхний блок: `header.htm` (логотип и заголовок) - Основная область: `main.htm` (контент) Это типично для веб-дизайна конца 90-х, но не поддерживается современными стандартами. При миграции на современный сайт потребуется переделка HTML-структуры. Тем не менее, браузеры показывают сайт корректно. #### Meta-refresh редирект Главная страница (`index.htm`) использует `meta http-equiv="refresh"` для редиректа на `index1.htm`. Это также устаревший подход. #### Внешние ресурсы В коде есть ссылки на старые внешние сервисы (счётчики, баннеры): - `counter.rambler.ru` (архивная служба рейтингов) - `mail.ru` (счётчик Mail.ru) - `ir.ru` (InterReklama, старая рекламная сеть) Эти сервисы могут быть недоступны или нестабильны. Они не влияют на функциональность сайта при корректной обработке ошибок. ### Дальнейшее развитие Проект может быть расширен в отдельных ветках: - **`legacy-1998`** — архивная версия в оригинальном виде (ветка сохранения истории) - **`main`** — современная версия с контейнеризацией (текущая ветка): - ✅ Docker контейнеризация (nginx:alpine) - ✅ docker-compose для dev и prod - ✅ Watchtower для автоматических обновлений образа - ✅ Gitea CI/CD пайплайн (автосборка при тегировании) - ✅ Support для SSL/TLS (через certbot) - ✅ Reverse-proxy через внешний nginx ## Контейнеризация (2026) Архив полностью перемещён в Docker контейнер с современной инфраструктурой: ### Что включено - **Образ**: `git.cube2.ru/erjemin/1998-cad-cadpoint:latest` (nginx:alpine) - **Содержимое образа**: - nginx (web-сервер) - Конфиг для внутреннего nginx (с поддержкой KOI8-R) - Весь архив HTML сайта (KOI8-R) - Конфиг для внешнего nginx (для reverse-proxy на хосте) ### Как запустить **Development (локально):** ```bash docker-compose up --build # Сайт доступен на http://127.0.0.1:8030 ``` **Production (на сервере):** ```bash docker-compose -f docker-compose.prod.yml up -d # Watchtower автоматически следит за обновлениями образа # Сайт проксируется через внешний nginx на хосте ``` ### Детальная документация См. [DEPLOYMENT.md](DEPLOYMENT.md) для полной инструкции по развёртыванию на продакшене. ## Контакты и лицензия Автор: *Sergei Erjemin* (это я) Контакт: `erjemin@gmail.com` Архив сохранён и перенесён в современную инфраструктуру (Docker) в 2026 году. --- **Последнее обновление:** March 28, 2026 (добавлена контейнеризация)