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.
Para ejecutar esta aplicación en Docker, necesitas tener:
.env y dbAntes 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.
.envUSER=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
dbEn la ruta donde guardarás la aplicación y el archivo docker-compose
mkdir db
touch db/photos.db
El siguiente archivo docker-compose.yml configura los servicios necesarios para ejecutar la aplicación.
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
.
├── db
│ └── photos.db
├── docker-compose.yaml
└── uploads
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.
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.
/uploads y sus datos se guardan en la base de datos SQLite photos.db, la cual se encuentra en la carpeta ./db/.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!
Content type
Image
Digest
sha256:bd105aa71…
Size
93.6 MB
Last updated
12 months ago
docker pull asturbike/roadphoto:v1.1b