Добавил докер и касторизацию через env

This commit is contained in:
Ilia Miheev
2026-06-20 21:53:03 +03:00
parent 709eaacadb
commit c9347b8d20
16 changed files with 243 additions and 30 deletions
+49 -9
View File
@@ -2,7 +2,7 @@
Вводишь текст и генерируешь. Всё просто.
Проект переписан на **Vue 3 + Vite**.
Проект на **Vue 3 + Vite**. Подходит для деплоя на поддомен (например `qr.example.com`) с кастомизацией брендинга.
### Запуск локально
@@ -11,26 +11,66 @@ npm install
npm run dev
```
Приложение откроется по адресу `http://localhost:5173/iQR/`.
Приложение откроется по адресу `http://localhost:5173/`.
### Сборка для GitHub Pages
Файл `.env` **не обязателен** — без него работают значения по умолчанию. Нужен только если хотите кастомизировать интерфейс при локальной разработке (`npm run dev` / `npm run build`).
### Настройка через `.env` (только локально)
Скопируйте `.env.example` в `.env` и измените значения:
| Переменная | Описание | По умолчанию |
|---|---|---|
| `VITE_APP_TITLE` | Заголовок | `Генератор QR-кодов` |
| `VITE_BANNER_BRAND` | Бренд в плашке | `iQR` |
| `VITE_BANNER_SLOGAN` | Слоган в плашке | `— qr-код без излишеств` |
| `VITE_BANNER_URL` | Ссылка плашки | репозиторий iQR |
| `VITE_ACCENT_COLOR` | Акцентный цвет | `#ff4500` |
После изменения `.env` перезапустите `npm run dev`.
### Docker
Для Docker **`.env` не нужен** — настройки передаются переменными окружения в `docker-compose.yml`.
```bash
docker compose up --build
```
Сайт будет на `http://localhost:8080`.
```yaml
environment:
APP_TITLE: "QR на моём сайте"
BANNER_BRAND: "MySite"
BANNER_SLOGAN: "— быстрые qr-коды"
BANNER_URL: "https://example.com"
ACCENT_COLOR: "#7c3aed"
```
При старте контейнера генерируется `config.json`, поэтому пересборка образа для смены текстов не нужна.
### Сборка
```bash
npm run build
```
Содержимое папки `dist/` нужно задеплоить на GitHub Pages (корень сайта — `dist`, base path уже настроен как `/iQR/`).
Результат в папке `dist/`.
### Структура
```
src/
App.vue — главный компонент
App.vue
config/ — загрузка настроек
composables/
useTheme.js — тёмная/светлая тема
useQrCode.js — генерация, скачивание, масштаб
assets/style.css — стили
public/img/ — иконки, курсоры, favicon
useTheme.js
useQrCode.js
useAppConfig.js
assets/style.css
public/img/
docker/ — nginx и entrypoint
```
<div style="text-align: center">