Skip to content

Latest commit

 

History

History
447 lines (305 loc) · 18.6 KB

README.nl.md

File metadata and controls

447 lines (305 loc) · 18.6 KB

berichtenbord

Berichtenbord

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

Een prikbord waarop verzonden berichten worden weergegeven.

Samenvatting

GAAT

Wij raden het gebruik van aanCursor.ioals de Integrated Development Environment (IDE) voor dit project.

Server

Uw code op uw eigen systeem operationeel krijgen.

Opmerking: Zorg ervoor dat u voldoet aan devereisten.

  1. Installatieproces:

    $ 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

    OPMERKING: De moderne manier is om te gebruikenpyproject.tomlom afhankelijkheden te installeren, niet ```requirements.txt. Daarom mag er geen require.txt-bestand zijn.

    === START: UPDATE DEZE SECTIE VOOR message board ===

    **Verpak uw site met webpack:**Zodra u een website heeft die goed genoeg is om te gebruiken, moet u de applicatie verpakken met webpack. Deze pakketmap wordt vermeld in.gitignoreom te voorkomen dat het aan git wordt vastgelegd.

    Alle instellingen zouden nu klaar moeten zijn, dus alles wat je hoeft te doen: 1)$ hatch shell2)(threagile-monitoring) $ cd src/threagile_monitoring3)(threagile-monitoring) $ npm install4)(threagile-monitoring) $ npm run build

    Hierdoor ontstaat deapp.jsbestand - dat alle componenten bevat - in/src/threagile_monitoring/static/js/.

    Ontwikkeling met webpack:Als u uw website nog aan het ontwikkelen bent, in aafzonderlijke terminalsessie, nadat u het bovenstaande installatieproces heeft gevolgd, doet u het volgende: 1)$ hatch shell2)(threagile-monitoring) $ cd src/threagile_monitoring3)(threagile-monitoring) $ npm install4)(threagile-monitoring) $ npm run watch

    Dit zal - in de afzonderlijke terminalsessie (d.w.z.background) - laad voortdurend de wijzigingen die u aanbrengt in de juiste bestanden, terwijl u door kunt gaan met het aanbrengen van die wijzigingen - in de initiële terminalsessie (d.w.z.foreground). Je hoeft dus niet na elke bewerking je bronnen opnieuw op te bouwen, dit gebeurt automatisch!

    Om de wijzigingen te zien, hoeft u alleen maar uw navigator op te slaan en opnieuw te laden (meestal met F5).

    Zorg ervoor dat u uw webpagina als volgt uitvoert tijdens het testen met backend-functies: 1)(threagile-monitoring) $ cd src/threagile_monitoring2)(threagile-monitoring) $ python app.py

    Test

    Test de applicatie (frontend) op deze manier:

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

    Loop:

    Als u niet aan het ontwikkelen bent, voert u de applicatie (backend en frontend tegelijkertijd) op deze manier uit:

    $ hatch run python src/threagile_monitoring/app.py # starts the app 
    
  2. Software-afhankelijkheden

  3. Nieuwste releases

  4. API-referenties

  5. Bouwen en testen:

    Om uw code samen te stellen, gebruikt u:

    $ cd threagile-monitoring
    $ hatch build

    Om AI te gebruiken voor beoordelingen van pull-aanvragen, gebruikt u:

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

    Om de applicatie uit te voeren, gebruikt u:

    Linux:

    $ export SECRET_KEY="secret"

    Ramen:

    $ setx SECRET_KEY secret

    Dan:

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

    Navigeer vervolgens naarhttp://127.0.0.1:5000/in uw webbrowser.

    Om tests uit te voeren, gebruikt u:

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

Dokwerker

OPMERKING: Voor efficiënt gebruik van hulpbronnen gebruiken weIngetogenin plaats vanDokwerker!

Voeg deze regels toe aan je ~/.zshrc of ~/.bashrc:

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

Laad vervolgens uw shell-configuratie opnieuw:

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

Install podman-compose via pip:

$ pip install podman-compose

Controleer de installatie:

$ podman compose --version

Controleer of er Podman-machines bestaan

$ podman machine list

Als er geen machine bestaat, maak er dan een

$ podman machine init

Start de Podman-machine

$ podman machine start

Stel het socketpad in

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

Controleer of Podman werkt

$ podman ps

Start uw Docker-containers met:

$ 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

Hierdoor worden drie containers geactiveerd:

  • message-board-server-dev (poort 8080:5000)
  • message-board-frontend-dev (poort 80:3000)
  • message-board-database-dev (poort 5432:5432)
  • message-board-db-gui-dev (poort 5444:5444)

Alle vier de containers draaien met succes. Laten we elke service verifiëren:

  1. Frontend (Vue.js):
  • Ga naar http://localhost:80 in uw browser
  1. Backend (fles):
  • Ga naar http://localhost:8080/api/health in uw browser
  • Moet een statuscheck-antwoord retourneren
  1. Database (PostgreSQL):
  • Reeds actief en gezond (zoals weergegeven in de status)
  • Toegankelijk op localhost:5432
  1. CloudBeaver (DB-GUI):
  • Ga naar http://localhost:8978
  • Eerste installatie:
  • Maak beheerdersreferenties aan wanneer daarom wordt gevraagd
  • Gebruikersnaam: cbadmin
  • Wachtwoord: S3cr3tPwd
  • Klik op "Nieuwe verbinding"
  • Kies "PostgreSQL"
  • Voer verbindingsgegevens in:
  • Gastheer: database
  • Haven: 5432
  • Database: message_board_db
  • Gebruikersnaam: db-user-dev
  • Wachtwoord: db-wachtwoord-dev

DbVisualizer zou verbinding moeten maken met uw PostgreSQL-database met behulp van deze inloggegevens:

Server: database Haven: 5432 Database: message_board_db Gebruikersnaam: db-user-dev Wachtwoord: db-wachtwoord-dev

Als DbVisualizer niet automatisch start, kunt u de containerlogboeken controleren:

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

API-documentatie

Navigeer naarhttp://127.0.0.1:5000/docsin uw webbrowser, of download de openapi.json vanhttp://127.0.0.1:5000/openapi.json.

Statistieken

Laat een stuk gereedschap als Prometheus schrapenhttp://127.0.0.1:9464/metrics.

NIEUW

Inhoudsopgave

Installatie

pip install threagile-monitoring

Versiebron

  • Dehatch-vcsversiebronplug-in bepaalt de projectversie met behulp van Git-tags

Omgevingen

  • Netjes gedefinieerd in een standalonehatch.toml
  • Detestmatrix maakt gebruik van deluikcontainersplug-in om elke omgeving binnen Docker-containers uit te voeren; gebruik is te zien in detestGitHub-workflow

Bouwen

  • Alle bouwdoelen gebruiken dehatch-vcsbouw een hook-plug-in om een_version.pybestand zodat de versie tijdens runtime kan worden gebruikt
  • Wielen gebruiken dehatch-mypycbouw hook-plug-in om eerst alle code mee te compilerenMijnpyc
  • DebouwenGitHub-workflow laat zien hoe u:
    • gebruikcibuildwielom binaire wielen voor elk platform te distribueren
    • gebruik deappbuild target om zelfstandige distributies voor elk platform te bouwen

Licentie

threagile-monitoringwordt verspreid onder de voorwaarden van deMETlicentie.

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

Frontend

  1. Maak de SvelteKit-applicatie:

    $ 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

Volgende stappen:

│  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": "pnpm@9.14.4",                                     |
│  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       |

Geheugenproblemen (op Mac):

Hier zijn verschillende stappen die u kunt nemen om het geheugenprobleem op te lossen:

  1. Controleer beschikbaar geheugen:

    • Open de Activity Monitor vanuit het Apple-menu.
    • Selecteer het tabblad "Geheugen".
    • Kijk naar de kolom 'Gebruik' om te zien hoeveel geheugen momenteel wordt gebruikt.
  2. Sluit onnodige applicaties:

    • Zorg ervoor dat u geen onnodige toepassingen uitvoert die mogelijk geheugen in beslag nemen.
  3. Cache wissen:

    • Soms kan het wissen van de cache geheugen helpen vrijmaken.
  4. Start uw computer opnieuw op:

    • Soms kan een eenvoudige herstart geheugenproblemen oplossen.
  5. Controleer op updates:

    • Zorg ervoor dat uw besturingssysteem en applicaties up-to-date zijn.
  6. Controleer op geheugenlekken:

    • Gebruik tools zoals Valgrind of Instruments om te controleren op geheugenlekken in uw applicatie.
  7. Wis Docker-bronnen:

    • Voer de volgende opdracht uit om alle ongebruikte Docker-bronnen te verwijderen: docker system prune -a
  8. Docker Desktop-geheugenlimieten U kunt het bronnengebruik van Docker Desktop beperken: Open Docker-bureaublad Ga naar Instellingen/Voorkeuren Selecteer "Bronnen" Verlaag de geheugenlimiet (bijvoorbeeld naar 4-6 GB, afhankelijk van uw systeem)

  9. XQuartz-optimalisatie Sluit XQuartz af en start het opnieuw Overweeg om XQuartz alleen te gebruiken als dat nodig is, in plaats van het draaiende te houden

  10. Oplossingen op systeemniveau: Systeemcache wissen:

    sudo purge
    

    Controleer het swapgebruik:

    sysctl vm.swapusage
    
  11. Langetermijnoplossingen:

    • Upgrade uw hardware:

    • Overweeg een krachtigere machine met meer RAM te gebruiken.

    • Optimaliseer uw applicatie:

    • Gebruik geheugenprofileringstools om geheugenintensieve bewerkingen te identificeren en te optimaliseren.

    • Middelen bewaken en beheren:

    • Gebruik hulpmiddelen zoalshtopofiostatom systeembronnen te bewaken en deze effectief te beheren.

    • Stel automatische opschoonscripts in voor Docker-containers en afbeeldingen.

Als het probleem zich blijft voordoen, kunt u het volgende doen:

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 - Inleiding

ZienREADME.md

200 - Vereisten

ZienREADME.md

300 - Onze applicatie bouwen

ZienREADME.md

400 - Conclusie

ZienREADME.md