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