Skip to content

Recipe

OpenConnect

1
2
3
4
sudo mkdir -p /srv/ocserv
cd /srv/ocserv
sudo mkdir etc
sudo vim compose.yaml
insert this text, replace example.com with your host name and Example, LLC with your org (and 9443 with your port):
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
services:
  ocserv:
    image: cherts/ocserv:latest
    restart: unless-stopped
    container_name: ocserv
    privileged: true
    hostname: example.com
    ports:
      - 9443:443/udp
      - 9443:443/tcp
    volumes:
      - ./etc:/etc/ocserv
    environment:
      - HC_CA_CN=Example, LLC
      - HC_CA_ORG=Example, LLC
      - HC_CA_DAYS=3650
      - HC_SRV_CN=example.com
      - HC_SRV_ORG=Example, LLC
      - HC_SRV_DAYS=365
      - HC_NO_TEST_USER=1
#      - HC_NO_CREATE_DH_PARAMS=1
#      - HC_NO_CREATE_SERVER_CERT=1
      - HC_TCP_PORT=9443
      - HC_UDP_PORT=9443
#      - HC_WORKDIR=/opt/ocserv
#      - HC_OTHER_OPTS=-d 9
start with
1
sudo docker compose up -d
create users with
1
sudo docker compose exec ocserv ocpasswd -c /etc/ocserv/ocpasswd $USERNAME

FairEmail

Исходная инструкция 4pda.

  1. нажмите кнопку или ссылку "Купить" (перебросит на сайт для оплаты — в РФ оплатить нельзя);
  2. введите URL в ответ на приглашение URL: программы ниже
  3. в программе нажмите три полоски, в самом низу "Функции PRO", нажмите три точки, пункт Response, введите получившийся хеш, OK;
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import urllib3
import hashlib

prefix = "eu.faircode.email"
url = input("URL: ")
parsed = urllib3.util.parse_url(url)
challenge = dict(tuple(x.split("=",1)) for x in parsed.query.split("&"))["challenge"]
message = prefix + challenge
digest = hashlib.sha256(message.encode()).hexdigest()

print("Response:", digest)

Вариант для копипасты в Termux в одну строку:

1
python3 -c 'import urllib3,hashlib;print("Response:",hashlib.sha256(("eu.faircode.email"+dict(tuple(x.split("=",1)) for x in urllib3.util.parse_url(input("URL: ")).query.split("&"))["challenge"]).encode()).hexdigest())'

Должно быть как-то так:

1
2
3
$ python3 -c 'import urllib3,hashlib;print("Response:",hashlib.sha256(("eu.faircode.email"+dict(tuple(x.split("=",1)) for x in urllib3.util.parse_url(input("URL: ")).query.split("&"))["challenge"]).encode()).hexdigest())'
URL: https://a.b.com?x=1&challenge=1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef&xz=aa
Response: 4796447e2bbd4facd3f5b0275de3f57c660491e93d78868eed8ffc610a1f5815

Debian 10 ⇒ 11 upgrade

TFM

Boils down to:

  1. Update the system with apt-get update && apt-get full-upgrade to the most recent state of working version.
  2. Update /etc/apt/sources.list to
    1
    2
    3
    4
    5
    deb http://deb.debian.org/debian/ bullseye main contrib non-free
    deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free
    deb http://security.debian.org/debian-security bullseye-security main
    deb-src http://security.debian.org/debian-security bullseye-security main
    deb http://ftp.debian.org/debian bullseye-backports main contrib non-free
    
  3. Upgrade the system with apt-get update && apt-get dist-upgrade && reboot to the new version.

2021-08-20 @ fabicon.ru

emmcdl & QDL

emmcdl or emmcdl

1
2
3
4
5
6
7
8
git clone https://github.com/nijel8/emmcdl.git &&
    cd emmcdl &&
    aclocal &&
    autoconf &&
    automake --add-missing &&
    ./configure &&
    make &&
    ./emmcdl

QDL

Mediatomb (hosted by ветеран.su) became gerbera

Since about Ubuntu 20.04 it's gerbera now.

Gerbera is proudly built upon MediaTomb 0.12.1 continuing that projects great legacy.