Instalando django con docker y docker-compose.

Configurando un Proyecto de Django con Docker y Docker Compose

Después de algunos problemas con la instalación de versiones recientes de Python usando pyenv (¡intentar instalar Python 3.12 fue un dolor de cabeza!), decidí simplificar mi flujo de trabajo y configurar mi entorno de desarrollo usando Docker y Docker Compose.

Para esta guía, te recomiendo tener Docker y Docker Compose ya instalados. Puedes usar la terminal o herramientas como Visual Studio Code, que ofrece una interfaz muy útil para gestionar proyectos Docker.

Paso 1: Configurar la Estructura de Archivos del Proyecto

  1. Ubícate en el directorio donde deseas crear el proyecto (en mi caso, Workspace).
  2. Crea el directorio del proyecto y navega a él.
  3. Crea los archivos y carpetas iniciales.
$ cd ~/Workspace
$ mkdir proyecto
$ proyecto
$ touch Dockerfile
$ touch docker-compose.yml
$ touch requirements.txt
$ mkdir app/

Paso 2: Configurar el Dockerfile, docker-compose.yml y requirements.txt

Dockerfile

Este archivo define cómo se construirá la imagen de Docker para el proyecto Django.

FROM python:3.12-slim
WORKDIR /proyecto
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

docker-compose.yml

Aquí configuramos dos servicios: uno para la base de datos PostgreSQL y otro para la aplicación web.

services:
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: mydatabase
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5440:5432"

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./app:/app
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      - DATABASE_NAME=mydatabase
      - DATABASE_USER=myuser
      - DATABASE_PASSWORD=mypassword
      - DATABASE_HOST=db
      - DATABASE_PORT=5440

volumes:
  postgres_data: 

requirements.txt

Incluye las dependencias necesarias para el proyecto:

Django
psycopg2-binary

Paso 3: Crear el Proyecto Django

Inicia un nuevo proyecto de Django usando Docker Compose:

docker compose run web django-admin startproject myproject .

Si aparece algún error, revisa el log de Docker Compose para corregir posibles problemas, como nombres de archivos o dependencias faltantes.

Paso 4: Configurar la Base de Datos en Django

Actualiza el archivo settings.py de Django para usar PostgreSQL como base de datos. Ubica el archivo en app/myproject/settings.py y configura la sección de DATABASES:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.getenv('DATABASE_NAME'),
        'USER': os.getenv('DATABASE_USER'),
        'PASSWORD': os.getenv('DATABASE_PASSWORD'),
        'HOST': os.getenv('DATABASE_HOST'),
        'PORT': os.getenv('DATABASE_PORT'),
    }
} 

Paso 5: Levantar el Proyecto y Ejecutar Migraciones

  1. Construye y levanta el proyecto con Docker Compose:

docker compose up --build
    2. En otra terminal, aplica las migraciones de Django:
docker compose run web python manage.py migrate

Paso 6: Acceder al Proyecto

Tu aplicación de Django debería estar corriendo en http://127.0.0.1:8000/.

 

Estructura Final del Proyecto

Después de seguir estos pasos, la estructura de archivos y carpetas debería verse así:

├── app
│   ├── db.sqlite3
│   ├── manage.py
│   └── myproject
│       ├── asgi.py
│       ├── __init__.py
│       ├── __pycache__
│       │   ├── __init__.cpython-312.pyc
│       │   ├── settings.cpython-312.pyc
│       │   ├── urls.cpython-312.pyc
│       │   └── wsgi.cpython-312.pyc
│       ├── settings.py
│       ├── urls.py
│       └── wsgi.py
├── docker-compose.yml
├── Dockerfile
└── requirements.txt

4 directories, 14 files

Conclusión

¡Y listo! Ahora tienes un proyecto Django funcionando con Docker, que facilita la configuración del entorno y mejora la portabilidad.

 código: https://github.com/aztrock/myproject

EtherApe: Monitoreo Gráfico de Redes en Tiempo Real

 

¿Alguna vez te has preguntado cómo fluye el tráfico en tu red o qué dispositivos están ocupando más ancho de banda? EtherApe es una herramienta de código abierto que permite visualizar el tráfico de red en tiempo real de una forma clara y gráfica. En este artículo, te contaré cómo instalar, configurar y sacar el máximo provecho de EtherApe en Linux.


