No description
Find a file
2026-06-04 14:11:13 +03:00
.ssl initial commit 2026-06-04 14:11:13 +03:00
src initial commit 2026-06-04 14:11:13 +03:00
.dockerignore initial commit 2026-06-04 14:11:13 +03:00
.env initial commit 2026-06-04 14:11:13 +03:00
.gitignore initial commit 2026-06-04 14:11:13 +03:00
docker-compose.yml initial commit 2026-06-04 14:11:13 +03:00
Dockerfile initial commit 2026-06-04 14:11:13 +03:00
nginx.conf initial commit 2026-06-04 14:11:13 +03:00
package.json initial commit 2026-06-04 14:11:13 +03:00
pnpm-lock.yaml initial commit 2026-06-04 14:11:13 +03:00
README.md initial commit 2026-06-04 14:11:13 +03:00
reqs.txt initial commit 2026-06-04 14:11:13 +03:00
tsconfig.json initial commit 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. Выполним команды:
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
  1. Перейдём к разделу Использование.

Использование

Получить 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.

Честно говоря, тестовые задания - это развод гоев на бесплатную рабочую силу, сомнительные конторы их очень любят.
В вашем случае я хотя бы увидел живого человека - обычно своё время на такое я не трачу.