Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Benvenuti nel Dudes Club Italiano

Amiga Unicornundefined

Amiga Unicorn

@amigaunicorn
Dudi

7

Online

53

Users

515

Topics

6.2k

Posts
About
Posts
659
Topics
91
Shares
0
Groups
2
Followers
21
Following
26

Posts

Recent Best Controversial

  • Su Judith Butler (e sul perche' il decostruttivismo fa male).
    Amiga Unicornundefined Amiga Unicorn

    https://keinpfusch.net/su-judith-butler-e-sul-perche-il-decostruttivismo-fa-male/

    Whatever, man blog keinpfusch

  • Odifreddi e i politici MAGA
    Amiga Unicornundefined Amiga Unicorn

    Goldo

    una semplice notte dei lunghi coltelli. I groyper accusano i maga come Kirk di essere troppo moderati e dialoganti.

    Whatever, man blog keinpfusch

  • Odifreddi e i politici MAGA
    Amiga Unicornundefined Amiga Unicorn

    Roottobeetonale said in Odifreddi e i politici MAGA:

    Un professore che ho conosciuto ai tempi andati, ex-68ino. Mi diceva che da giovane non si menavano coi fasci ma si menavano con chi non era abbastanza di sinistra.
    Ha senso?

    Come diceva Nenni,

    “c’e’ sempre il puro piu’ puro che ti epura”.

    Whatever, man blog keinpfusch

  • Odifreddi e i politici MAGA
    Amiga Unicornundefined Amiga Unicorn

    Aethiss said in Odifreddi e i politici MAGA:

    Pero’ gia’ adesso i sistemi di sicurezza sono di un certo livello.

    Ma anche negli USA. Ma non esistono sistemi di sicurezza assoluti. Pensa a quando Berlusconi si becco’ una statuetta del Duomo di Milano in faccia. Poteva essere altro.

    Whatever, man blog keinpfusch

  • Odifreddi e i politici MAGA
    Amiga Unicornundefined Amiga Unicorn

    Goldo said in Odifreddi e i politici MAGA:

    , ma perchè è stato un regolamento di conti interno al “MAGA”, che senso ha sparare per seccare “uno dei tuoi”…

    Che senso aveva la notte dei lunghi coltelli?

    Whatever, man blog keinpfusch

  • Alien: Pianeta Terra.
    Amiga Unicornundefined Amiga Unicorn

    Aethiss

    Non so se andro’ a vederlo, onestamente. Nel senso che ho un pregiudizio. Gli americani tendono a spiegare tutto, quando
    fanno una serie. Ma proprio tutto. Eliminano il non detto, cioe’ il mistero, e questo toglie al film ogni aspetto di quella “magia” che trasforma il cinema in un’esperienza che vale la pena provare.

    Onestamente, sapere il nome ed il cognome degli Ingegneri, in che anno si sono laureati, e dove hanno fatto l’esame di stato,
    come funziona esattamente uno xenomorfo, se e’ ancora in garanzia, in che bidone del rusco metterlo quando lo butti via, magari anche no.

    Hai presente quando nel prequel di Dune , il figlio di Frank Herbert scrive che le Bene Gesserit preparano la stanza del parto usando il Feng Shui? Ecco. Questo e’ l’effetto.

    Whatever, man

  • Odifreddi e i politici MAGA
    Amiga Unicornundefined Amiga Unicorn

    https://keinpfusch.net/odifreddi-e-i-politici-maga/

    Whatever, man blog keinpfusch

  • Nuove emozioni.
    Amiga Unicornundefined Amiga Unicorn

    Saulo Bandone

    era troppo avvincente. Specialmente le S-Bahn girls.

    Whatever, man

  • Millennials. Sempre loro.
    Amiga Unicornundefined Amiga Unicorn

    d88364df-0485-4cc3-8f29-1de3e51fb27d-image.png

    Whatever, man

  • LMAO
    Amiga Unicornundefined Amiga Unicorn

    Questa fa i video di reazione come vocal coach.

    L’anno accusata di essere una fake e di non saper cantare davvero.

    Cosi’ ha postato un video.

    https://www.youtube.com/watch?v=Xaj-6nHvCek

    Whatever, man

  • Nuove emozioni.
    Amiga Unicornundefined Amiga Unicorn

    Gabriel

    Il pit stop in 7 secondi per cambiare le ruote lo vedo problematico, pero’.

    Whatever, man

  • Nuove emozioni.
    Amiga Unicornundefined Amiga Unicorn

    https://www.youtube.com/watch?v=smp0voLUgk8

    Whatever, man

  • Reputazione. Come cresce.
    Amiga Unicornundefined Amiga Unicorn

    Allora, forse e’ meglio spiegare bene come funziona il meccanismo che da’ accesso al gruppo “Dudi”. Quando si raggiunge una certa reputazione, allora il sistema automaticamente vi infila nel gruppo. Se si abbassa troppo, allora potreste anche venire tolti dal gruppo, e finire in Bowlers.

    Ma come cresce e come si abbassa la reputazione?

    Sotto ogni post, a destra, ci sono due tasti:

    22d10adc-e5e5-4bf8-b37e-272342b69b18-image.png

    Come vedete , c’e’una freccetta verso l’alto, e una verso il basso. Un pochino come il Like solo che c’e’ il dislike. Se pensate che quanto scritto non sia degno di un Dude, allora spingete sulla freccetta in basso (downvote). Se invece pensate che la persona parla da dude, allora spingete sulla freccetta in alto (upvote).

    Se quindi non siete ancora nei dudi, e volete entrarci, andate in “Whatever, man”, e scrivete, lanciate topici, rispondete. In questo modo la vostra reputazione crescera’. No partecipazia, no reputazia.

    In questo modo, il forum si amministra con il minimo sforzo da parte del moderatore.
    E posso fingere di essere democratico, mentre sono solo pigro.

    Moderazione

  • LOL
    Amiga Unicornundefined Amiga Unicorn

    35e690f4-1cad-4cc9-9e8d-66d2d5184e9f-image.png

    Whatever, man

  • Problema con le immagini risolto.
    Amiga Unicornundefined Amiga Unicorn

    Si trattava, in fondo, di scrivere uno script di avvio per nodebb, che arriva con un container docker che non funziona di suo. (il contrario del concetto di container docker).

    #!/bin/bash
    set -euo pipefail
    
    APP_DIR="/usr/src/app"
    cd "$APP_DIR"
    
    die(){ echo "❌ $*" >&2; exit 1; }
    
    need_tool(){
      command -v "$1" >/dev/null 2>&1 || return 0
      return 1
    }
    
    # ── Tools minimi: se mancano, prova ad installarli (apt o apk), altrimenti abort ──
    MISSING=0
    command -v redis-cli >/dev/null 2>&1 || MISSING=1
    command -v jq        >/dev/null 2>&1 || MISSING=1
    if [[ "$MISSING" -eq 1 ]]; then
      if command -v apt-get >/dev/null 2>&1; then
        apt-get update && apt-get install -y --no-install-recommends redis-tools jq curl procps net-tools && apt-get clean
      elif command -v apk >/dev/null 2>&1; then
        apk add --no-cache redis jq curl procps-net iproute2
      else
        die "redis-cli/jq mancanti e nessun package manager disponibile"
      fi
    fi
    
    # ── Leggi config SENZA default (null⇒vuoto). Se mancano host/port/db, abort ──
    CFG="$APP_DIR/config.json"
    [[ -f "$CFG" ]] || die "$CFG mancante"
    
    json_get(){ jq -r "try $1 catch \"\"" "$CFG" | sed -E 's/^(null|NULL)$//'; }
    
    DB_DRIVER=$(json_get '.database')
    [[ "$DB_DRIVER" == "redis" ]] || die "database='$DB_DRIVER' (serve 'redis')"
    
    REDIS_HOST=$(json_get '.redis.host')
    REDIS_PORT=$(json_get '.redis.port')
    REDIS_DB=$(json_get '.redis.database')
    REDIS_USER=$(json_get '.redis.username')
    REDIS_PASS=$(json_get '.redis.password')
    REDIS_PREFIX=$(json_get '.redis.prefix')
    REDIS_TLS=$(json_get '.redis.tls')
    
    [[ -n "$REDIS_HOST" && -n "$REDIS_PORT" && -n "$REDIS_DB" ]] || die "Redis host/port/database non impostati in config.json"
    
    # ── redis-cli wrapper: passa SOLO ciò che esiste; username senza password ≠ auth ──
    redis_cli(){
      local scheme="redis"; [[ "$REDIS_TLS" == "true" ]] && scheme="rediss"
      if [[ -n "$REDIS_USER" && -n "$REDIS_PASS" ]]; then
        local u_enc p_enc
        u_enc=$(jq -rn --arg s "$REDIS_USER" '$s|@uri')
        p_enc=$(jq -rn --arg s "$REDIS_PASS" '$s|@uri')
        redis-cli -u "${scheme}://${u_enc}:${p_enc}@${REDIS_HOST}:${REDIS_PORT}/${REDIS_DB}" "$@"
      elif [[ -n "$REDIS_PASS" ]]; then
        redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" -n "$REDIS_DB" -a "$REDIS_PASS" "$@"
      else
        redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" -n "$REDIS_DB" "$@"
      fi
    }
    
    echo "ℹ️ Redis: host='${REDIS_HOST}' port='${REDIS_PORT}' db='${REDIS_DB}' prefix='${REDIS_PREFIX:-}' user=$([[ -n "$REDIS_USER" ]]&&echo set||echo none) pass=$([[ -n "$REDIS_PASS" ]]&&echo set||echo none) tls=$([[ "$REDIS_TLS" == "true" ]]&&echo on||echo off)"
    
    # ── NPM: upgrade + audit PRIMA di usare npm (niente unsafe-perm) ──
    npm config set fund false progress false loglevel=warn || true
    before="$(npm -v || echo n/a)"
    npm install -g npm@latest || echo "⚠️ Upgrade npm fallito, continuo"
    after="$(npm -v || echo n/a)"; echo "ℹ️ npm: $before → $after"
    npm audit --omit=dev || true
    npm audit fix --omit=dev --force || true
    
    # ── Build check ──
    NEED_BUILD=0
    [[ -f "$APP_DIR/build/manifest.json" && -f "$APP_DIR/build/public/src/client.js" ]] || NEED_BUILD=1
    
    # ── Scopriamo la chiave plugins:active: prefix→nodebb:→none + SCAN fallback ──
    discover_plugins_key(){
      local try=()
      [[ -n "$REDIS_PREFIX" ]] && try+=("${REDIS_PREFIX}:plugins:active")
      try+=("nodebb:plugins:active" "plugins:active")
      local k t
      for k in "${try[@]}"; do
        t="$(redis_cli TYPE "$k" 2>/dev/null || true)"
        [[ "$t" == "set" || "$t" == "zset" ]] && { echo "$k"; return 0; }
      done
      local hit
      hit="$(redis_cli --raw SCAN 0 MATCH '*:plugins:active' COUNT 200 2>/dev/null | awk '/:plugins:active$/ {print; exit}')"
      [[ -n "$hit" ]] && { echo "$hit"; return 0; }
      echo ""; return 1
    }
    PLUG_KEY="$(discover_plugins_key || true)"
    [[ -n "$PLUG_KEY" ]] || echo "⚠️ Nessuna chiave plugins:active trovata; proseguo senza auto-install"
    
    # ── Leggi plugin attivi ──
    PLUGINS=()
    if [[ -n "$PLUG_KEY" ]]; then
      TYPE="$(redis_cli TYPE "$PLUG_KEY" 2>/dev/null || true)"
      case "$TYPE" in
        set)  readarray -t PLUGINS < <(redis_cli SMEMBERS "$PLUG_KEY" | tr -d '\r');;
        zset) readarray -t PLUGINS < <(redis_cli ZRANGE "$PLUG_KEY" 0 -1 | tr -d '\r');;
        *)    echo "⚠️ Tipo chiave non gestito: ${TYPE:-none}";;
      esac
    fi
    
    # ── Mapping pacchetto (placeholder emailer) ──
    plugin_pkg(){
      case "$1" in
        nodebb-plugin-emailer) echo "nodebb-plugin-emailer-local" ;;  # scegliamo il nostro emailer reale se diverso
        *) echo "$1" ;;
      esac
    }
    
    # ── Verifica, installa, attiva ──
    MISSING_PKGS=()
    TO_ACTIVATE=()
    
    for plugin in "${PLUGINS[@]}"; do
      [[ -z "$plugin" ]] && continue
      pkg="$(plugin_pkg "$plugin")"
    
      if [[ "$plugin" == "nodebb-plugin-emailer" ]]; then
        echo "❌ Placeholder emailer attivo → userò '$pkg'"
        ./nodebb deactivate "nodebb-plugin-emailer" >/dev/null 2>&1 || true
        [[ -d "$APP_DIR/node_modules/$pkg" ]] || { MISSING_PKGS+=("$pkg"); NEED_BUILD=1; }
        TO_ACTIVATE+=("$pkg")
        continue
      fi
    
      [[ -d "$APP_DIR/node_modules/$pkg" ]] || { echo "❌ Mancante: $plugin (pkg: $pkg)"; MISSING_PKGS+=("$pkg"); TO_ACTIVATE+=("$plugin"); NEED_BUILD=1; }
    done
    
    if [[ ${#MISSING_PKGS[@]} -gt 0 ]]; then
      echo "📦 npm install: ${MISSING_PKGS[*]}"
      npm install --omit=dev "${MISSING_PKGS[@]}" || echo "⚠️ Installazione plugin fallita (continuo)"
    fi
    
    if [[ ${#TO_ACTIVATE[@]} -gt 0 ]]; then
      echo "🔌 Attivo: ${TO_ACTIVATE[*]}"
      for p in "${TO_ACTIVATE[@]}"; do
        ./nodebb activate "$p" || echo "⚠️ Attivazione fallita: $p"
      done
    fi
    
    # Audit post plugin (best-effort)
    npm audit --omit=dev || true
    npm audit fix --omit=dev --force || true
    
    # ── Build se necessario ──
    if [[ "$NEED_BUILD" -eq 1 ]]; then
      echo "🔧 npm install (deps app) & ./nodebb build…"
      npm install --omit=dev || true
      ./nodebb build
    else
      echo "✅ Nessuna ricostruzione necessaria"
    fi
    
    # ── Avvio & log ──
    echo "🚀 Avvio NodeBB…"
    ./nodebb start   # daemonizza
    
    echo "📜 Tail logs…"
    mkdir -p ./logs
    : > ./logs/output.log
    [ -e ./logs/error.log ] || : > ./logs/error.log
    exec tail -n +1 -F ./logs/output.log ./logs/error.log
    
    
    Moderazione

  • Hate Bait: come si fabbrica un martire (e perché è una pessima idea)
    Amiga Unicornundefined Amiga Unicorn

    https://keinpfusch.net/hatebait-charlie-kirk/

    Whatever, man blog keinpfusch

  • I&#x27;m considering setting up a home lab and truly self-hosting my own services. Unfortunately, my budget is limited to around $100-$150. I&#x27;m wondering if the HP Elitedesk mini PC is suitable for this
    Amiga Unicornundefined Amiga Unicorn

    Si, ho provato a federare un forum. Ma alla fine, RSS rimane la via piu’ semplice ed efficace.

    Whatever, man lemmy selfhosted homelab

  • FYI
    Amiga Unicornundefined Amiga Unicorn

    somedude

    gia’ fatto da solo: guarda quanti bei 302 …

    10.0.12.122 - - [12/Sep/2025:20:28:09 +0000] “GET /post/3359 HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; BLEXBot/1.0; +https://help.seranking.com/en/blex-crawler)”

    10.0.12.122 - - [12/Sep/2025:20:28:40 +0000] “GET /user/nachtflug@glasgow.social/controversial HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:28:53 +0000] “GET /topic/9c55eba0-1b89-453d-9578-b5dd83c28c94/a-rocky-rescue-request/16?page=1 HTTP/1.1” 302 145 “-” “Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Chrome/119.0.6045.214 Safari/537.36”

    10.0.12.122 - - [12/Sep/2025:20:29:06 +0000] “GET /user/nachtflug@glasgow.social/best HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:29:16 +0000] “GET /tags/vapid.rss HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:29:17 +0000] “GET /tags/strapon.rss HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:29:30 +0000] “GET /tags/of.rss HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:29:36 +0000] “GET /tags/most.rss HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:29:45 +0000] “GET /user/der_kleine_herr_b@norden.social/controversial HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:29:46 +0000] “GET /tags/endless.rss HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    10.0.12.122 - - [12/Sep/2025:20:29:49 +0000] “GET /tags/broligarchy.rss HTTP/1.1” 302 145 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)”

    Moderazione

  • One Year Selfhosting My Own Podcast
    Amiga Unicornundefined Amiga Unicorn

    https://lemmy.world/post/35820507

    Whatever, man lemmy selfhosted homelab

  • I got hooked on browsing openalternative.co&#x27;s &quot;Most Popular&quot; list
    Amiga Unicornundefined Amiga Unicorn

    https://lemmy.world/post/35820333

    Whatever, man lemmy selfhosted homelab
  • 1 / 1
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post