# Engineer у терміналі

Цей сайт доступний за чотирма протоколами — з однієї теки файлів на одному
сервері. Якщо ви живете в терміналі, вам ніколи не доведеться відкривати
браузер, щоб його читати.

Усе, що описано нижче, вже працює на живому сайті. Для жодного з цих способів
не потрібен обліковий запис, ключ чи клієнт, який треба збирати самому.

## Кожна сторінка існує і як Markdown

Кожну сторінку опубліковано двічі: як HTML і поруч — як чистий Markdown.
Запитуйте будь-яку версію.

```sh
# Двійник, за назвою
curl -sL https://engineer.company/uk/about/index.md

# Або попросіть сервер — хай обере сам
curl -sL -H 'Accept: text/markdown' https://engineer.company/uk/about/
```

Перенаправте вивід у будь-яку програму, що відображає Markdown:

```sh
curl -sL https://engineer.company/uk/portfolio/index.md | glow -
curl -sL https://engineer.company/uk/what-it-costs/index.md | bat -l md
```

Усі мови працюють однаково — `/about/index.md`, `/da/about/index.md`.

## Капсула Gemini

Gemini — невеликий протокол, у який закладено ті самі принципи, що й у цей
сайт: текстові документи поверх TLS, без скриптів, без cookie, без жодних
засобів стеження за вами. Кожна сторінка цього сайту також є у форматі
[gemtext](/uk/glossary/#gemtext).

```text
gemini://engineer.company/
```

Її читає будь-який клієнт Gemini — **Amfora**, **Lagrange** чи **Bombadillo** у
терміналі, **Castor** або **Kristall** у вікні. На Mac чи машині з Debian:

```sh
brew install amfora && amfora gemini://engineer.company/
```

## Нора Gopher

Gopher — протокол меню 1991 року (простий TCP, без шифрування, без скриптів),
і сайт там — це набір меню, по одному на теку.

```text
gopher://engineer.company/
```

**Lynx** підтримує його одразу, як і **Bombadillo** та **gopher-cli**. Або
запитайте селектор вручну — у цьому одному рядку весь протокол:

```sh
printf '/uk/contact\r\n' | nc engineer.company 70
```

## Onion-сервіс

Той самий сайт через [Tor](/uk/glossary/#tor), для читача, чия мережа не
повинна знати, що він читає:

```text
http://engineer2ezpeji52ipphljcflzyhetvy5r6tnqubtq45nzlxxv6rsqd.onion/
```

Тут навмисно звичайний `http://`: адреса [onion](/uk/glossary/#onion) — це
власний відкритий ключ сервісу, тож канал автентифіковано й зашифровано ще до
першого байта HTTP, а сертифікат лише повторно засвідчив би ім'я, яке вже
засвідчує сама адреса. Якщо Tor працює локально, `curl` дістанеться до нього
напряму:

```sh
ONION=engineer2ezpeji52ipphljcflzyhetvy5r6tnqubtq45nzlxxv6rsqd.onion
curl -sL --socks5-hostname 127.0.0.1:9050 "http://$ONION/uk/index.md"
```

## Читати роботу як дані

Портфоліо публікується у трьох форматах, і кожен містить повний текст кожного
запису, а не анонс:

```sh
curl -s https://engineer.company/uk/feed.json | jq -r '.items[] | .title'
curl -s https://engineer.company/uk/index.xml     # RSS
curl -s https://engineer.company/uk/atom.xml      # Atom
```

А ще сайт тримає карту самого себе для програм, які читають, а не сканують:

```sh
curl -s https://engineer.company/llms.txt
curl -s https://engineer.company/humans.txt
curl -s https://engineer.company/.well-known/security.txt
```

## Вихідний код через SSH

Вихідний код сайту зберігається на нашому git-сервері, а git працює через SSH:

```sh
ssh git.engineer.company
```

Ви потрапите до списку репозиторіїв, які ми публікуємо. Вебверсія того самого —
на [git.engineer.company](https://git.engineer.company/).

## Навіщо все це

Одне розгортання записує одну теку, а чотири входи читають її, тож вони не
можуть розійтися між собою, і жоден не є окремо підтримуваною копією сайту.
Сторінка, яка добре читається як gemtext, має справжню структуру, а не
намальовану зверху, — і саме завдяки цьому її добре читає зчитувач екрана і
вона правильно друкується на папері. [Сторінка подяк](/uk/credits/) називає
демонів, які обслуговують кожен вхід.

Ми будуємо речі, які добре читаються без браузера, бо зазвичай це ознака того,
що їх збудовано як слід, —
[замовте нам таке саме](/uk/contact/) *(пайпи, коди виходу і все таке)*.

<https://ditte.engineer.company/uk/cli/>
