Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,17 @@
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"dev": "tsx watch src/index.ts",
"compile": "tsc",
"build": "tsc",
"start": "node dist/index.js",
"start": "pnpm run build && node dist/index.js",
"lint": "eslint ."
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "module",
"dependencies": {
"@apollo/server": "^5.5.1",
"dotenv": "^18.0.5",
Expand Down
4 changes: 4 additions & 0 deletions db/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
VM_USER=brukernavn
VM_HOST=it2810-02.idi.ntnu.no
TUNNEL_PORT=5433
DATABASE_URL=postgresql://gameapp:PASSORD@localhost:5433/gamesdb
23 changes: 23 additions & 0 deletions db/database-connect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

#### Database-connect

Scripts for å koble seg til database ligger i `<root>/scripts`.

###### db-tunnel.sh

Spesifikt inneholder denne `db-tunnel.sh` som oppretter en ssh tunnel til vm over porten `5432`. Dette gjør at all trafikk som normalt går til `localhost:5432` rutes til postgres på serveren, slik at vi slipper å laste ned hele databasen på hver av pc-ene våre.

`db-tunnel.sh` scriptet er lagt inn som et script i `<root>/package.json`, og kan kjøres med `pnpm db:tunnel`.

###### test-select.sh

Det andre scriptet er `test-select.sh`, dette er et enkelt script som kjører en spørring mot en database på `localhost:5432`. Hvis tunnellen fungerer skal dette returnere dette:

```
count
--------
120067
(1 row)
```

For å kunne kjøre dette scriptet trenger man postgres-client. Dette kan lastes ned med `sudo apt update && sudo apt install postgresql-client` på debian/ubuntu, og med `brew install libpq` på mac.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
"lint": "pnpm -r lint",
"test": "pnpm -r test",
"format": "prettier --write .",
"format:check": "prettier --check ."
"format:check": "prettier --check .",
"db:tunnel": "./scripts/db-tunnel.sh"
},
"devDependencies": {
"prettier": "^3.9.9"
Expand Down
15 changes: 15 additions & 0 deletions scripts/db-tunnel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -euo pipefail

cd "$(dirname "$0")/.."
set -a
source db/.env
set +a

if lsof -i ":$TUNNEL_PORT" >/dev/null 2>&1; then
echo "Port $TUNNEL_PORT er i bruk, tunnelen kjører antakelig fra før..."
exit 0
fi

echo "Tunnel: localhost:$TUNNEL_PORT -> $VM_HOST:5432 (Ctrl+C for å stoppe)"
ssh -N -L "$TUNNEL_PORT:localhost:5432" "$VM_USER@$VM_HOST"
2 changes: 2 additions & 0 deletions scripts/test-select.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
psql -h localhost -p 5433 -U gameapp -d gamesdb -c "SELECT count(*) FROM games;"
Loading