352 - Como alojar las fotografías en tu propio servidor

PodcastPodcast

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.

1:25
-3:15

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

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

5 comentarios en “Como alojar las fotografías en tu propio servidor

  1. Mahjong hace 4 meses

    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.

    1. atareao hace 4 meses

      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.

  2. Jorge hace 4 meses

    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

  3. Víctor hace 4 meses

    ¿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 😊

    1. atareao hace 4 meses

      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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.