Compare commits

...

37 Commits

Author SHA1 Message Date
370f54e777 Update tor-website.md 2025-06-27 13:16:20 +02:00
b4f5bae528 Update i2p-website.md 2025-06-27 13:15:46 +02:00
efdcf3f7e9 Update dnssec-coredns.md 2025-06-26 14:27:24 +02:00
5b3c07daf2 Update i2p-website.md 2025-06-26 14:26:31 +02:00
e9058cf463 Update tor-website.md 2025-06-25 14:34:27 +02:00
89872c6db8 Update i2p-website.md 2025-06-25 14:32:02 +02:00
62d3c4c8f9 Update i2p-website.md 2025-06-25 14:31:08 +02:00
5a560e49f1 Update tor-website.md 2025-06-25 14:30:49 +02:00
75286baade Create i2p-website.md 2025-06-25 14:27:46 +02:00
5dc75e981e Create tor-website.md 2025-06-25 14:09:57 +02:00
db099bde71 Update dnssec-coredns.md 2025-06-25 13:41:25 +02:00
4c18587000 Update dnssec-coredns.md 2025-06-25 13:41:17 +02:00
e12e35070c Update dnssec-coredns.md 2025-06-25 13:41:08 +02:00
f93bd04659 Create dnssec-coredns.md 2025-06-25 13:40:54 +02:00
2839b56ed4 Update config.toml 2025-06-23 21:55:30 +02:00
8055a8e019 Update config.toml 2025-06-23 10:16:28 +02:00
afbbb240ef Update rhel-setup.md 2025-06-21 18:50:46 +02:00
01cb4bba16 Update cephfs.md 2025-05-30 15:50:54 +02:00
843a9df5ac Update cephfs.md 2025-05-30 15:50:23 +02:00
30562fd47a Create cephfs.md 2025-05-30 15:46:47 +02:00
679383ab46 Update pve-update.md 2025-03-20 15:20:28 +01:00
c3fd5815a5 update action 2025-02-27 23:21:10 +01:00
8cbbeedd2b Create rhel-setup.md 2025-02-27 23:14:00 +01:00
a2ad64266a Update config.toml 2025-02-20 02:18:36 +01:00
1917099f70 fix proto 2025-02-19 19:43:15 +01:00
69fe73f4e2 uhh 2025-02-19 19:42:01 +01:00
044e95c4f4 v4? idk 2025-02-19 19:38:04 +01:00
1a813268c0 Update config.toml 2025-02-19 19:36:05 +01:00
566646b9e7 update version of upload-pages-artifact 2025-02-19 19:35:37 +01:00
ffae9f59e4 Update pgp-commands.md 2025-01-19 15:27:09 +01:00
14ab9aaca8 Update autohotkey.md 2025-01-14 11:41:58 +01:00
a0779bf03b Create autohotkey.md 2025-01-14 11:37:58 +01:00
dcef7fcb06 Update pgp-commands.md 2025-01-12 22:11:39 +01:00
7308b88594 Create swap-create.md 2025-01-12 22:10:47 +01:00
976135d17e Create pgp-commands.md 2025-01-12 22:01:41 +01:00
52a2785251 Add files via upload 2025-01-12 15:56:33 +01:00
ebdd2bbed7 Delete static/fruworg.jpg 2025-01-12 15:56:23 +01:00
12 changed files with 417 additions and 13 deletions

View File

