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.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.