this post was submitted on 29 Mar 2025
11 points (100.0% liked)

Le Alternative

1505 readers
7 users here now

Comunità Lemmy di LeAlternative.net

Regole

All'interno di questa comunità è necessario parlare in italiano.

✍️ Sono ben accettati i post che parlano di privacy, open source, fediverso e in generale richieste di supporto su applicazioni alternative (suggerimenti, novità etc).

🏳️‍🌈 Come sempre sono graditi toni concilianti e non offensivi, pertanto offese personali verranno cancellate.

Cosa non postare

🚫 Evitare notizie provenienti da siti non affidabili, tendenzialmente teniamo molto in considerazione la Black List di Butac: https://www.butac.it/the-black-list/ anche se ovviamente non è una lista esaustiva.

founded 2 years ago
MODERATORS
 

Benvenuta Ente 1.0!

Ente Photos, una bella alternativa libera e crittografata end-to-end a Google Photos, diventa grande e mostra la sua prima versione stabile!

https://www.lealternative.net/2025/03/29/benvenuta-ente-1-0/

all 14 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 3 days ago (1 children)
[–] [email protected] 1 points 3 days ago (1 children)

Secondo me si, usa pochissime risorse su server

[–] [email protected] 1 points 3 days ago (1 children)

@Moonrise2473 ma ricordo male oppure l'app android non permette l'utilizzo di istanze private 🤔🤔

[–] [email protected] 1 points 2 days ago (1 children)

permette le istanze private, c'è da fare tipo 6 tap sul banner di login mi pare, tipo come si abilita la modalità developer in android

[–] [email protected] 1 points 2 days ago (1 children)

@Moonrise2473 lo sto provando ma non capisco una cosa 😅 avvio il container vado nella pagina di login sul mio server e mi fa creare un account 😅🤔 non c'è un primo login da amministratore? E poiho provato ma non mi fa fare la registrazione non mi accetta l'email

[–] [email protected] 1 points 2 days ago (1 children)

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)

[–] [email protected] 1 points 2 days ago (2 children)

@Moonrise2473 ma non è che non mi invia l'e-mail di verifica non mi fa fare neppure la registrazione

[–] [email protected] 1 points 2 days ago (2 children)

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

[–] [email protected] 1 points 2 days ago (1 children)

@Moonrise2473 sembra essere questo il problema, ma la soluzione dovrebbe essere questa
Ma già al secondo comando mi da errore
Install the necessary dependencies for running the web client
# installing npm and yarn
sudo apt update sudo apt install nodejs npm
sudo npm install -g yarn // to install yarn globally

Then in a separate terminal, you can run (e.g) the web client

cd ente/web yarn install NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080/ yarn dev

https://github.com/ente-io/ente/discussions/1449

[–] [email protected] 1 points 2 days ago (1 children)

@Moonrise2473 che casino 🤷🏻‍♂️ bho ho fatto da cellulare ieri sera, al massimo vedo nel weekend da pc

[–] [email protected] 1 points 2 days ago

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)
[–] [email protected] 1 points 2 days ago (1 children)

Lo fai da localhost, giusto? Non da app

[–] [email protected] 1 points 2 days ago

@Moonrise2473 si con ip perché l'host non è accessibile in modo fisico