Sign inSign up

asturbike/roadphoto

By asturbike

•Updated 12 months ago

Image
0

861

asturbike/roadphoto repository overview

⁠RoadPhoto - Aplicación Web Personal para Subir Fotos y Localizarlas en un Mapa

RoadPhoto es una aplicación web que permite a los usuarios seleccionar fotos desde su dispositivo móvil o PC, y al subirlas, las posiciona en un mapa basado en la información EXIF de la foto. Además, muestra las fotos como un "check" en el mapa, y al hacer clic sobre ellos, la imagen se abre en miniatura. La aplicación también ofrece un sistema de persistencia mediante una base de datos SQLite, para que las fotos y sus ubicaciones se mantengan incluso después de reiniciar la aplicación.

⁠Características

  • Sube fotos desde tu dispositivo móvil o cámara.Con proceso de Login para más seguridad
  • Elimina fotos, si te equivocas puedes eliminarla.
  • Posiciona las fotos en un mapa utilizando los datos EXIF de la foto. Si la foto no tiene EXIF puedes elegir donde situarla.
  • Recolocación de fotos , si falla el EXIF de tu dispositivo o quieres moverla se puede reposicionar fácilmente.
  • Persistencia de datos: Las ubicaciones y datos de las fotos se guardan en una base de datos SQLite para asegurar que los datos no se pierdan al reiniciar.
  • Soporte de tema claro y oscuro: Cambia el tema de la aplicación con solo un clic.
  • Filtros: Puedes filtrar desde la Web principal por años o usar filtros avanzados d fechas desde el menú.
  • Interfaz intuitiva: Solo verás el mapa, en el menú podrás hacer Login, Filtrados y Cambiar tu tema.
  • Base de datos SQLite: Todos los datos se almacenan de forma sencilla y persistente.

⁠Requisitos

Para ejecutar esta aplicación en Docker, necesitas tener:

  • Docker y Docker Compose instalados en tu sistema.
  • Un dispositivo con fotos que deseas subir.

⁠Configuración

⁠1. Crear el archivo .env y db

Antes de ejecutar la aplicación, necesitas configurar algunas variables de entorno en el archivo .env. Este archivo debe estar en la misma ruta que el archivo docker-compose.yml. La db la debemos de inicializar en nuestro equipo para que podamos almacenarla en local y tener la persistencia deseada.

⁠Ejemplo de archivo .env
USER=usuario #Usuario para hacer Login
UPLOAD_PASSWORD=PASSWORD    # Sustituye 'PASSWORD' por el que desees
APP_TITLE=TITLE     # El título que desees para tu aplicación
⁠Ejemplo de archivo db

En la ruta donde guardarás la aplicación y el archivo docker-compose

mkdir db
touch db/photos.db

⁠2. Crear el archivo docker-compose.yml

El siguiente archivo docker-compose.yml configura los servicios necesarios para ejecutar la aplicación.

⁠Ejemplo de archivo docker-compose.yml:
services:
  roadphoto:
    image: asturbike/roadphoto:v1.0  # Imagen de la aplicación
    ports:
      - "5000:5000"  # Puerto en el que la aplicación estará accesible
    env_file:
      - .env  # Archivo con las variables de entorno
    volumes:
      - ./uploads:/app/uploads  # Ruta local donde se guardan las fotos
      - ./db/photos.db:/app/photos.db  # Ruta local donde se guarda la base de datos SQLite
    container_name: roadphoto  # Nombre del contenedor
    restart: always  # Asegura que el contenedor se reinicie si hay un error

⁠3. Estructura de la aplicación
 
.
├── db
│   └── photos.db
├── docker-compose.yaml
└── uploads


⁠4. Inicio de aplicación

Para iniciar la aplicación, solo tienes que ejecutar el siguiente comando en la terminal, dentro de la carpeta donde se encuentran los archivos docker-compose.yml y .env.

docker-compose up -d

Este comando descargará la imagen de Docker necesaria (asegúrate seleccionar para arm o amd la última versión disponible), iniciará el contenedor y lo pondrá a funcionar en segundo plano. La aplicación estará disponible en http://TU_IP:5000.

⁠5. Interfaz de la Aplicación
  • Menú: Permite seleccionar el tema de la web , hacer login para subir o modificar fotos y realizar filtrados de fotos por fechas.

  • Filtrado sencillo: Junto al mapa principal existe un combo para seleccionar las fotos de un año determinado o Todas las fotos disponibles.La aplicación de manera predeterminada siempre te enseñará las fotos subidas del último año.

  • Edición de Fotos: Una vez iniciada sesión, si seleccionas una foto puedes utilizar los botones para eliminarla o editarla, donde te aparecerá de nuevo un mapa y podrás cambiarla de lugar.

  • Mapa interactivo: Las fotos se muestran como un "check" en el mapa. Al hacer clic sobre una foto, se abrirá en miniatura.

⁠Persistencia de Datos

  • Fotos y datos: Las fotos se almacenan en la ruta local /uploads y sus datos se guardan en la base de datos SQLite photos.db, la cual se encuentra en la carpeta ./db/.
  • Base de datos SQLite: La información sobre las fotos y sus posiciones se guarda en la base de datos SQLite para mantener la persistencia incluso después de reiniciar la aplicación.

⁠Backup y Restore

Se añade contenedor de tiredofit para hacer un sencillo backup de la db, se guardará en el directorio backups. Para restaurar es tan sencillo como descomprimirlo y sustituir su nombre por photos.db e incluirlo en la ruta original /db

services:
  backup:
    container_name: roadphoto_backup
    image: tiredofit/db-backup:latest
    volumes:
      - ./backups:/backup
      - ./db:/db
      - ./dataBackup:/data
    environment:
      - TIMEZONE=Europe/Madrid
      - CONTAINER_NAME=roadphoto_backup
      - CONTAINER_ENABLE_MONITORING=FALSE
      - BACKUP_JOB_CONCURRENCY=1
      - DEFAULT_CHECKSUM=NONE
      - DEFAULT_COMPRESSION=ZSTD
      - DEFAULT_BACKUP_INTERVAL=1440
      - DEFAULT_BACKUP_BEGIN=0000
      - DEFAULT_CLEANUP_TIME=8640
      - ENABLE_NOTIFICATIONS=FALSE       # Habilita notificaciones
      - DB01_HOST=/db/photos.db
      - DB01_TYPE=sqlite3
      - DB01_USER=root
      - DB01_NAME= #photos
      - DB01_BACKUP_INTERVAL=1440
      - DB01_BACKUP_BEGIN=0000
      - DB01_CLEANUP_TIME=7200
      - DB01_CHECKSUM=SHA1
      - DB01_COMPRESSION=GZ
    restart: unless-stopped

Gracias por usar RoadPhoto. ¡Esperamos que disfrutes de esta aplicación!

Tag summary

Content type

Image

Digest

sha256:bd105aa71…

Size

93.6 MB

Last updated

12 months ago

docker pull asturbike/roadphoto:v1.1b