VanDAM 3D: Docker

2 minuto(s) de lectura

Docker

VanDAM es un gestor de contenido digital, diseñado específicamente para archivos de impresión 3D.

Es una alternativa local y autogestionada a macroservicios online como Thingiverse, Cults3D, …

La dinámica de uso es muy sencilla, tan solo definimos una biblioteca, alojamos los ficheros que hayamos diseñado o bien queramos tener gestionados y listo.

Es proyecto aún en fase de desarrollo y tiene cierto margen de mejora en la gestión, pero realmente merece la pena darle una oportunidad de uso.

Instalación

Vamos a realizar unos pasos previos para preparar el entorno, para ello en primer lugar creamos las carpetas donde alojar el proyecto:

mkdir -p $HOME/docker/vandam/{stl,bdatos} && \
cd $HOME/docker/vandam

Agregamos el paquete openssl para generar una clave de cifrado para la base de datos:

sudo apt-get update && \
sudo apt-get -y install openssl

Generamos la clave de forma aleatoria y la anotamos para usarla en la creación del docker:

openssl rand -base64 32

Como ejemplo muestro un resultado de la ejecución del comando:

pi@overclock:~$ openssl rand -base64 32
gED04yiDeyItG6e9GO/OPCd+IBFZOoAIFkM6/3ZllcI=

Ahora llega el turno de crear el fichero de configuración docker-compose.yml lanzando el siguiente comando:

cat << EOF > $HOME/docker/vandam/docker-compose.yml
version: "3"

services:
  app:
    image: ghcr.io/floppy/van_dam:latest
    container_name: VanDAM
    ports:
      - 8993:3214
    volumes:
      - ./stl:/Diseños
    environment:
      DATABASE_URL: postgresql://EMPALADOR:NOCTURNO@db/van_dam?pool=5
      SECRET_KEY_BASE: gED04yiDeyItG6e9GO/OPCd+IBFZOoAIFkM6/3ZllcI=
      GRID_SIZE: 250
    restart: always
    depends_on:
      - db
      - redis

  db:
    image: postgres:13
    container_name: VanDAM_DB
    volumes:
      - ./bdatos:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: EMPALADOR
      POSTGRES_PASSWORD: NOCTURNO
    restart: always

  redis:
    image: redis:6
    container_name: VanDAM_REDIS
    restart: always

volumes:
  db_data:
EOF

Vamos a repasar los principales parámetros que hemos añadido sobre la anterior base, para poder adaptarlos a nuestro sistema y configuración especifica:

Parámetro Función
8993:3214 Puerto de acceso interfaz Web :8993
./stl:/Diseños Ruta donde alojamos nuestros ficheros 3D $HOME/docker/vandam/stl y la ruta de la biblioteca que nos solicitara al iniciarse /Diseños
DATABASE_URL: postgresql://EMPALADOR:NOCTURNO@db/van_dam?pool=5 Ruta de base datos y datos acceso, recuerda cambiar usuario & contraseña
SECRET_KEY_BASE: gED04yiDeyItG6e9GO/OPCd+IBFZOoAIFkM6/3ZllcI= Clave de cifrado base datos, recomiendo cambiarla por la propia generada
GRID_SIZE: 250 Tamaño de rejila visualización
./bdatos:/var/lib/postgresql/data Ruta donde almacena localmente la base datos
POSTGRES_USER: EMPALADOR Usuario creado para gestión de base datos, recomiendo cambiarlo
POSTGRES_PASSWORD: NOCTURNO Contraseña creada para el usuario de gestión, recomiendo cambiarla
restart: always Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio

Una vez configurado, levantamos el servicio para ser configurado y ejecutado:

docker-compose up -d

En mi caso, el servicio estaría disponible en la dirección web http://192.168.1.90:8993

Nginx Proxy Manager

Configuramos dominios y certificados:

Y listo!