352 - Como alojar las fotografÃas en tu propio servidor
Como alojar fotografÃas en tu propio servidor o en un VPS. Ventajas e inconvenientes, y como hacerlo de forma sencilla y rápida.
La verdad es que no las tengo todas conmigo con esto de tener mis fotografÃas en Google Fotos. Y no lo digo por el hecho de Google Fotos, si no por el simple hecho de depender de un tercero. Y es que últimamente no tengo mas que disgustos con los servicios de terceros. Depender de un tercero es lo que tiene, que estás a su servicio. AsÃ, que de nuevo me he puesto con el asunto de alojar las fotografÃas en tu propio servidor.
Por el momento voy a duplicar alojamiento. Asà voy a mantener las fotografÃas tanto en Google Photos, como en Photoprism, y mas adelante ya veremos.
Como alojar las fotografÃas en tu propio servidor
Sobre Photoprism
Ya te hablé en detalle sobre este servicio en el episodio 220 del podcast titulado tu propio Google Photos con Photoprism y Traefik.
El objetivo de este podcast, no es tanto centrarme en la instalación de Photoprism, sino en la infraestructura necesaria, y por supuesto y sobre todo, en lo referente a la sincronización con Android.
Sobre la infraestructura para alojar las fotografÃas
En mi caso lo tengo claro. El alojamiento lo voy a mantener en el VPS, pero, en tu caso, es posible que quieras hacerlo en una Raspberry, o en un servidor que tengas en casa o en otro lugar. Esto depende de ti, evidentemente. En cualquier caso, voy a poner ambas soluciones y ya tu decides exactamente lo que quieres hacer.
Por supuesto, parto de que tu vas a querer acceder a Photoprim desde cualquier parte del mundo. Es decir, que Photoprism estará expuesto al exterior. En el caso de un VPS, está claro, pero en el caso de que lo tengas en tus propias instalaciones, tendrás que apuntar desde el router de casa hasta el servidor, de forma que cualquier llamada al puerto 80 y al puerto 443 del router, vayan a los puertos que tu consideres de tu servidor.
DNS dinámico
Si lo alojas en un VPS no te hace falta, un DNS dinámico, pero si lo alojas en tu casa, o otro lugar detrás de una IP dinámica, necesitas necesariamente tener un DNS dinámico. Si este es tu caso, te recomiendo que le des un vistazo al artÃculo una puerta a tu Raspberry teniendo IP dinámica del tutorial sobre tu nube en la Raspberry.
En este artÃculo del tutorial te explico con detalle como lo tienes que configurar para que todo funcione correctamente. Pero recuerda, que aquà vamos a gestionarlo con un proxy inverso, por los motivos que te he comentado anteriormente.
Proxy inverso
En cualquier caso, voy a utilizar un proxy inverso, por dos razones. La primera porque seguro que vas a querer alojar mas servicios, y no solo Photoprism. Y la segunda de las razones y mucho mas importante, para gestionar los certificados seguros.
Lo cierto es que hace un mes o un par de meses, estaba preparando un vÃdeo para sobre como obtener los certificados autofirmados de Let’s encrypts y casi me da un pasmo. ¿Te crees que me acordaba?¿Te crees que lo conseguÃ?. Pues no, no lo conseguÃ, finalmente abandoné.
Hace tanto tiempo que no me encargo de los certificados que se me hizo muy cuesta arriba. Lo cierto es que durante los últimos años, Traefik ha sido el encargado de hacer todo esto de los certificados, y para mi es completamente transparente. Vamos que no me entero de nada.
En este caso y para variar, en lugar de utilizar Traefik como proxy inverso, me voy a decantar por Caddy, por cuestiones de simplicidad.
Asà que te pongo primero el archivo docker-compose.yml
de caddy
,
version: "3.7"
services:
caddy:
image: lucaslorentz/caddy-docker-proxy:ci-alpine
ports:
- 80:80
- 443:443
environment:
- CADDY_INGRESS_NETWORKS=caddy
networks:
- caddy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- caddy_data:/data
restart: unless-stopped
networks:
caddy:
external: true
volumes:
caddy_data: {}
Y a continuación el de Photoprism
. En este caso, ojo que está con sqlite, si quieres utilizar MariaDB tienes que realizar algunas modificaciones sobre el mismo,
version: '3.5'
services:
photoprism:
image: photoprism/photoprism:latest
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
healthcheck: # Optional
test: "photoprism status"
interval: 60s
timeout: 15s
retries: 5
environment:
PHOTOPRISM_DEBUG: "false"
PHOTOPRISM_PUBLIC: "false"
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_UPLOAD_NSFW: "true"
PHOTOPRISM_DETECT_NSFW: "false"
PHOTOPRISM_EXPERIMENTAL: "false"
PHOTOPRISM_SITE_URL: "https://photoprism.tuservidor.es/"
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse Your Life"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
PHOTOPRISM_SETTINGS_HIDDEN: "false"
PHOTOPRISM_ADMIN_PASSWORD: "contraseñasupersecreta"
PHOTOPRISM_DATABASE_DRIVER: "sqlite"
PHOTOPRISM_SIDECAR_JSON: "true"
PHOTOPRISM_SIDECAR_YAML: "true"
PHOTOPRISM_THUMB_FILTER: "lanczos"
PHOTOPRISM_THUMB_UNCACHED: "false"
PHOTOPRISM_THUMB_SIZE: 2048
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680
PHOTOPRISM_JPEG_SIZE: 7680
volumes:
- "./Pictures:/photoprism/originals"
- "./Storage:/photoprism/import"
- "./Import:/photoprism/import"
labels:
caddy: photoprism.tuservidor.es
caddy.reverse_proxy: "{{upstreams 2342}}"
networks:
- caddy
networks:
caddy:
external: true
Aunque ahora que lo he pegado aquÃ, creo sinceramente que la configuración deberÃa ir en un archivo especÃfico, para evitar
Con estos dos archivos docker-compose.yml
ya lo tienes listo para levantar tu servicio de fotografÃas.
La parte de mi equipo
Conectar esto con Linux es realmente sencillo, porque al final simplemente se trata de compartir un directorio, con lo que como bien sabes, tienes docenas de forma de hacerlo.
La parte de Android
Para la parte de Android, te recomiendo una interesante aplicación que te va a permitir sincronizar todas tus fotografÃas entre PhotoPrism y Android de forma relativamente sencilla. Esta aplicación se llama PhotoSync y la tienes disponible en Google Play.
Entre otras caracterÃsticas, esta aplicación te permite realizar una sincronización manual, o bien, una sincronización cada vez que realices una fotografÃa, al mas puro estilo de los servicios de terceros.
Imagen de portada de Sarandy Westfall
Si tienes Amazon Prime ten por cuenta que tienes «gratis» almacenamiento ilimitado de fotos en Amazon. Yo subo las fotos a Google Fotos por su genial opción de búsqueda sobre las imágenes basado en la IA. Y luego subo además las fotos a Amazon Fotos como backup. La cuestión es que claro que puedes poner salvaguardas en tu casa, pero un incendio y fin de las fotos, o entran en tu casa y se llevan tu NAS. Para que se de una catástrofe como esa en Google o Amazon… digamos que las fotos serÃan tu último problema.
Desde luego que, probablemente, la mejor opción sea dejarlas en Google o Amazon, desde el punto de vista de la seguridad. Sin embargo, el problema, como comentaba en el podcast, es que dependes de un servicio de terceros. Un servicio de terceros, que en cualquier momento puede decidir de forma unilateral, cambiar las condiciones y dejarte vendido.
La solución que propongo, alojada en un servidor VPS, es una solución práctica, con su IA, y tan práctica como las otras dos que indicas, aunque, con el inconveniente **importante**, de que tienes que encargarte tu de realizar las copias de seguridad, de actualizar el sistema.
Llegados a este punto cada uno tiene que elegir. Yo solo pongo opciones encima de la mesa.
El problema que le veo a photoprism es que luego no puedes ver las fotos en la TV con un Chromecast como sà puedes hacer con Google Photos.
¿Hay alguna solución a este problema?
Gracias
¿Y no te compensa un NAS para ese caso?
Mejor que el VPS… Lo digo porque yo sufrà el incendio de OVH y menos mal que no tenÃa ahà las fotos 😅. A menos que mantengas un servicio diario de copias de seguridad del VPS, pero para eso quizás un NAS sea mejor opción. Yo por ahora tengo duplicadas las fotos entre Google y mi NAS en RAID 1, con la intención de terminar montando un segundo NAS en una casa familiar y actuar como backup del primero, y con eso podrÃa quitar la dependencia de Google en principio.
Y dejar el VPS para gestionar servicios sin necesidad de almacenamiento extra, que en OVH no sale precisamente barato más de 40GB… ¿Qué proveedor usas? No sea que me convenga migrar 😊
Me gusta mucho mas la solución del VPS con backup diario/semanal. El NAS está bien, pero…
Respecto al VPS que estoy utilizando es Contabo, dale un vistazo y ya me comentas.
Saludos.