Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)MO
Posts
141
Comments
2,297
Joined
2 yr. ago

  • You run a proxy on your server (the easiest is "nginx proxy manager" that has a nice web UI), then open your router to port 80 and 443 to nginx proxy manager (NOT the web UI configuration port!)

    Then you instruct the proxy to route the traffic according to the URL.

    Someone coming to 10.172.172.172 with no URL? Drop the connection.

    Someone going to if.example.com? Forward to 192.168:8080 and so on

  • April's fools!

    Right? Right?....

    Wait, so for example, this company had to pay $230 million in fines. Suppose that they did a $20 million "donation" to the president (which, being a crypto exchange, could be done in untraceable Monero). Then they get pardoned even if they aren't incorporated in the States and they claimed to not operate at all in the USA. When is the last time that you heard Trump caring this much about foreign companies who pay $0 in American taxes? Usually he is like "fuck them fuck that and slap additional tariffs on them"

    Like that Nikola guy who sent Trump a $2 million "donation" and then by pure coincidence and sheer luck got pardoned.

  • Revolut business is the same. Somehow you must have chrome on mobile if you want to send a bank transfer from desktop. (It opens a qr code that when scanned, only works with Google Chrome and not any other chromium browser)

  • Donald Trump [...] threatened to levy tariffs on Moscow

    again tariffs? he really thinks that they solve everything, huh? Russia don't care about sanctions, that negatively affects russian citizens, would they care about tariffs, that's a tax 100% paid by american citizens??

  • questo il mio docker-compose.yml:

     
        
    networks:
       cloudflared:
         external: true
       postgres:
         external: true
    
     services:
       museum:
         environment:
           - "ENTE_CREDENTIALS_FILE=/credentials.yaml"
         image: "ghcr.io/ente-io/server"
         networks:
           - "postgres"
           - "cloudflared"
         restart: "unless-stopped"
         volumes:
           - "/mnt/ssd/docker/ente/credentials.yaml:/credentials.yaml:ro"
           - "/mnt/ssd/docker/ente/custom-logs:/var/logs"
           - "/mnt/ssd/docker/ente/data:/data:ro"
           - "/mnt/ssd/docker/ente/museum.yaml:/museum.yaml:ro"
    
       photo-backup:
         image: "ente-photo-backup:latest"
         network_mode: "bridge"
         restart: "unless-stopped"
         volumes:
           - "/mnt/ssd/docker/ente/cli-data:/cli-data"
           - "/mnt/ssd/docker/ente/config.yaml:/config.yaml"
           - "/mnt/ssd/docker/ente/ente:/ente"
           - "/mnt/hdd/Backups/ente:/backup"
    
       postgresente:
         environment:
           - "POSTGRES_USER=pguser"
           - "POSTGRES_PASSWORD=pgpass"
           - "POSTGRES_DB=ente_db"
         image: "postgres:15"
         networks:
           - "postgres"
         restart: "unless-stopped"
         volumes:
           - "/mnt/ssd/docker/ente/postgres-data:/var/lib/postgresql/data"
    
       web-build:
         image: "ente-web-builder:latest"
         network_mode: "bridge"
         restart: "unless-stopped"
         volumes:
           - "/mnt/ssd/docker/caddy/ente-web:/output"
           - "/mnt/ssd/docker/ente/build-web.sh:/build-web.sh"
    
      

    note:

    1. all'epoca il client web non lo facevano preconfezionato in una pratica immagine docker ma era "che ci vuole basta compilarlo da soli con node" - quindi feci un'immagine locale ente-web-builder che chiamo tutte le domeniche per rifarmi la compilazione, poi la servo con caddy. Ho accidentalmente eliminato il Dockerfile, quindi devo fare un po' di reverse engineering per capire cosa ho fatto l'anno scorso. Si può usare la loro immagine docker che però se ho capito bene usa node serve - un po' assurdo usare node per hostare delle pagine statiche. Da maniaco dell'efficienza lo rifeci con Caddy.
    2. photo-backup è un'immagine docker fatta da me che tutte le domeniche usa ente-cli per scaricare il backup di tutte le foto di tutti gli utenti. Ho accidentalmente eliminato il Dockerfile quindi devo fare un po' di reverse engineering per capire cosa feci l'anno scorso
    3. supponendo che il client web lo si pubblichi su photo.example.com,
    4. bisogna creare museum.yaml e scriverci
     
        
    apps:
          public-albums:  "https://photo.example.com/"
    e poi le key encryption, hash, jwt secret, i dati smtp, e poi volendo quali id utenti sono admin
    
      
    1. supponendo che museum lo si pubblichi su api.example.com,
    2. bisogna creare config.yaml e scriverci
     
        
    endpoint:
          api: "https://api.example.com/"
    
      
    1. non uso minio ma un server s3 esterno, questo va configurato in credentials.yml

    in pratica sono questi 4 componenti:

    1. museum: sono le API che fanno parlare le app web e android/ios/windows/linux col database e col server s3
    2. postgres: contiene le path su s3 di ogni immagine (da fare backup frequenti)
    3. web: sono pagine statiche html+javascript che mostrano le immagini disponibili sul server. Opzionale, volendo uno può anche usare solo le app
    4. minio: è un server s3 compatibile che mantiene tutti i dati. Si può anche usare garage o server di altri. Personalmente uso b2 di backblaze.

    backup strategy:

    1. prima copio tutte le immagini di tutti gli utenti con ente-cli - le ritrovo tutte decriptate in jpg normali esattamente come furono caricate
    2. poi copio il contenuto del bucket s3 (che è criptato e quindi di per sé non è che sia utilissimo, è che in caso di disastro il recupero è più veloce non dovendo ricominciare da zero dal backup delle immagini sfuse)
    3. poi faccio il backup di postgres che contiene le chiavi di criptazione di ogni immagine contenuta nel bucket s3 (quindi se fai il backup del bucket ma senza postgres, è solo uno spreco di spazio, perché non lo puoi decrittare - anche qui è per velocizzare un eventuale recupero dopo disastro)
  • Ora guardo un attimo i docker compose yml che avevo fatto perché il nuovo metodo "esegui questo script scaricato da internet" semplifica tutto al punto in cui secondo me rende le cose più complicate, specialmente se si vuole pubblicare il servizio online, secondo me, visto che sono quattro servizi che devono essere esposti, le api a :8080, un server S3 a :3200 (possibile usare anche altri pre esistenti tipo idrive o B2), la pagina web statica a :3000 (possibile hostarla su GitHub Pages o altri server) e il database post gres. Io ho messo tutto in una rete docker separata e ci accedo via cloudflare tunnel. E non uso i volumi docker per facilitate il backup

  • Il primo account creato viene automaticamente promosso ad admin

    E siccome all'inizio probabilmente il server SMTP non è configurato, il codice di verifica email si trova nei log (docker log nome container)

  • Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ @lemmy.dbzer0.com

    Adobe stole my creative suite

    Privacy @lemmy.ml

    How i can stop this google nag banner to login in third party websites?

    Firefox @lemmy.ml

    I love the new sponsored clickbait in my firefox start page

    Mildly Infuriating @lemmy.world

    "We're committed to release firmware updates to our devices at least until 2026" - says a company that launched a device with a 3 years old version of android.

    Software Gore @lemmy.world

    at [Spamming company] forgot to feed the bot

    Android @lemdro.id

    Google can keep your phone if you send it in for repair with non-OEM parts

    Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ @lemmy.dbzer0.com

    Washing machine chime scandal shows how absurd YouTube copyright abuse can get

    Reddit @lemmy.world

    Let's pay millions to train a model on memes and sarcastic posts, WCGW?

    Privacy @lemmy.ml

    Did tiktok change something?

    Android @lemdro.id

    Syncthing saved my ass

    AssholeDesign @lemmy.world

    Dating site clearly states on ToS that all the hot girls nearby you are bots

    Mildly Infuriating @lemmy.world

    Someone purchased the old domain of a FOSS app, then it's using it to deceive users to download adware

    AssholeDesign @lemmy.world

    Batteries in a disposable lip gloss dispenser

    Technology @lemmy.ml

    Google Cloud accidentally deletes a financial institution account due to ‘unprecedented misconfiguration’

    F-Droid @lemmy.ml

    Make your contacts less anonymous with Micopi

    3D Printing @lemmy.ml

    Ondsel without registration?

    Selfhosted @lemmy.world

    I decided that I will update the nextcloud (windows) desktop client once or twice a decade

    Mildly Infuriating @lemmy.world

    This unnamed company that's selling a 6 years old refurb for over 3000 euro

    Android @lemdro.id

    Gemini on Android can't ID songs, and it's frustrating | TechCrunch

    Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ @lemmy.dbzer0.com

    Which free VPNs are supported by gluetun?