No description
| .ssl | ||
| src | ||
| .dockerignore | ||
| .env | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| nginx.conf | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| reqs.txt | ||
| tsconfig.json | ||
Simple MOTD Web App
Простенькое MOTD бекенд-приложение на веб-технологиях.
Предназначено для получения, передачи и сохранения MOTD (Message-of-the-Day).
Стек
Приложение и обвязка написаны на скорую руку, примерно за час. Нюансы:
- И базы, и приложение, и балансировщик записаны в одной композиции
- .env файл используется как для приложения, так и для контейнера с базой данных
- Генерация CA + пары сертификат-ключ происходят при сборке контейнера с приложением, один раз. При пересборке используются уже существующие сертификаты - в CI их можно подсунуть перед сборкой.
- Само приложение (только приложение - директория
src/) сгенерировано нейронкой - Никакого CI/CD
Чтобы этих нюансов не было - полагается трудоустройство, делать что-то полноценное за бесплатно я не собираюсь.
Стек включает в себя:
- Nginx
- PostgreSQL
- Redis
- Node.js (TypeScript)
Сборка и запуск
Требования:
- Подключение к интернету
- Незанятый порт 443
- Docker
- Выполним команды:
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
- Перейдём к разделу Использование.
Использование
Получить MOTD:
curl -k https://localhost/motd
Установить MOTD:
curl -k -X POST https://localhost/motd \
-H "Content-Type: application/json" \
-d '{"message":"Hello from MOTD app"}'
P.S.
Честно говоря, тестовые задания - это развод гоев на бесплатную рабочую силу, сомнительные конторы их очень любят.
В вашем случае я хотя бы увидел живого человека - обычно своё время на такое я не трачу.