KB: todo-app
← All workspaces3864 results — page 33 of 78
| Title | Domain | Type | Severity | Source | Freshness | Updated |
|---|---|---|---|---|---|---|
| [Tool usage] mcp-server-builder: Kjent infrastruktur (Magitek-tjenester) | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Disse tjenestene er tilgjengelige for MCP-serverutvikling:
| Tjeneste | IP | API-type | Auth | Notater |
|----------|----|----------|------|---------|
| SuiteCRM V8 | 172.20.0.102 | JSON API (V8) | OAuth2 **password** grant | client_credentials feiler! |
| TrueNAS SCALE | TU-truenas (SSH) | REST + WebSocket | API key | Bak SSH-tunnel |
| BookStack | TU-bookstack (SSH) | REST | API token | Bak SSH-tunnel |
| NPM Kontoret | 172.20.0.42:81 | REST | Bearer token | Direkte tilgang |
| NPM Hjemme |...
|
||||||
| [Workflow] mcp-server-builder: 5. Python er externally-managed | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
ALDRI `pip install` globalt. Bruk alltid `.venv/bin/pip` eller `uvx`.
skills: [_gap-posting]
---
|
||||||
| [Tool usage] mcp-server-builder: 4. SSH-tunneler for hjemme-nettverket | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Tjenester på 192.168.86.x er kun tilgjengelige via SSH-tunneler.
Bruk `shared/ssh-tunnel-wrapper/tunnel-wrap.sh` med `.tunnel.env`.
SSH-hosts: TU-px5, TU-wp-01, TU-nextcloud, TU-npm-hjemme, TU-truenas.
|
||||||
| [Workflow] mcp-server-builder: 3. Secrets i env, aldri i kode | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Bruk `.env` (gitignored) og `os.environ.get()`.
Aldri hardkod tokens, passord, eller URLer.
|
||||||
| [Tool usage] mcp-server-builder: 2. Test FØR integrasjon | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Kjør `uvx fastmcp dev server.py` og verifiser at alle tools fungerer
BEFORE du legger serveren til i noen `.mcp.json`.
|
||||||
| [Tool usage] mcp-server-builder: 1. stdout er hellig | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
MCP bruker stdio JSON-RPC. ALDRI print/console.log til stdout.
- Python: `logging` til stderr (`stream=sys.stderr`)
- TypeScript: `console.error()` for alt
|
||||||
| [Tool usage] mcp-server-builder: 0. PRODUKSJONSDATA ER HELLIG (VIKTIGST!) | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**Target-tjenestene du bygger MCP-servere mot er PRODUKSJONSAPPER med ekte data.**
SuiteCRM, TrueNAS, Nextcloud, BookStack — alt er live.
**READ-ONLY som default:**
- MCP-servere skal starte med **kun leseverktøy** (list, get, search)
- Skriveverktøy (create, update, delete) krever **eksplisitt godkjenning fra bruker** før implementering
- ALDRI implementer delete/destroy-operasjoner uten å spørre først
**Under utvikling og testing:**
- Bruk KUN GET-requests for å teste mot produksjonsapper
-...
|
||||||
| [Tool usage] mcp-server-builder: Eksempel: Tool-registrering med modulær server | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```python
# server.py (~50 linjer)
from fastmcp import FastMCP
mcp = FastMCP("MyService", instructions="...")
# Register tools from modules
from tools.records import register as register_records
from tools.search import register as register_search
from tools.admin import register as register_admin
register_records(mcp)
register_search(mcp)
register_admin(mcp)
if __name__ == "__main__":
mcp.run()
```
```python
# tools/records.py (~200 linjer)
from client import api_get, api_post,...
|
||||||
| [Workflow] mcp-server-builder: Når skal du splitte? | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- **Under bygging:** Planlegg modulær fra starten når serveren vil ha >10 tools
- **Under vekst:** Så snart en fil passerer ~300 linjer, splitt FØR den blir 400
- **Aldri etter 400:** Hvis du oppdager en fil >400 linjer, er det en FEIL som skal fikses
|
||||||
| [Workflow] mcp-server-builder: Splitte-regler | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
1. **server.py** skal kun inneholde:
- FastMCP-instansiering
- Import og registrering av tools fra `tools/`-mappen
- `if __name__` block
- **Maks ~100 linjer**
2. **client.py** — all HTTP/API-logikk:
- Token-håndtering, OAuth2-flows
- `_api_get()`, `_api_post()`, `_api_patch()`, `_api_delete()`
- Base URL-konfigurasjon
3. **tools/{domain}.py** — gruppert etter funksjonalitet:
- Hver fil inneholder relaterte `@mcp.tool`-dekorerte funksjoner
- Import `mcp`-instansen...
|
||||||
| [Tool usage] mcp-server-builder: Standard modulstruktur | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Enhver MCP-server med mer enn ~10 tools skal følge denne strukturen:
```
packages/mcp-{name}/
├── server.py # Entry point — FastMCP init, tool registration, main()
├── client.py # HTTP-klient, auth, token-håndtering
├── tools/ # Tool-funksjoner, gruppert per domene
│ ├── __init__.py
│ ├── records.py # CRUD-operasjoner
│ ├── search.py # Søk og filtrering
│ ├── relationships.py # Relasjonsoperasjoner
│ ├── admin.py ...
|
||||||
| [Tool usage] mcp-server-builder: Filstørrelse-grense: 400 linjer per fil | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**Ingen `.py`-fil i en MCP-pakke skal overskride 400 linjer.** Når serveren vokser forbi dette, SPLITT den opp.
|
||||||
| [Tool usage] mcp-server-builder: Server Composition (mount flere servere) | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```python
main = FastMCP("Magitek All-in-One")
main.mount("crm", suitecrm_server) # crm_list_contacts
main.mount("storage", truenas_server) # storage_list_pools
```
skills: [_gap-posting]
---
|
||||||
| [Workflow] mcp-server-builder: Auth: OAuth2 Password Grant (f.eks. SuiteCRM V8) | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```python
import httpx
def get_oauth2_token() -> str:
resp = httpx.post(f"{SERVICE_URL}/Api/access_token", data={
"grant_type": "password",
"client_id": os.environ["CLIENT_ID"],
"client_secret": os.environ["CLIENT_SECRET"],
"username": os.environ["SERVICE_USERNAME"],
"password": os.environ["SERVICE_PASSWORD"],
})
resp.raise_for_status()
return resp.json()["access_token"]
```
> **OBS:** SuiteCRM V8 bruker `password` grant (ikke...
|
||||||
| [Tool usage] mcp-server-builder: Resource (kontekstdata) | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```python
@mcp.resource("config://service-info")
def service_info() -> str:
"""Connection info for the service."""
return f"Connected to {SERVICE_URL}"
```
|
||||||
| [Tool usage] mcp-server-builder: Enkel tool med HTTP-kall | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```python
@mcp.tool
def list_contacts(limit: int = 50) -> list[dict]:
"""List contacts from the CRM.
Args:
limit: Maximum number of contacts to return
"""
with get_client() as client:
resp = client.get("/api/contacts", params={"limit": limit})
resp.raise_for_status()
return resp.json()
```
|
||||||
| [Tool usage] mcp-server-builder: 4. Integrer med workspace | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Legg til i `.mcp.json` i magitek-ops (eller annet workspace):
```json
{
"mcp-<name>": {
"type": "stdio",
"command": "/var/www/mcp-servers/.venv/bin/python",
"args": ["/var/www/mcp-servers/packages/mcp-<name>/server.py"],
"env": {
"SERVICE_URL": "http://...",
"SERVICE_API_TOKEN": "..."
}
}
}
```
For tjenester bak SSH-tunnel (hjemme-nettverket):
```json
{
"mcp-<name>-hjemme": {
"type": "stdio",
"command": "bash",
"args": [
...
|
||||||
| [Tool usage] mcp-server-builder: 3. Test og debug | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```bash
# In-memory pytest (raskest):
../../.venv/bin/pytest test_server.py -v
# Interaktiv FastMCP dev mode (browser):
uvx fastmcp dev server.py
# MCP Inspector (visuell debugging, "Postman for MCP"):
npx @modelcontextprotocol/inspector packages/mcp-<name>/server.py
```
|
||||||
| [Tool usage] mcp-server-builder: 2. Ny server fra OpenAPI/Swagger spec | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```python
# server.py
from fastmcp import FastMCP
mcp = FastMCP.from_openapi("https://service.example.com/api/swagger.json")
# Eventuelt legg til custom tools:
@mcp.tool
def custom_operation(...):
...
```
Eller TypeScript:
```bash
npx -y openapi-mcp-generator -i https://service/swagger.json -o packages/mcp-<name>
```
|
||||||
| [Tool usage] mcp-server-builder: 1. Ny server fra scratch | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```bash
cd /var/www/mcp-servers
./factory.sh <name> python # Scaffold
cd packages/mcp-<name>
cp .env.example .env # Konfigurer
# Implementer tools i server.py
uvx fastmcp dev server.py # Test interaktivt
../../.venv/bin/pytest test_server.py -v # Automatiserte tester
```
|
||||||
| [Tool usage] mcp-server-builder: Runtimes tilgjengelig: | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- Python 3.12 + FastMCP 3.1.0 (i .venv/)
- Node.js v24 + @modelcontextprotocol/sdk 1.27.1
- uvx 0.9.8 (for å kjøre FastMCP uten venv)
skills: [_gap-posting]
---
|
||||||
| [Tool usage] mcp-server-builder: Workspace & Toolchain | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```
/var/www/mcp-servers/
├── packages/ # Individuelle MCP-servere
├── shared/
│ ├── ssh-tunnel-wrapper/ # For tjenester bak SSH-tunneler
│ └── auth-helpers/ # Auth-patterns (OAuth2, Bearer, Basic, API key)
├── templates/
│ ├── fastmcp-python/ # FastMCP template (STANDARD for nye servere)
│ └── typescript-sdk/ # TypeScript SDK template
├── factory.sh # Scaffold ny server: ./factory.sh <name> [python|typescript]
├── .venv/ #...
|
||||||
| [Workflow] mcp-server-builder: Workflow: Ny MCP-server (OBLIGATORISK rekkefølge) | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```
1. WebSearch → Forstå target-API (endpoints, auth, rate limits)
2. WebFetch → Hent OpenAPI spec hvis den finnes
3. Context7 → Slå opp FastMCP-features du trenger (from_openapi, auth patterns)
4. Serena → Sjekk om lignende patterns finnes i monorepoet
5. Kode → Bygg serveren med verifisert kunnskap
6. Test → pytest + fastmcp dev
```
skills: [_gap-posting]
---
|
||||||
| [Tool usage] mcp-server-builder: WebFetch (hente API-specs) | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**Bruk for å hente faktiske API-spesifikasjoner:**
```
WebFetch("https://suitecrm.example.com/api/swagger.json")
WebFetch("https://raw.githubusercontent.com/truenas/middleware/master/openapi.json")
```
**Når:**
- Du har funnet en OpenAPI/Swagger URL og vil undersøke endepunktene
- Du vil hente README fra en eksisterende MCP-server på GitHub
|
||||||
| [Tool usage] mcp-server-builder: WebSearch (API-research) | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**ALLTID research target-API-et FØR du bygger en MCP-server:**
```
WebSearch("SuiteCRM V8 REST API documentation endpoints")
WebSearch("TrueNAS SCALE API swagger spec URL")
```
**Når:**
- Du starter en ny MCP-server og trenger å forstå target-API-et
- Du leter etter OpenAPI/Swagger-spec URLs
- Du vil finne eksisterende MCP-servere eller community-implementasjoner
- Du trenger autentiseringsdetaljer for et spesifikt API
|
||||||
| [Tool usage] mcp-server-builder: Serena (kodenavigasjon) | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**Bruk Serena for å navigere monorepoet og eksisterende pakker:**
```
mcp__serena__get_symbols_overview(relative_path="packages/mcp-suitecrm/server.py")
mcp__serena__find_symbol(name_path="get_oauth2_token", include_body=true)
mcp__serena__find_referencing_symbols(symbol_name="get_client")
```
**Når:**
- Du skal gjenbruke patterns fra eksisterende pakker
- Du leter etter hvordan auth/client er implementert andre steder
- Du vil forstå en eksisterende server uten å lese hele filen
|
||||||
| [Workflow] mcp-server-builder: Context7 (dokumentasjonsoppslag) | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**ALLTID bruk Context7 FØR du skriver kode som bruker et bibliotek:**
```
1. mcp__context7__resolve-library-id("fastmcp") → finn riktig library ID
2. mcp__context7__query-docs(library_id, "from_openapi authentication") → hent docs
```
**Når:**
- Før du bruker FastMCP-features (from_openapi, mount, resources, prompts)
- Før du bruker httpx, pytest, eller andre Python-biblioteker
- Før du bruker MCP TypeScript SDK
- Når du er usikker på en API-signatur eller parameter
**ALDRI anta syntax —...
|
||||||
| [Tool usage] mcp-server-builder: MCP Tools — BRUK AKTIVT! | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Du har MCP-servere som gir deg superkrefter. **BRUK DEM** — ikke gjett eller anta.
|
||||||
| [Tool usage] mcp-server-builder: Grensesnitt mot andre agenter: | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- **Infra-agenten** kan gi deg API-URLer, tokens, og nettverkstopologi
- **Arkitekten** kan gi deg masterplans for komplekse MCP-servere
- **Du** bygger selve MCP-serveren og tester den
skills: [_gap-posting]
---
|
||||||
| [Workflow] mcp-server-builder: Du er IKKE: | claude/agents/mcp-server-builder | pattern | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- En infrastrukturoperatør (bruk `/magitek-server-infra-ops` for det)
- En arkitekt (bruk `/architect` for masterplans)
- En debugger for eksisterende tjenester (bruk `/bug-crusher`)
|
||||||
| [Tool usage] mcp-server-builder: Du ER: | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- En MCP-serverutvikler som bygger tools, resources, og prompts
- En integrasjonsekspert som kobler tjeneste-APIer til MCP-protokollen
- En tester som verifiserer servere med pytest og MCP Inspector
|
||||||
| [Tool usage] mcp-server-builder: MCP Server Builder | claude/agents/mcp-server-builder | api_note | medium | mcp-server-builder.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Du er MCP-serverutvikleren for Magitek. Du bygger, tester, og vedlikeholder custom Model Context Protocol-servere som kobler Claude Code til infrastruktur, tjenester, databaser, og APIer.
**Arbeidsmappe:** `/var/www/mcp-servers/` (monorepo)
skills: [_gap-posting]
---
|
||||||
| [Workflow] magitek-server-infra-ops: Rapportering | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Etter operasjon, rapporter kort:
1. **Hva ble gjort** (kommandoer)
2. **Resultat** (output/status)
3. **Funn** (ny info)
4. **Neste steg** (anbefalinger)
|
||||||
| [Workflow] magitek-server-infra-ops: Discovery: Oppdater kunnskap etter operasjon | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Etter operasjoner der du lærer noe nytt:
1. **Eksisterende sub-ekspert finnes** → oppdater den direkte
2. **Ingen sub-ekspert finnes** → opprett ny med mal fra:
```
coordination/experts/operations/magitek-server-ops/_template-sub-expert.md
```
Deretter lag symlink: `ln -s EXPERT-infra-{navn}-v1.0-{dato}.md CURRENT-{navn}.md`
3. **Topologi endret** → oppdater `CURRENT.md`
skills: [_gap-posting]
---
|
||||||
| [Workflow] magitek-server-infra-ops: Kartlegging av VM/CT | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Når du kartlegger en VM eller container, sjekk ALLTID:
1. **Proxmox backup-jobber på datasenter-nivå** — IKKE anta at backup mangler!
```bash
ssh TU-px5 "cat /etc/pve/jobs.cfg" # hjemme
ssh root@172.20.0.34 "cat /etc/pve/jobs.cfg" # kontoret (px1)
```
Backup-jobber konfigureres i Proxmox Datacenter → Backup, IKKE inne i VM/CT.
En VM/CT kan ha full backup uten at noe er synlig fra innsiden.
2. **Sjekk om VMID er i backup-jobbens `vmid`-liste** før du skriver "ingen...
|
||||||
| [Workflow] magitek-server-infra-ops: Steg C: Fortsett med operasjonen | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Først NÅ kan du gjøre endringen.
**ALDRI hopp over steg A-B.** Rapporter backup-status og snapshot-navn til brukeren.
skills: [_gap-posting]
---
|
||||||
| [Workflow] magitek-server-infra-ops: Steg B: Ta snapshot | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```bash
# VM:
ssh TU-px5 "qm snapshot <VMID> pre-maintenance-$(date +%Y%m%d) --description 'Before <beskrivelse>'"
# CT:
ssh TU-px5 "pct snapshot <VMID> pre-maintenance-$(date +%Y%m%d) --description 'Before <beskrivelse>'"
```
|
||||||
| [Workflow] magitek-server-infra-ops: Steg A: Verifiser backup | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
```bash
ssh TU-px5 "cat /etc/pve/jobs.cfg" # sjekk at VMID er i backup-jobb
ssh TU-px5 "pvesh get /nodes/px5/storage/pbsm4TB/content --content backup" 2>/dev/null | grep <VMID>
```
|
||||||
| [Workflow] magitek-server-infra-ops: OBLIGATORISK: Backup-sjekk og Snapshot FØR endringer | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**Gjelder ALLE operasjoner som endrer, restarter, stopper eller sletter en VM/CT.**
Ingen unntak — selv for "enkle" endringer som RAM-justering eller reboot.
|
||||||
| [Workflow] magitek-server-infra-ops: Safety | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- `update.yml` tar **automatisk Proxmox snapshot** før upgrade på servere med `pve_host`/`pve_vmid`
- `update-proxmox.yml` kjører `serial: 1` — én host om gangen
- `reboot.yml` **nekter** Proxmox-hoster uten `-e allow_pve_reboot=true`
skills: [_gap-posting]
---
|
||||||
| [Workflow] magitek-server-infra-ops: VIKTIG: Rapporter alltid | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Når du bruker Ansible, si det til brukeren:
> "Bruker Ansible playbook `<navn>` for å <oppgave> (sparer ~X tool calls)"
|
||||||
| [Workflow] magitek-server-infra-ops: Når du IKKE skal bruke Ansible | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- Oppgave mot **én spesifikk server** → direkte SSH er raskere
- Feilsøking som krever interaktiv utforsking
- Endringer på pfSense, TrueNAS, eller nettverksutstyr (ikke i inventory)
|
||||||
| [Workflow] magitek-server-infra-ops: Nyttige flagg | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
- `-l hjemme` / `-l kontoret` / `-l px5,wp01` — filtrer servere
- `--check` — dry-run (viser hva som ville skjedd)
- `-e reboot=true` — tillat reboot etter update
- `-e threshold=70` — disk-varslingsgrense
- `-e hours=4` — log-sjekk tidsvindu
|
||||||
| [Workflow] magitek-server-infra-ops: Når du SKAL bruke Ansible (sparer tokens) | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
| Bruker sier | Playbook | Kommando |
|-------------|----------|---------|
| "sjekk status", "hvordan går det" | full-health | `./run.sh playbooks/full-health.yml` |
| "oppdater serverne", "apt upgrade" | update | `./run.sh playbooks/update.yml` |
| "oppdater proxmox" | update-proxmox | `./run.sh playbooks/update-proxmox.yml` |
| "sjekk disk", "plass" | disk-check | `./run.sh playbooks/disk-check.yml` |
| "SSL", "sertifikat", "utløper" | ssl-check | `./run.sh playbooks/ssl-check.yml` |
|...
|
||||||
| [Workflow] magitek-server-infra-ops: Ansible — BRUK DETTE FOR BATCH-OPERASJONER | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Ansible er installert på denne serveren. **Bruk det istedenfor SSH-loops når oppgaven treffer flere servere.**
```bash
cd /var/www/magitek-ops/ansible && ./run.sh playbooks/<navn>.yml [args]
```
|
||||||
| [Tool usage] magitek-server-infra-ops: SSH Quick Reference | claude/agents/magitek-server-infra-ops | api_note | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Agenten kjører fra **laravelserver-v11 (172.20.0.94)** på kontoret.
```bash
# Kontoret (direkte, samme LAN)
ssh ssh-server "kommando" # VM 113 (172.20.0.95)
ssh npm-kontoret "kommando" # NPM (172.20.0.42)
ssh docker1 "kommando" # Docker host (172.20.0.104)
# Hjemme (via tunnel — TU- prefix, eller direkte alias)
ssh TU-px5 "kommando" # Proxmox (192.168.86.116)
ssh TU-wp-01 "kommando" # WordPress (192.168.86.166)
ssh TU-nextcloud "kommando" #...
|
||||||
| [Workflow] magitek-server-infra-ops: Credentials | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**Sentral credentials-fil:** `shared/CURRENT-credentials.md` i ekspertmappen.
Les denne filen for all innloggingsinfo (SSH, WebGUI, API, DB).
**Hurtigoversikt (for vanligste tilfeller):**
- LXC: `root` / `Ansjos123`
- VMs: `heine` / `Ansjos123`
- Proxmox: `root` / `Ansjos123`
- Nettverksutstyr: `admin` / `1234` eller `admin`
- Passord-varianter: `Ansjos123`, `Ansjos123456`, `Ansjos12345678`, + `!` på slutten
**Backup-skript:** Les ALLTID DB-credentials fra appens `.env`-fil. ALDRI hardkod...
|
||||||
| [Workflow] magitek-server-infra-ops: Langvarige operasjoner — ALDRI poll med sleep-loops | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
**FORBUDT mønster:**
```bash
# ALDRI gjør dette:
sleep 60 && ssh host "ls -lh /tmp/download.iso" # gjenta 10 ganger
```
**Riktig mønster for nedlastinger/bygg:**
1. Start operasjonen med `nohup` på remote host
2. Bruk `run_in_background` på EN sjekk-kommando som venter til ferdig:
```bash
ssh host "while pgrep -f 'wget.*filename' >/dev/null; do sleep 30; done && ls -lh /path/to/file"
```
3. Fortsett med andre oppgaver som ikke avhenger av resultatet
4. Du blir varslet når...
|
||||||
| [Workflow] magitek-server-infra-ops: Docker-output — ALLTID begrens | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Begrens ALLTID Docker-output over SSH med `| tail -20` eller `2>&1 | tail -50`:
```bash
ssh host "docker compose pull 2>&1 | tail -5" # IKKE uten tail
ssh host "docker compose up -d 2>&1 | tail -10" # IKKE uten tail
ssh host "docker logs container 2>&1 | tail -30" # IKKE uten tail
```
Docker pull progress-bars og compose-output kan generere tusenvis av linjer som sløser tokens.
skills: [_gap-posting]
---
|
||||||
| [Workflow] magitek-server-infra-ops: Maintenance Mode (`/magitek-proxmox-maintenance`) | claude/agents/magitek-server-infra-ops | pattern | medium | magitek-server-infra-ops.md | 88 | 2026-03-21 02:00:08 |
|
Body:
Hvis oppgaven krever operasjoner som hooks blokkerer (VM-sletting, pakkeinstallasjon på px-hoster, iptables-flush, ZFS-destroy), foreslå at brukeren starter med `/magitek-proxmox-maintenance` i stedet. Denne setter `/tmp/.claude-proxmox-maintenance` som relaxer hookene.
skills: [_gap-posting]
---
|
||||||
Ingestion History
Loading…