54 lines
No EOL
2.5 KiB
Markdown
54 lines
No EOL
2.5 KiB
Markdown
# 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>
|
||
В вашем случае я хотя бы увидел живого человека - обычно своё время на такое я не трачу. |