@ -1,10 +1,11 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages # Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages & Neocities name: Deploy Hugo site to Pages
on: on:
# Runs on pushes targeting the default branch # Runs on pushes targeting the default branch
push: push:
branches: ["main"] branches:
- main
# Allows you to run this workflow manually from the Actions tab # Allows you to run this workflow manually from the Actions tab
workflow_dispatch: workflow_dispatch:
@ -31,7 +32,7 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
HUGO_VERSION: 0.136.5 HUGO_VERSION: 0.141.0
steps: steps:
- name: Install Hugo CLI - name: Install Hugo CLI
run: | run: |
@ -40,28 +41,31 @@ jobs:
- name: Install Dart Sass - name: Install Dart Sass
run: sudo snap install dart-sass run: sudo snap install dart-sass
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
submodules: recursive submodules: recursive
fetch-depth: 0
- name: Setup Pages - name: Setup Pages
id: pages id: pages
uses: actions/configure-pages@v3 uses: actions/configure-pages@v5
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Build with Hugo - name: Build with Hugo
env: env:
# For maximum backward compatibility with Hugo modules HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
HUGO_ENVIRONMENT: production HUGO_ENVIRONMENT: production
HUGO_ENV: production TZ: America/Los_Angeles
run: | run: |
hugo \ hugo \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/" --baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Change color - name: Change color
run: sed -i 's/peachpuff/rebeccapurple/g' public/css/main.*.css run: sed -i 's/peachpuff/rebeccapurple/g' public/css/main.*.css
- name: Change URI - name: Change URI
run: find public -type f -exec sed -i 's/\/\/fruw.org/\/\/fruworg.github.io/g' {} + run: find public -type f -exec sed -i 's/\/\/fruw.org/\/\/fruworg.github.io/g' {} +
- name: Upload artifact - name: Upload artifact
uses: actions/upload-pages-artifact@v2 uses: actions/upload-pages-artifact@v3
with: with:
path: ./public path: ./public
@ -75,7 +79,7 @@ jobs:
steps: steps:
- name: Deploy to GitHub Pages - name: Deploy to GitHub Pages
id: deployment id: deployment
uses: actions/deploy-pages@v2 uses: actions/deploy-pages@v4
deploy-neocities: deploy-neocities:
environment: environment:
@ -84,7 +88,7 @@ jobs:
needs: build needs: build
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/download-artifact@v3 - uses: actions/download-artifact@v4
with: with:
path: . path: .
- name: Create directory - name: Create directory

View File

@ -8,7 +8,7 @@ theme = "themu"
pygmentsstyle = "fruity" pygmentsstyle = "fruity"
pygmentscodefences = true pygmentscodefences = true
pygmentscodefencesguesssyntax = true pygmentscodefencesguesssyntax = true
paginate = 4 pagination.pagerSize = 4
[params] [params]
description = "всем привет!" description = "всем привет!"
@ -67,6 +67,16 @@ url = "/index.xml"
weight = 3 weight = 3
[[menu.main]] [[menu.main]]
name = "webring" name = "dn42"
url = "/webring.html" url = "https://f.dn42"
weight = 4 weight = 4
[[menu.main]]
name = "i2p"
url = "http://f.i2p"
weight = 5
[[menu.main]]
name = "tor"
url = "http://fruworgtuaajxcxdcygjybaeon7oid4ibkaugotfavucjs4i7zbrrnad.onion"
weight = 6

View File

