πŸ’Ύ Archived View for dmntv.ru β€Ί notes β€Ί raspiagate.gmi captured on 2024-12-17 at 10:05:13. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Π‘Π΅Ρ€Π²Π΅Ρ€ Gemini Π½Π° Raspberry Pi

(памятка/инструкция, ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ пошаговоС руководство)

Raspberry Pi Zero 2W

Установка настройка ΠΈ запуск Gemini сСрвСра Agate

Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Raspberry Pi (user-name@ip-address)

ssh user@host

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² для Ρ„Π°ΠΉΠ»ΠΎΠ² сСрвСра ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²/страничСк ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° внСшниС запросы

(подразумСваСтся Ρ‡Ρ‚ΠΎ ΠΌΡ‹ находимся Π² нашСй домашнСй Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ)

mkdir gemini gemini/bin gemini/bin/.certs gemini/public

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ «индСксный» Ρ„Π°ΠΉΠ»

nano gemini/public/index.gmi

НапишСм Ρ‚ΡƒΠ΄Π° Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ‚ΠΈΠΏΠ°:

# Hello!
This is my first page in GeminiSpace

Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΈ распаковываСм ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированный Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π’Π°ΠΌ Ρ€Π°Π·Π½Ρ‹Π΅. Π‘Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ.

Agate: Simple Gemini server for static files

Agate: Pre-compiled binary

Команда uname Π²Ρ‹Π²ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ систСмС.

uname -a Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

uname -a

uname -m Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ имя Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

uname -m

Π’ ΠΌΠΎΠ΅ΠΌ случаС, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ aarch64

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ:

wget https://github.com/mbrubeck/agate/releases/download/v3.3.11/agate.aarch64-unknown-linux-gnu.gz

РаспаковываСм Π΅Π³ΠΎ

gunzip agate.aarch64-unknown-linux-gnu.gz

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ bin ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅ΠΌ Π² agate

mv agate.aarch64-unknown-linux-gnu gemini/bin/agate

Π”Π°Π΅ΠΌ ΠΏΡ€Π°Π²Π° Π½Π° Β«Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅Β» Ρ„Π°ΠΉΠ»Π°

chmod +x gemini/bin/agate

ЗапускаСм сСрвСр с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ нашСй public Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΏΠΎΡ€Ρ‚ΠΎΠΌ (1965) ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

(подставтС свои значСния)

/home/dmntv/gemini/bin/agate --content /home/dmntv/gemini/public/ --addr [::]:1965 --addr 0.0.0.0:1965 --hostname dmntv.ru --certs /home/dmntv/gemini/bin/.certs --lang ru-RU

Agate сгСнСрируСт ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ самоподписанныС сСртификаты для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ хоста ΠΈ помСстит ΠΈΡ… Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ .certs ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ самоподписанныС, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌ довСряСм.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ (Π² ΠΌΠΎΠ΅ΠΌ случаС) вся структкра выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

/home/dmntv
┗━━ ~/gemini
    ┣━ ~/gemini/bin
    ┃  ┣━ ~/gemini/bin/.certs
    ┃  ┃  ┗━ ~/gemini/bin/.certs/dmntv.ru
    ┃  ┃     ┣━ ~/gemini/bin/.certs/cert.der
    ┃  ┃     ┗━ ~/gemini/bin/.certs/key.der
    ┃  ┗━ ~/gemini/bin/agate
    ┗━ ~/gemini/public
       ┗━ ~/gemini/public/index.gmi

Для настройки автоматичСского запуска создадим Ρ„Π°ΠΉΠ» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /etc/systemd/system/

sudo nano /etc/systemd/system/agate.service

РазмСстим Ρ‚Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ иструкции

(ΠŸΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ сСртификатов ΡƒΠΊΠ°Π·Π°Π² нашСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ)

[Unit]
Description=agate
After=network.target

[Service]
User=dmntv
Type=simple
ExecStart=/home/dmntv/gemini/bin/agate \
--content /home/dmntv/gemini/public/ \
--addr [::]:1965 \
--addr 0.0.0.0:1965 \
--hostname dmntv.ru  \
--certs /home/dmntv/gemini/bin/.certs \
--lang ru-RU

[Install]
WantedBy=default.target

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ слуТбами

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу

sudo systemctl start agate

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ слуТбу

sudo systemctl stΠΎΡ€ agate

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ состояниС слуТбы

sudo systemctl status agate

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ слуТбу Π² Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ

sudo systemctl enable agate

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ послС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

sudo systemctl daemon-reload

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список всСх ΠΎΠΏΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ systemctl

systemctl --help