Benotes: Contenedor para guardar enlaces a webs o bookmarks y añadir notas con Docker

Tiempo de lectura: 2 minutos

Hoy vamos a ver cómo podemos desplegar un contenedor para guardar notas o links a nuestras webs de interés o proyectos.

Basado en benotes (https://github.com/fr0tt/benotes_docker-compose)

Lo primero que tenemos que hacer es crear este Docker Compose:

version: "3.6"
services:
  benotes_app:
    container_name: benotes_app
    image: fr0tt/benotes:2.7.0-beta
    restart: unless-stopped
    environment:
      DB_CONNECTION: ${DB_CONNECTION}
    #ports:
      #- ${APP_PORT}:80
    volumes:
      - .env:/var/www/.env
      #- ./data/storage/app/public/thumbnails:/var/www/storage/app/public/thumbnails
      #- ./data/storage/backup:/var/www/storage/backup
      #- ./data/storage/logs:/var/www/storage/logs
      # or instead one named volume to rule them all:   
      - benotes_storage:/var/www/storage
      # this is optional (either way):
      #- ./data/nginx/logs/:/var/lib/nginx/logs/
    networks:
      - docker_netwkork

  benotes_db:
    container_name: benotes_db
    image: postgres:15.2-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DATABASE: ${DB_DATABASE}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    ports:
      - ${DB_PORT}
    volumes:
      - benotes_postgres:/var/lib/postgres/data
    networks:
      - docker_netwkork
  #
  # If you wish to use MySQL instead remove the lines above, uncomment the following
  # and change APP_PORT in your .env file to 3306
  #
  # db:
  #   container_name: benotes_db
  #   image: mysql:5.7
  #   restart: unless-stopped
  #   environment:
  #     MYSQL_DATABASE: ${DB_DATABASE}
  #     MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
  #     MYSQL_USER: ${DB_USERNAME}
  #     MYSQL_PASSWORD: ${DB_PASSWORD}
  #   ports:
  #     - ${DB_PORT}
  #   volumes:
  #     - benotes_mysql:/var/lib/mysql
  #   networks:
  #     - docker_netwkork
  
volumes:
  benotes_postgres:
    driver: "local"
  # benotes_mysql:
  #   driver: "local"
  benotes_storage:
    driver: "local"

networks:
  docker_netwkork:
    external: true

Una vez creado el archivo, añadimos este .env en raíz. El .env lo lee directamente Docker Compose.

APP_PORT=8099

APP_NAME=Benotes
APP_ENV=production
APP_DEBUG=false
APP_URL=http://localhost:${APP_PORT}
APP_TIMEZONE=UTC

GENERATE_MISSING_THUMBNAILS=true
USE_FILESYSTEM=true

DB_CONNECTION=pgsql
DB_HOST=benotes_db
DB_PORT=5432
DB_DATABASE=db_benotes
DB_USERNAME=user_benotes
DB_PASSWORD=pass_benotes

CACHE_DRIVER=file

MAIL_DRIVER=smtp
MAIL_HOST=
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME="Benotes"
JWT_ALGO=HS256

Ahora lanzamos el contenedor:

docker compose up -d

Tenemos que permitir permisos de escritura y lectura en .env ya que será modificada por el contenedor para establecer la clave inicial.

sudo chmod 777 -env

Ahora ejecutamos este comando para iniciar la configuración:

docker compose exec --user application benotes_app sh

Y lanzamos la configuración:

php artisan install

Ahora nos pedirá confirmar la instalación, decimos a todo yes.

Y pedirá establecer el username, email y password para acceder.

Una vez listo, podremos acceder al servicio desde http://localhost:8099

Y ya podemos crear una nueva colección y añadir dentro nuestros links o notas.

Deja un comentario