@ -0,0 +1,46 @@
---
title: Полезные бинды клавиш в Windows
description: AutoHotkey v2
date: 2025-01-14T11:36:00+01:00
tags: [windows]
---
## Вступление
Для бинда клавиш я использую [AutoHotkey](https://www.autohotkey.com/download/ahk-v2.exe). Для автозапуска нужно перенести `.ahk` файлы в `shell:startup`.
## CapLang.ahk
Смена раскладки по нажатию на `CapsLock`. Сам `CapsLock` переключается через `Shift+CapsLock`.
```python
SendMode("Input")
SetWorkingDir A_ScriptDir
+CapsLock::SetCapsLockState !GetKeyState("CapsLock", "T")
CapsLock::Send "{Alt Down}{Shift Down}{Shift Up}{Alt Up}"
```
## Kitty.ahk
Запуск Kitty по нажатию на кнопку `Copilot`.
```python
SendMode("Input")
SetWorkingDir A_ScriptDir
+#f23:: Run "C:\Program Files\Kitty\kitty.exe -load <your-profile-name>"
```
## WSL.ahk
Запуск WSL по нажатию на `Ctrl+Alt+T`
```python
SendMode("Input")
SetWorkingDir A_ScriptDir
<^<!t::Run 'powershell.exe -noexit -command "cd <wsl-home-dir>; wsl"'
```
## PrintScreen.ahk
Скриншот нажатием на правый альт.
```python
SendMode("Input")
SetWorkingDir A_ScriptDir
RAlt::PrintScreen
```

68
content/posts/cephfs.md Normal file
View File

@ -0,0 +1,68 @@
---
title: Создание CephFS
description: Конфигурация и автомонтирование
date: 2025-05-30T15:35:00+02:00
tags: [linux, ceph]
---
## Создание FS / Сервер
### Создание пула данных и меты
```bash
ceph osd pool create <fs-name>_data
ceph osd pool create <fs-name>_meta
ceph osd pool set <fs-name>_data bulk true
```
### Создание FS
```bash
ceph fs new <fs-name> <fs-name>_meta <fs-name>_data
```
### Создание пользователя
`r` - чтение\
`w` - запсись\
`s` - снапшоты\
`p` - аттрибуты
```bash
ceph fs authorize <fs-name> client.<user> / rwsp
```
## Подключение FS / Клиент
### Установка необходимых пакетов
```shell
apt install ceph-common attr
```
### Создание директории для монтирования FS
```bash
mkdir /mnt/cephfs-<fs-name>
```
### Конфиг файлы
Файл `/etc/ceph/ceph.conf` необходимо скопировать с сервера на клиент.\
В файл `/etc/ceph/ceph.client.<user>.keyring` необходимо вставить вывод команды создания клиента.\
В файл `/etc/fstab` необходимо вставить следующее:
```python
<ceph-cluster.doma.in>:6789:/ /mnt/cephfs-<fs-name> ceph name=<user>,fs=<fs-name>,noatime,_netdev
```
### Монтирование
```shell
mount -a
```
### Указание размера директории
```shell
setfattr -n ceph.quota.max_bytes -v <size-in-gb>G /mnt/cephfs-<fs-name>
```

View File

@ -0,0 +1,36 @@
---
title: Конфигурация DNSSEC
description: CoreDNS
date: 2025-06-25T13:36:00+02:00
tags: [linux, coredns]
---
## Генерация ключа
```bash
dnssec-keygen -a ECDSAP256SHA256 <doma.in>
```
## Конфигурация CoreDNS
В `Corefile` доменной зоны необходимо вставить следующее:
```python
dnssec {
key file /etc/coredns/dnssec/<filename-without-extension>
}
```
И перезапустить `CoreDNS` командой:
```shell
systemctl restart coredns
```
## DS-запись
Далее необходимо добавить `DS-запись` в консоль регистратора.\
Запись можно получить выполнив следующую команду:
```bash
dnssec-dsfromkey <filename-without-extension>
```

View File

@ -0,0 +1,71 @@
---
title: Поднятие сайта в i2p
description: Caddy + i2pd
date: 2025-06-25T14:10:00+02:00
tags: [linux, i2p, caddy]
---
## Установка i2pd
```shell
apt -y install -y apt-transport-https
wget -qO - https://repo.i2pd.xyz/.help/add_repo | bash -s -
apt update
apt -y install i2pd
```
## Конфигурация i2pd
В `/etc/i2pd/tunnels.conf.d/website.conf` необходимо добавить следующее:
```python
[website]
type = http
host = 127.0.0.1
port = 80
keys = website.dat
```
И перезагрузите i2pd:
```shell
systemctl restart i2pd
```
## Регистрация адреса
В `reg.i2p` необходимо проверить незанятость желаемого `fqdn`.\
Если `fqdn` занят, но не используется, то его тоже можно занять.\
Для регистрации необходимо сгенерировать подпись:
```shell
git clone --recursive https://github.com/purplei2p/i2pd-tools
cd i2pd-tools
./dependencies.sh
make
```
```shell
./regaddr /var/lib/i2pd/website.dat <domain>.i2p
```
Полученный вывод необходимо вписать в страницу желаемого домена на `reg.i2p`.
## Конфигурация Caddy
Полный `b32` домен можно посмотреть командой:
```shell
ls /var/lib/i2pd/destinations
```
В `Caddyfile` необходимо добавить следующее:
```python
http://<domain>.i2p {
respond "i2p"
}
http://<b32-domain-before-dots>.b32.i2p {
redir http://<domain>.i2p{uri}
}
```

View File

@ -0,0 +1,28 @@
---
title: Памятка по PGP/GPG
description: gnupg - export, import and renew
date: 2025-01-12T22:00:00+01:00
tags: [linux, pgp]
---
## Экспорт
```bash
gpg -a --export-secret-keys > private.asc
gpg --export-ownertrust > trust.txt
```
## Импорт
```bash
gpg --import private.asc
gpg --import public.asc
gpg --import-ownertrust trust.txt
```
## Продление
```bash
gpg --list-keys
gpg --quick-set-expire <fingerprint> 1y '*'
gpg --export <your@ema.il> | curl -T - https://keys.openpgp.org
```

View File

@ -38,3 +38,15 @@ init 6
```shell ```shell
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/misc/post-pve-install.sh)" bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/misc/post-pve-install.sh)"
``` ```
## Ограничение потребление RAM zfs'ом
В `/etc/modprobe.d/zfs.conf` добавить следующую строку (2GB на 1TB):
```python
options zfs zfs_arc_max=4294967296
```
Применение и перезагрузка
```shell
update-initramfs -u -k all
init 6
```