¿Qué es EtherApe?

EtherApe es una aplicación de monitoreo de red que muestra el tráfico de red como nodos y conexiones en una interfaz gráfica. Cada nodo representa un dispositivo en la red, y los enlaces muestran el tráfico entre ellos. La herramienta es ideal para administradores de redes y para cualquier persona que quiera tener una visión clara de cómo se utiliza su red.

¿Por qué usar EtherApe?

EtherApe ofrece varias ventajas:

  • Monitoreo en tiempo real: Puedes ver el tráfico en tu red a medida que sucede.
  • Visualización gráfica: Es fácil identificar los dispositivos y conexiones que consumen más ancho de banda.
  • Código abierto y gratuito: Al ser software libre, puedes descargarlo y usarlo sin costo alguno.
  • Soporte para varios protocolos: EtherApe es compatible con protocolos como TCP, UDP, y ICMP, permitiéndote ver tráfico de diferentes tipos de aplicaciones.

Instalación de EtherApe en Linux

La instalación de EtherApe en Debian o Ubuntu es bastante sencilla. Solo necesitas abrir la terminal y ejecutar el siguiente comando:

 

Al abrir EtherApe, verás una interfaz gráfica que comienza a mostrar los dispositivos y el tráfico en tiempo real. Puedes seleccionar qué interfaces quieres monitorear (por ejemplo, WiFi o Ethernet) y elegir entre el tráfico de la red local o externo.

Instalacion:

sudo apt update

sudo apt install etherape 

 

Ejecutar:

sudo etherape

 

Características principales de EtherApe

EtherApe tiene varias funciones que hacen que monitorear el tráfico sea mucho más fácil:

  1. Visualización dinámica: Los nodos y conexiones se actualizan constantemente para reflejar el estado en tiempo real. Cuanto mayor sea el ancho de banda de una conexión, más grueso será el enlace en la pantalla.

  2. Filtros de protocolo: Puedes filtrar los protocolos para ver solo el tráfico TCP, UDP, ICMP, entre otros. Esto es útil si quieres enfocarte en un tipo específico de tráfico.

  3. Selección de interfaces de red: Puedes elegir monitorear varias interfaces de red (como WiFi, Ethernet, etc.), lo que es especialmente útil en sistemas con varias conexiones activas.

  4. Registro de tráfico: EtherApe permite guardar capturas del tráfico de red para analizarlas más adelante.

Configuración y opciones de EtherApe

Para ajustar EtherApe a tus necesidades, puedes configurar opciones como:

  • Filtros de red: Filtra direcciones IP específicas para centrarse en ciertos dispositivos o segmentos de la red.
  • Color de los enlaces: Puedes cambiar los colores para cada protocolo, lo que facilita identificar el tráfico de una sola mirada.
  • Intervalo de actualización: Puedes ajustar el tiempo de actualización de los gráficos para adaptarse a la velocidad de tu red o a tus preferencias.

Casos de uso prácticos de EtherApe

  1. Detección de tráfico inusual o sospechoso: EtherApe puede ayudarte a identificar picos de tráfico inesperados o conexiones a dispositivos desconocidos, lo cual es útil para detectar posibles amenazas de seguridad.

  2. Monitoreo del ancho de banda: Si tu red se está volviendo lenta, EtherApe te permite ver qué dispositivos o aplicaciones están usando la mayor parte del ancho de banda.

  3. Análisis de redes domésticas: EtherApe también es útil para usuarios domésticos que quieran entender el tráfico en su red y verificar que dispositivos desconocidos no estén conectados.

Consejos de seguridad

Dado que EtherApe monitorea tráfico en la red, es importante usarlo de forma responsable, especialmente en redes compartidas o públicas. Asegúrate de contar con permisos para monitorear cualquier red en la que uses esta herramienta.

Conclusión

EtherApe es una herramienta poderosa y fácil de usar para visualizar el tráfico de red. Con su interfaz gráfica y su monitoreo en tiempo real, EtherApe te permite obtener una visión clara de cómo se usa tu red, detectar problemas y mejorar el rendimiento. ¡Instálalo y pruébalo en tu red para descubrir lo que sucede tras bambalinas!