бирка

Длинная ссылка → короткая бирка с QR-кодом

Вставьте адрес — получите короткую ссылку, QR-код для печати и статистику переходов, которая обновляется, пока вы на неё смотрите.

/r/

Топ ссылок

Больше всего переходов за всё время.

  1. 1/r/tailwindtailwindcss.com/docs3клика
  2. 2/r/redisredis.io/docs/latest/3клика
  3. 3/r/postgreswww.postgresql.org/docs/current/3клика
  4. 4/r/nextjsnextjs.org/docs3клика

Клики прямо сейчас

подключаюсь…

Откройте любую короткую ссылку в соседней вкладке — клик появится здесь сразу.

  • /r/postgresБоты и скриптыС этого сайта
  • /r/redisБоты и скриптыС этого сайта
  • /r/nextjsБоты и скриптыС этого сайта
  • /r/tailwindБоты и скриптыС этого сайта
  • /r/postgresКомпьютерНапрямую
  • /r/redisКомпьютерНапрямую
  • /r/tailwindКомпьютерНапрямую
  • /r/nextjsКомпьютерНапрямую
  • /r/postgresКомпьютерНапрямую
  • /r/tailwindКомпьютерНапрямую
  • /r/nextjsКомпьютерНапрямую
  • /r/redisКомпьютерНапрямую

Ничего не настраивали руками

Что сервер сделал сам

Postgres

При первом пуше сервер создал отдельную базу и пользователя для этого проекта, а приложение само завело в ней таблицы.

база birka-nextjs-75b851d3links: 4 строкиlink_daily: 4 строкиlink_sources: 16 строк

Redis

Сервер выдал пользователя Redis, которому разрешены только ключи и каналы с префиксом проекта. SCAN и KEYS запрещены, поэтому приложение само ведёт реестр своих ключей.

префикс birka-nextjs-75b851d3:6 ключейкэш адресов: 4реестр ключей: 1лента кликов: 1

S3

Сервер создал бакет и ключ доступа только к нему. Здесь лежат PNG с QR-кодами; браузер получает их через приложение, а не напрямую из хранилища.

бакет birka-nextjs-75b851d35 файлов16.3 КБ

Переменные

Адреса и пароли сервер передал через переменные окружения — в коде и в Git их нет. Здесь только имена, значения никогда не показываются.

PORTDATABASE_URLREDIS_URLS3_ENDPOINTS3_REGIONS3_BUCKETS3_ACCESS_KEY_IDS3_SECRET_ACCESS_KEY

Секреты

Удаление ссылок через API выключено. Чтобы включить: добавьте секрет ADMIN_TOKEN в настройки CI репозитория, впишите в service.yaml строку secrets: [ADMIN_TOKEN] и сделайте пуш.

ADMIN_TOKEN

Контейнер

Каждый выпуск стартует рядом со старым, и посетители переключаются только после проверки /healthz. Имя показывает, какой экземпляр ответил на этот запрос.

9bb4879a18ffработает 48 мин