View File

@ -0,0 +1,35 @@
---
title: Активация и автоматические обновления в RHEL 9
description: Небольшая памятка
date: 2025-02-27T23:10:00+01:00
tags: [linux, rhel]
---
## Активация
```shell
subscription-manager register --auto-attach
insights-client --register
```
## Автоматическая установка обновлений
```shell
yum -y install dnf-automatic
systemctl enable --now dnf-automatic-install.timer
```
## Установка расширенного репозитория
```shell
subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
```
## Отключение дампов ядра
```shell
systemctl disable --now kdump
grubby --update-kernel=ALL --remove-args="crashkernel"
init 6
```

View File

@ -0,0 +1,31 @@
---
title: Создание SWAP-файла
description: Файл подкачки в GNU/Linux
date: 2025-01-12T22:10:00+01:00
tags: [linux]
---
## Создания
Размер файла подкачки
RAM `<= 2GB`, SWAP `x2`\
RAM `2GB - 8GB`, SWAP `x1`\
RAM `>= 8GB`, SWAP `>= 4GB`
```shell
fallocate -l <size-in-gb>G /swap
chmod 600 /swap
mkswap /swap
swapon /swap
```
## Автомонтирование
В конец `/etc/fstab` необходимо добавить следующую строку
```python
/swap none swap sw 0 0
```
И проверим корректность записи
```shell
mount -a
```

View File

@ -0,0 +1,63 @@
---
title: Поднятие сайта в TOR
description: Caddy + torrc
date: 2025-06-25T14:02:00+02:00
tags: [linux, tor, caddy]
---
## Генерация vanity адреса
```bash
docker run -it nwtgck/mkp224o
mkp224o <domain-start-with> -s
```
Формула для вычисления ожидаемого времени генерации:
```python
32^<number-of-characters>/<calc/sec> = <eta-in-seconds>
```
## Установка и конфигурация TOR
Установка TOR:
```shell
apt -y install tor
```
Следующие строки необходимо добавить в `/etc/tor/torrc`:
```python
HiddenServiceDir /var/lib/tor/website
HiddenServicePort 80 127.0.0.1:80
```
Файлы, сгенерированные `mkp224o`, необходимо добавить в директорию `/var/lib/tor/website`:
```shell
mkdir /var/lib/tor/website
mv <domain>.onion/* /var/lib/tor/website
chown -R debian-tor: /var/lib/tor/website
chmod -R 700 /var/lib/tor/website
```
## Конфигурация Caddy
В `Caddyfile` необходимо добавить следующее:
```python
<cleanet-doma.in> {
header Onion-Location http://<domain>.onion{uri}
respond "cleanet"
}
http://<domain>.onion {
respond "onion"
}
```
## Перезапуск сервисов
```shell
systemctl restart tor
systemctl restart caddy
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 764 KiB