Moonshine

tech

Alapvetően ez alapján a leírás alapján csináltam: https://github.com/felx/mastodon-documentation/blob/master/Running-Mastodon/Docker-Guide.md

OS: Ubuntu 22.04.2 LTS

Szükséges csomagok telepítése

OS:

apt install docker.io build-essential nginx

install docker compose

mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
export DOCKER_BUILDKIT=1

Mastodon telepítése

git clone https://github.com/tootsuite/mastodon

cd mastodon
cp .env.production.sample .env.production
docker compose build
sudo chown -R 991:991 public
docker compose run --rm web rake mastodon:setup
docker compose down
 

A mastodon:setup lépés végén kiírja a konzolra a kulcs-érték párokat, azt ki kell másolni és betenni az .env.productions fájlba.

Az .env.production fájl tartalma ilyesmi lesz:

LOCAL_DOMAIN=mastodon.example.com
SINGLE_USER_MODE=false
SECRET_KEY_BASE=ljkljkljlakjdlkjaaks
VAPID_PRIVATE_KEY=ihlhlhlkjhljk=
VAPID_PUBLIC_KEY=kjhkhjhkjhkjhkjhkjhkjhkjhkjhkj=
DB_HOST=db
DB_PORT=5432
DB_NAME=postgres
DB_USER=postgres
DB_PASS=
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
SMTP_SERVER=smtp.example.com
SMTP_PORT=587
SMTP_LOGIN=smtptuser@smtp.example.com
SMTP_PASSWORD=MySmTpP4ssw0rd
SMTP_AUTH_METHOD=plain
SMTP_OPENSSL_VERIFY_MODE=none
SMTP_ENABLE_STARTTLS=auto
SMTP_FROM_ADDRESS=Mastodon <notifications@mastodon.example.com>		

Mastodon instance indítása

docker compose up -d

Reverse proxy config

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
  listen 80;
  listen [::]:80;
  server_name mastodon.example.com;
  root /home/ubuntu/mastodon/public;
  # Useful for Let's Encrypt
  location /.well-known/acme-challenge/ { allow all; }
  location / { return 301 https://$host$request_uri; }
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name mastodon.example.com;

  #ssl_protocols TLSv1.2;
  #ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
  #ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_prefer_server_ciphers off;

  ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";


  ssl_certificate     /etc/letsencrypt/live/mastodon.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/mastodon.example.com/privkey.pem;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

  keepalive_timeout    70;
  sendfile             on;
  client_max_body_size 80m;

  root /home/ubuntu/live/public;

  gzip on;
  gzip_disable "msie6";
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

  add_header Strict-Transport-Security "max-age=31536000";

  location / {
    try_files $uri @proxy;
  }

  location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
    add_header Cache-Control "public, max-age=31536000, immutable";
    try_files $uri @proxy;
  }
  
  location /sw.js {
    add_header Cache-Control "public, max-age=0";
    try_files $uri @proxy;
  }

  location @proxy {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Proxy "";
    proxy_pass_header Server;

    proxy_pass http://127.0.0.1:3000;
    proxy_buffering off;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    tcp_nodelay on;
  }

  location /api/v1/streaming {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Proxy "";

    proxy_pass http://127.0.0.1:4000;
    proxy_buffering off;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    tcp_nodelay on;
  }

  error_page 500 501 502 503 504 /500.html;
}

#tech #mastodon

Azon gondolkodom, hogy egy sima személyes certificate, amit minden polgár alanyi jogon kapna, a személyi igazolványhoz megoldaná ezt a problémát, simán csak implementálni kellene a certificate alapú authentikációt, a website meg csekkolja a digitális személyiben a születési dátumot.

Persze ezesetben az anonimitás problémáját kell megoldani, de inkább erre kéne az erőforrásokat fordítani, mint a jelenlegi sárban tapicskolásra.

#tech

Lassan kiderül, hogy minden kínai elektronikai eszköz és szoftver egy trójai faló.

#tech

