Skip to content

Latest commit

 

History

History
447 lines (305 loc) · 19 KB

README.es.md

File metadata and controls

447 lines (305 loc) · 19 KB

tablero de mensajes

Tablero de mensajes

CI/CD CI - ServerCD - Frontend
Paquete PyPI - VersionPyPI - Python Version
Meta Hatch projectcode style - blacktypes - MypyLicense - MITGitHub Sponsors

Un tablero de mensajes que mostrará los mensajes enviados.

Resumen ejecutivo

VA

Recomendamos el uso deCursor.iocomo el Entorno de Desarrollo Integrado (IDE) para este proyecto.

Servidor

Cómo poner en marcha su código en su propio sistema.

Nota: Asegúrese de cumplir con losrequisitos.

  1. Proceso de instalación:

    $ cd server
    $ hatch --version # optional, will print the version of our package to the terminal without modifying the source directory (e.g. `0.0.1`).
    # Without hatch: $ python src/message_board/app.py
    $ hatch env create # optional, if the default env already exists you will be told
    $ hatch shell # spawn a shell within an environment
    (server) $ pip show message-board-server # optional, shows the project details, here 'message-board-server', from `pyproject.toml`
    # Name: message-board-server
    # Version: 0.1.0 # it takes this from src/message_board/__about__.py
    # ...
    (server) $ python -c "import sys;print(sys.executable)" # optional, see where your environment's python is located
    (server) $ pip install --upgrade pip # optional, the `run` command allows you to execute commands in an environment as if you had already entered it.
    (server) $ exit # optional, type `exit` to leave the environment

    NOTA: La forma moderna es utilizarpyproject.tomlpara instalar dependencias, no ```requirements.txt. Por lo tanto, no debería haber un archivo de requisitos.txt.

    === INICIO: ACTUALIZAR ESTA SECCIÓN PARA el tablero de mensajes ===

    **Empaqueta tu sitio con webpack:**Una vez que tenga un sitio web que sea lo suficientemente bueno para su uso, deberá empaquetar la aplicación con webpack. Esta carpeta de paquete aparece en.gitignorepara evitar que se comprometa con git.

    Toda la configuración ya debería estar lista, así que todo lo que tienes que hacer: 1)$ hatch shell2)(threagile-monitoring) $ cd src/threagile_monitoring3)(threagile-monitoring) $ npm install4)(threagile-monitoring) $ npm run build

    Esto creará elapp.jsarchivo, que contiene todos los componentes, en/src/threagile_monitoring/static/js/.

    Desarrollo con paquete web:Si todavía estás desarrollando tu sitio web, en unsesión terminal separada, después de haber seguido el proceso de instalación anterior, haga esto: 1)$ hatch shell2)(threagile-monitoring) $ cd src/threagile_monitoring3)(threagile-monitoring) $ npm install4)(threagile-monitoring) $ npm run watch

    Esto, en la sesión de terminal separada (es decir,background) - cargue constantemente los cambios que realice en los archivos apropiados, mientras puede continuar realizando esos cambios - en la sesión inicial del terminal (es decir,foreground). Así que no tienes que crear tus fuentes después de cada edición, ¡se encargan automáticamente!

    Para ver los cambios simplemente guarda y recarga tu navegador (normalmente con F5).

    Asegúrese de ejecutar su página web cuando pruebe con funciones de backend, de la siguiente manera: 1)(threagile-monitoring) $ cd src/threagile_monitoring2)(threagile-monitoring) $ python app.py

    Prueba

    Pruebe la aplicación (frontend) de esta manera:

    1)$ hatch shell2)(threagile-monitoring) $ cd src/threagile_monitoring3)(threagile-monitoring) $ npm install4)(threagile-monitoring) $ npm test5)(threagile-monitoring) $ npm test -- --coverage

    Correr:

    Si no está en desarrollo, ejecute la aplicación (backend y frontend simultáneamente) de esta manera:

    $ hatch run python src/threagile_monitoring/app.py # starts the app 
  2. Dependencias de software

  3. Últimos lanzamientos

  4. Referencias API

  5. Construir y probar:

    Para construir su código, use:

    $ cd threagile-monitoring
    $ hatch build

    Para usar IA para revisiones de solicitudes de extracción, use:

    https://app.coderabbit.ai/dashboard(usaphpstan.neon)

    Para ejecutar la aplicación, utilice:

    Linux:

    $ export SECRET_KEY="secret"

    Ventanas:

    $ setx SECRET_KEY secret

    Entonces:

    $ cd threagile-monitoring
    # Without hatch: $ python src/threagile_monitoring/app.py
    $ hatch run python src/threagile_monitoring/app.py

    Luego, navegue hastahttp://127.0.0.1:5000/en su navegador web.

    Para ejecutar pruebas, utilice:

    $ cd threagile-monitoring
    $ pip install pytest # optional
    $ pytest tests/

Estibador

NOTA: Para un uso eficiente de los recursos, utilizamosSuaveen lugar deEstibador!

Agregue estas líneas a su ~/.zshrc o ~/.bashrc:

alias docker=podman
alias docker-compose='podman compose'

Luego recarga la configuración de tu shell:

$ source ~/.zshrc  # if using zsh
# or
$source ~/.bashrc # if using bash

Instale podman-compose mediante pip:

$ pip install podman-compose

Verifique la instalación:

$ podman compose --version

Compruebe si existe alguna máquina Podman

$ podman machine list

Si no existe ninguna máquina, cree una.

$ podman machine init

Iniciar la máquina Podman

$ podman machine start

Establecer la ruta del socket

$ export DOCKER_HOST=unix://$HOME/.local/share/containers/podman/machine/podman.sock

Verifique que Podman esté funcionando

$ podman ps

Inicie sus contenedores Docker con:

$ cd containers/app

# For Linux
$ xhost +local:docker
$ docker compose --file docker-compose.dev.yml --project-name message-board-dev up --build -d

# For macOS with XQuartz
# On macOS we need to start XQuartz first. Here's the complete sequence:
# 1.Install XQuartz if you haven't already:
$ brew install --cask xquartz
# 2. Start XQuartz:
$ open -a XQuartz
# 3. You should see an "X" icon in your menu bar at the top of the screen. Click on it to open XQuartz preferences.
# 4. In XQuartz preferences, go to the "Security" tab and make sure "Allow connections from network clients" is checked.
# 5. Wait a few seconds for XQuartz to fully start up
# 6. Set display to local fisrt:
$ export DISPLAY=:0
# 7. Get your IP address
$ export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
# 8. Allow X11 forwarding from your IP
$ xhost + $IP
# 9. Install podman and podman compose
$ pip install podman podman-compose
# 10. Initialize and start a new Podman machine with the correct mount (our cloned GitHub repository 'message-board' should reside in the '/usr/local/opt/code' directory)
$ podman machine init --now --volume /usr/local/opt/code:/home/user/code
$ podman machine set --rootful
$ podman machine start
$ podman volume create cloudbeaver-config
$ podman run --rm \
  -v cloudbeaver-config:/config \
  -v $(pwd)/initial-data.conf:/initial-data.conf:ro \
  alpine cp /initial-data.conf /config/
# 11. Then in your terminal:
# Remove the existing pod
$ podman pod rm -f pod_message-board-dev
# Remove any existing volumes
$ podman volume rm -f message-board-dev_dbvis-config
$ podman volume rm -f message-board-dev_message-board-data
# Verify everything is clean
$ podman pod ls
$ podman ps -a
$ podman volume ls
# Then start fresh
$ podman-compose --file docker-compose.dev.yml --project-name message-board-dev up -d --build
# or alternatively (since we have a mapping in ~/.zshrc file to map docker to podman):
$ docker compose --file docker-compose.dev.yml --project-name message-board-dev up -d --build
# The key is that XQuartz must be running before you execute the xhost command.

# For Windows with VcXsrv
$ set DISPLAY=host.docker.internal:0
$ docker compose --file docker-compose.dev.yml --project-name message-board-dev up --build -d

This will spin up three containers:

  • tablero de mensajes-servidor-dev (puerto 8080:5000)
  • tablero de mensajes-frontend-dev (puerto 80:3000)
  • tablero de mensajes-base-de-datos-dev (puerto 5432:5432)
  • tablero de mensajes-db-gui-dev (puerto 5444:5444)

Los cuatro contenedores se están ejecutando correctamente. Verifiquemos cada servicio:

  1. Interfaz (Vue.js):
  • Visita http://localhost:80 en tu navegador
  1. Backend (Frasco):
  • Visite http://localhost:8080/api/health en su navegador
  • Debería devolver una respuesta de control de salud
  1. Base de datos (PostgreSQL):
  • Ya funcionando y saludable (como se muestra en el estado)
  • Accesible en localhost: 5432
  1. CloudBeaver (GUI de base de datos):
  • Visita http://localhost:8978
  • Configuración por primera vez:
  • Cree credenciales de administrador cuando se le solicite
  • Nombre de usuario: cbadmin
  • Contraseña: S3cr3tPwd
  • Haga clic en "Nueva conexión"
  • Elija "PostgreSQL"
  • Ingrese los detalles de la conexión:
  • Anfitrión: base de datos
  • Puerto: 5432
  • Base de datos: message_board_db
  • Nombre de usuario: db-user-dev
  • Contraseña: db-contraseña-dev

DbVisualizer debería conectarse a su base de datos PostgreSQL usando estas credenciales:

Servidor: base de datos Puerto: 5432 Base de datos: message_board_db Nombre de usuario: db-user-dev Contraseña: db-contraseña-dev

Si DbVisualizer no se inicia automáticamente, puede consultar los registros del contenedor:

$ docker logs message-board-db-gui-dev

Documentación API

Navegar ahttp://127.0.0.1:5000/docsen su navegador web, o descargue openapi.json desdehttp://127.0.0.1:5000/openapi.json.

Métrica

Dejemos que una herramienta como Prometeo raspehttp://127.0.0.1:9464/metrics.

NUEVO

Tabla de contenido

Instalación

pip install threagile-monitoring

Fuente de la versión

  • Elescotilla-vcsEl complemento fuente de la versión determina la versión del proyecto usando etiquetas Git.

Ambientes

  • Definido claramente de forma independientehatch.toml
  • Eltestla matriz utiliza elcontenedores-escotillacomplemento para ejecutar cada entorno dentro de contenedores Docker; El uso se puede ver en elpruebaflujo de trabajo de GitHub

Construir

  • Todos los objetivos de construcción utilizan elescotilla-vcsconstruir complemento de gancho para enviar un_version.pyarchivo para que la versión pueda usarse en tiempo de ejecución
  • Las ruedas utilizan elhatch-mypyccomplemento de enlace de compilación para compilar primero todo el códigomipyc
  • ElconstruirEl flujo de trabajo de GitHub muestra cómo:
    • usarcibuildwheeldistribuir ruedas binarias para cada plataforma
    • utilizar elaplicaciónconstruir objetivo para crear distribuciones independientes para cada plataforma

Licencia

threagile-monitoringse distribuye bajo los términos delCONlicencia.

=== END:  UPDATE THIS SECTION FOR message board ===

Interfaz

  1. Cree la aplicación SvelteKit:

    $ cd containers/app $ npx sv create frontend Choose "SvelteKit demo" Choose Yes, using Typescript syntax Choose prettier, eslint, vitest, tailwindcss Choose typography, forms, container-queries Choose pnpm

Próximos pasos:

1: cd frontend                                                          │
|  2: pnpm install @sveltejs/adapter-node --save-dev                       |
|  3: change in svelte.config.js:                                          |
|     FROM: import adapter from '@sveltejs/adapter-auto';                  |
|     TO:   import adapter from '@sveltejs/adapter-node';                  |
|     and:                                                                 |
|     FROM: adapter: adapter()                                             |
|     TO:   adapter: adapter({ out: 'build' })                             |
|  4: Add to package.json:                                                 |
|     "packageManager": "[email protected]",                                     |
│  5: git init && git add -A && git commit -m "Initial commit" (optional)  │
│  6: pnpm dev --open                                                      │
│                                                                          │
│  To close the dev server, hit Ctrl-C                                     │
│                                                                          │
│  Stuck? Visit us at https://svelte.dev/chat                              |
|                                                                          |
|  7: pnpm run build # creates a new build folder with production version  |
|  8: pnpm run preview # creates a preview of the production version       |

Problemas de memoria (en Mac):

Aquí hay varios pasos que puede seguir para solucionar el problema de la memoria:

  1. Verificar memoria disponible:

    • Abra el Monitor de actividad desde el menú Apple.
    • Seleccione la pestaña "Memoria".
    • Mire la columna "Uso" para ver cuánta memoria se está utilizando actualmente.
  2. Cerrar aplicaciones innecesarias:

    • Asegúrese de no estar ejecutando ninguna aplicación innecesaria que pueda estar consumiendo memoria.
  3. Clear Cache:

    • A veces, borrar el caché puede ayudar a liberar memoria.
  4. Reinicie su computadora:

    • A veces, un simple reinicio puede resolver problemas de memoria.
  5. Buscar actualizaciones:

    • Asegúrese de que su sistema operativo y sus aplicaciones estén actualizados.
  6. Compruebe si hay pérdidas de memoria:

    • Utilice herramientas como Valgrind o Instruments para comprobar si hay pérdidas de memoria en su aplicación.
  7. Borrar recursos de Docker:

    • Ejecute el siguiente comando para eliminar todos los recursos de Docker no utilizados: docker system prune -a
  8. Límites de memoria del escritorio Docker Puede limitar el uso de recursos de Docker Desktop: Abrir el escritorio Docker Ir a Configuración/Preferencias Seleccione "Recursos" Reduzca el límite de memoria (por ejemplo, a 4-6 GB dependiendo de su sistema)

  9. Optimización XQuartz Salga y reinicie XQuartz Considere usar XQuartz solo cuando sea necesario en lugar de mantenerlo funcionando

  10. Soluciones a nivel de sistema: Borrar caché del sistema:

    sudo purge

    Verifique el uso del intercambio:

    sysctl vm.swapusage
  11. Soluciones a largo plazo:

    • Actualice su hardware:

    • Considere utilizar una máquina más potente con más RAM.

    • Optimice su aplicación:

    • Utilice herramientas de creación de perfiles de memoria para identificar y optimizar operaciones que consumen mucha memoria.

    • Monitorear y gestionar recursos:

    • Utilice herramientas comohtopoiostatpara monitorear los recursos del sistema y administrarlos de manera efectiva.

    • Configure scripts de limpieza automática para contenedores e imágenes de Docker.

Si el problema persiste, es posible que desees:

1. Monitor which application is consuming the most memory
2. Consider alternatives to running all these applications simultaneously
3. Use lightweight alternatives where possible (e.g., Podman instead of Docker Desktop)

100 - Introducción

VerREADME.md

200 - Requisitos

VerREADME.md

300 - Construyendo nuestra aplicación

VerREADME.md

400 - Conclusión

VerREADME.md