berichtenbord
CI/CD | |
Pakket | |
Meta |
Een prikbord waarop verzonden berichten worden weergegeven.
Samenvatting
Wij raden het gebruik van aanCursor.ioals de Integrated Development Environment (IDE) voor dit project.
Uw code op uw eigen systeem operationeel krijgen.
Opmerking: Zorg ervoor dat u voldoet aan devereisten.
-
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 gebruiken
pyproject.toml
om 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
.gitignore
om te voorkomen dat het aan git wordt vastgelegd.Alle instellingen zouden nu klaar moeten zijn, dus alles wat je hoeft te doen: 1)
$ hatch shell
2)(threagile-monitoring) $ cd src/threagile_monitoring
3)(threagile-monitoring) $ npm install
4)(threagile-monitoring) $ npm run build
Hierdoor ontstaat de
app.js
bestand - 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 shell
2)(threagile-monitoring) $ cd src/threagile_monitoring
3)(threagile-monitoring) $ npm install
4)(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_monitoring
2)(threagile-monitoring) $ python app.py
Test
Test de applicatie (frontend) op deze manier:
1)
$ hatch shell
2)(threagile-monitoring) $ cd src/threagile_monitoring
3)(threagile-monitoring) $ npm install
4)(threagile-monitoring) $ npm test
5)(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
-
Software-afhankelijkheden
-
Nieuwste releases
-
API-referenties
-
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(gebruikt
phpstan.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 naar
http://127.0.0.1:5000/
in uw webbrowser.Om tests uit te voeren, gebruikt u:
$ cd threagile-monitoring $ pip install pytest # optional $ pytest tests/
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
$ podman machine list
$ podman machine init
$ podman machine start
$ export DOCKER_HOST=unix://$HOME/.local/share/containers/podman/machine/podman.sock
$ 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:
- Frontend (Vue.js):
- Ga naar http://localhost:80 in uw browser
- Backend (fles):
- Ga naar http://localhost:8080/api/health in uw browser
- Moet een statuscheck-antwoord retourneren
- Database (PostgreSQL):
- Reeds actief en gezond (zoals weergegeven in de status)
- Toegankelijk op localhost:5432
- 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
Navigeer naarhttp://127.0.0.1:5000/docs
in uw webbrowser, of download de openapi.json vanhttp://127.0.0.1:5000/openapi.json
.
Laat een stuk gereedschap als Prometheus schrapenhttp://127.0.0.1:9464/metrics
.
NIEUW
Inhoudsopgave
pip install threagile-monitoring
- Dehatch-vcsversiebronplug-in bepaalt de projectversie met behulp van Git-tags
- Netjes gedefinieerd in een standalone
hatch.toml
- De
test
matrix maakt gebruik van deluikcontainersplug-in om elke omgeving binnen Docker-containers uit te voeren; gebruik is te zien in detestGitHub-workflow
- Alle bouwdoelen gebruiken dehatch-vcsbouw een hook-plug-in om een
_version.py
bestand 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
threagile-monitoring
wordt verspreid onder de voorwaarden van deMETlicentie.
=== END: UPDATE THIS SECTION FOR message board ===
-
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 |
Hier zijn verschillende stappen die u kunt nemen om het geheugenprobleem op te lossen:
-
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.
-
Sluit onnodige applicaties:
- Zorg ervoor dat u geen onnodige toepassingen uitvoert die mogelijk geheugen in beslag nemen.
-
Cache wissen:
- Soms kan het wissen van de cache geheugen helpen vrijmaken.
-
Start uw computer opnieuw op:
- Soms kan een eenvoudige herstart geheugenproblemen oplossen.
-
Controleer op updates:
- Zorg ervoor dat uw besturingssysteem en applicaties up-to-date zijn.
-
Controleer op geheugenlekken:
- Gebruik tools zoals Valgrind of Instruments om te controleren op geheugenlekken in uw applicatie.
-
Wis Docker-bronnen:
- Voer de volgende opdracht uit om alle ongebruikte Docker-bronnen te verwijderen: docker system prune -a
-
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)
-
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
-
Oplossingen op systeemniveau: Systeemcache wissen:
sudo purge
Controleer het swapgebruik:
sysctl vm.swapusage
-
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 zoals
htop
ofiostat
om 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)
ZienREADME.md
ZienREADME.md
ZienREADME.md
ZienREADME.md