salutedev-test-web-app/README.md
2026-06-04 14:11:13 +03:00

54 lines
No EOL
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Simple MOTD Web App
Простенькое MOTD бекенд-приложение на веб-технологиях.
Предназначено для получения, передачи и сохранения MOTD (Message-of-the-Day).
## Стек
Приложение и обвязка написаны на скорую руку, примерно за час. **Нюансы**:
- И базы, и приложение, и балансировщик записаны в одной композиции
- .env файл используется как для приложения, так и для контейнера с базой данных
- Генерация CA + пары сертификат-ключ происходят при сборке контейнера с приложением, один раз. При пересборке используются уже существующие сертификаты - в CI их можно подсунуть перед сборкой.
- Само приложение (только приложение - директория `src/`) сгенерировано нейронкой
- Никакого CI/CD
Чтобы этих нюансов не было - полагается трудоустройство, делать что-то полноценное за бесплатно я не собираюсь.
Стек включает в себя:
- Nginx
- PostgreSQL
- Redis
- Node.js (TypeScript)
## Сборка и запуск
Требования:
- Подключение к интернету
- Незанятый порт 443
- Docker
1. Выполним команды:
```bash
docker run --rm -v ./.ssl:/ssl --entrypoint /bin/sh alpine/openssl -c "/ssl/gen-ca.sh && /ssl/gen-cert.sh localhost"
docker compose build
docker compose up -d
```
2. Перейдём к разделу [Использование](#использование).
## Использование
Получить MOTD:
```bash
curl -k https://localhost/motd
```
Установить MOTD:
```bash
curl -k -X POST https://localhost/motd \
-H "Content-Type: application/json" \
-d '{"message":"Hello from MOTD app"}'
```
## P.S.
Честно говоря, тестовые задания - это развод гоев на бесплатную рабочую силу, сомнительные конторы их очень любят.<br>
В вашем случае я хотя бы увидел живого человека - обычно своё время на такое я не трачу.