salutedev-test-web-app/README.md

54 lines
2.5 KiB
Markdown
Raw Normal View History

2026-06-04 14:11:13 +03:00
# 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>
В вашем случае я хотя бы увидел живого человека - обычно своё время на такое я не трачу.