Az Apple gépeket eddig magyar kiosztású billentyűzettel használtam, de mindig is frusztráló volt programozáskor a gyakran használt jelek elérése. A billentyűzetparancsok sem ott voltak ahová az angolszász programozók megálmodták őket, és egy csomó szexi mechanikus billentyűzet sem elérhető magyar kiosztással. Aztán ott volt az előző Macbook Pro-m, aminek angol kiosztású billentyűzete volt (mert használtan vettem, így nem tudtam választani :) a Mac minihez és az iPadhez pedig magyar. Ezek közötti mozgás baromira zavart, össze-vissza klimpíroztam.

Valamikor tavaly ősszel ezért úgy döntöttem, hogy elhagyom a magyar kiosztást és fixen angolra váltok, vettem egy Logitech mechanikus billentyűzetet a minihez és hajrá...

Mondanom sem kell, hogy nem egészen pontosan mértem fel, hogy valójában mekkora részét teszi ki a munkámnak az, hogy emailezni kell, dokumentációt kell írni, ticketekben, chatben sem túl elegáns ékezetek nélkül írni (mert ugye az kényelmesebb lenne mint váltogatni a billentyűzet kiosztások között). Orbitális szívás volt.

Még régről emlékeztem egy blogbejegyzésre, hogy ezt már valaki megoldotta, és lőn, Lénárd Gábor volt az, szerencsére még elérhető a blogja.

Ez egy nagyon klassz kiosztás, mégsem esett a kezemre valamiért, ezért kicsit továbbfejlesztettem, hogy ne kelljen a Caps Lock-kal váltani, hanem gyakorlatilag váltás nélkül tudjak ékezeteket használni ha kell.

Íme a british-hu kiosztás: Letöltés

Ez egy Ukulele bundle, mountolod, elindítod az installert és utána rebootolni kell sajnos, hogy észrevegye az OS.

A kiosztás alapvetően UK International (qwerty), a magyar ékezetes karaktereket az Option billentyűvel együtt lehet előcsalni, így nem kell váltogatni a kiosztások között. Option+; = é Option+'=á stb. Működik a caps-lock, shift-tel nagybetűs lesz, stb. Az eredeti UK kiosztáson csak a 0 kedvéért módosítottam, mert az sokkal jobban kézreáll a magyar helyén az 1-es előtt. Itt az Option az eredeti angol kiosztáson itt lévő § jelet hozza elő.

#macos #tech

Egy hete jött meg a jószág (pedig jóval későbbre prognosztizáltam a 6-8 hetes szállítási határidő alapján). Kicsit szokatlan a Mac mini után, hogy ez hajlamos szundikálni ha elemről megy, de legalább rászoktat az egyébként is hasznos tmux használatra :)

Érezhetően gyorsabb mint a mini, pattanak az appok egy kattra. Az akksi simán kibír egy teljes munkanapot, töltőt nem nagyon kell hordozni.

Megpróbálom tavasztól rendszeressé tenni, hogy nem egész nap itthon ülök, hanem nomádkodni kicsit, bemenni 1-2 napot irodába, vagy B-hez. Ez lesz a legnehezebb.

14” kicsi, de legalább belefér a táskába, könnyű. Az iPad-del tudok két monitors setupot csinálni, az már úgy egész használható, plusz szoktatom magam a full screen appokhoz meg próbálgatom a stage managert.

Ha már új gép akkor az appok között is meglengettem a kaszát és visszatértem a Bear-hez a jegyzeteimmel, a Craft pro előfizetést kukáztam (amúgy is benne van Setapp-ban, ha kellene).

Craft nem rossz, de még mindig nincs benne tagelés, a code highlighter egyre szarabb, számomra értelmetlen dolgokat fejlesztenek bele, mint AI asszisztens, a spacek között még mindig nem lehet foldereket mozgatni, alfreddel nem kereshető, belső kereső még mindig zűrzavaros... az adataim nem nálam vannak. Szóval ez így egyben már sok apróság ahhoz, hogy évi 14k-t kiadjak érte. Bear legalább helyben tartja az adataimat, iclouddal synccel. Majd a nvUltra lesz az igazi, ha egyszer elkészül.

#tech