46elks Workshop 2026

Bygg med AI

Välj ett LLM-kodverktyg, få en egen server, peka din domän — och bygg något. Allt du behöver finns här.

Välj ditt verktyg

Alla dessa kan hjälpa dig bygga en hel webbsida från en prompt.

~$

Claude Code

Anthropics CLI-verktyg. Kör i terminalen, läser och skriver filer direkt, kör kommandon. Perfekt för server-arbete.

npm install -g @anthropic-ai/claude-code

Skapa ett Claude-konto om du inte har ett.

Rekommenderat

OpenAI Codex CLI

OpenAIs terminal-agent. Liknar Claude Code men använder GPT-modeller. Bra alternativ om du gillar OpenAI.

npm install -g @openai/codex
Terminal
{ }

Cursor / Windsurf

AI-drivna kodeditors med inbyggd chat, autocomplete och agent-läge. Bra om du vill ha en grafisk editor.

cursor.com / windsurf.com
Editor
Tips: Om du aldrig använt ett LLM-kodverktyg innan — börja med Claude Code. Det fungerar direkt i terminalen och kan SSH:a in till din server. Kör claude i terminalen efter installation.

Hämta din server

Du får en egen Ubuntu-server med nginx, Node.js, Python och certbot förinstallerat. Verifiera med SMS så sätter vi upp den automatiskt.

Kör cat ~/.ssh/id_ed25519.pub för att hitta den. Kan även läggas till efter registrering.

Din server inkluderar:

2 vCPU + 4 GB RAM
40 GB SSD
Ubuntu 24.04 LTS
nginx webbserver
Node.js 22 LTS
Python 3 + pip
certbot för SSL
ufw brandvägg

Anslut via SSH

När du har din servers IP-adress, anslut såhär:

1

Öppna terminalen och SSH:a in

ssh root@DIN_IP_ADRESS

Acceptera fingerprint med yes första gången.

2

Kontrollera att allt fungerar

# Kolla nginx
curl localhost

# Kolla Node.js
node --version

# Kolla Python
python3 --version
3

Starta ditt LLM-verktyg på servern

# Claude Code (om du redan installerat)
claude

# Eller installera det
npm install -g @anthropic-ai/claude-code
claude

Nu kan ditt LLM-verktyg direkt redigera filer på servern!

Hur din server hänger ihop

Du behöver inte kunna alla kommandon — det fixar ditt LLM-verktyg. Men det hjälper att förstå hur bitarna hänger ihop, så du vet vad du ska be om.

1

Bara HTML? Lägg filerna rätt

Om du bara har en enkel hemsida utan backend kan du säga:

"Jag har en HTML-sida, en CSS-fil och lite JavaScript. Lägg dem så att de syns när man besöker min servers IP-adress."

LLM:et lägger filerna i /var/www/html/ och de syns direkt.

2

App med backend? Berätta vad den gör

Om din app har en backend (Python, Node.js, etc) behöver den en port — tänk det som en dörr in till appen. Besökare ska inte behöva veta vilken dörr, så det finns en mellanhand som heter nginx som tar hand om det.

"Min Python-app körs och lyssnar på port 3000. Gör så att besökare som går till min domän automatiskt skickas till appen."

LLM:et sätter då upp nginx som mellanhand: besökare → nginx → din app.

3

Håll appen igång

Om du stänger terminalen dör din app. Be LLM:et fixa det:

"Gör så att min app startar automatiskt, även efter en omstart av servern. Jag vill inte behöva starta den manuellt."

LLM:et sätter upp antingen PM2 (vanligt för Node.js) eller systemd (vanligt för Python) — beroende på vad din app är skriven i.

4

Domän och HTTPS

När du har pekat din domän mot servern (se nästa avsnitt) säger du:

"Jag har pekat mindomän.se mot den här servern. Sätt upp det så att folk kan besöka sidan via HTTPS."

LLM:et konfigurerar nginx för din domän och ordnar ett gratis SSL-certifikat med certbot.

5

Bra struktur från början

Berätta att du vill ha ordning:

"Lägg mitt projekt i /opt/mittproject/ med separata mappar för kod, mallar och statiska filer. API-nycklar ska ligga i en .env-fil som inte syns i koden."

Då får du en ren struktur som är lätt att bygga vidare på, och hemliga nycklar hamnar aldrig i fel händer.

Kom ihåg: Du behöver aldrig skriva nginx-config, systemd-filer eller certbot-kommandon själv. Beskriv vad du vill ha, så fixar LLM:et resten. Poängen är att förstå vad som behövs — inte hur det skrivs.

Peka din domän

Har du en domän? Peka den mot din server och fixa SSL.

1

Skapa en A-post i din DNS

Typ:    A
Namn:   @ (eller subdomän)
Värde:  DIN_IP_ADRESS
TTL:    300

Gör detta hos din domänleverantör (Loopia, GoDaddy, Cloudflare, etc.)

2

Skapa nginx-config på servern

# Skapa config
sudo nano /etc/nginx/sites-available/mindomän.se

# Innehåll:
server {
    listen 80;
    server_name mindomän.se www.mindomän.se;
    root /var/www/mindomän;
    index index.html;
}

# Aktivera
sudo ln -s /etc/nginx/sites-available/mindomän.se \
           /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
3

Fixa SSL med certbot

sudo certbot --nginx -d mindomän.se -d www.mindomän.se

Klart! Din sida har nu HTTPS.

Ingen domän? Du kan ändå bygga och testa — din sida finns på http://DIN_IP_ADRESS direkt. Köp en domän senare och peka den.

Exempelprompts

Klistra in i ditt LLM-verktyg för att komma igång snabbt. Se alla 15 prompts →

AI-pizzeria som tar emot beställningar via telefon

Se live-exempel
Jag vill bygga en AI-pizzeria. Kunden ringer ett telefonnummer och pratar med en AI-röst som tar emot beställningen. AI:n ska vara trevlig, fråga vad de vill ha, bekräfta beställningen och säga hejdå.

Det ska finnas en webbsida med en dashboard som visar alla beställningar som kommit in — live. Typ "Margherita x1, Vesuvio x2, leverans till Storgatan 5".

Kunden ska få ett SMS när pizzan är klar.

Använd 46elks för att ta emot samtalet (docs: https://46elks.com/docs/voice-calls) och OpenAI Realtime API för AI-rösten. Lägg projektet i /opt/pizzeria/.
Klicka för att kopiera

Felanmälan via SMS med karta

Se live-exempel
Jag vill ha en tjänst där folk kan skicka in felanmälningar via SMS. Typ "Trasig gatlampa vid Storgatan 12" eller "Potthål på Ringvägen".

Så här ska det funka:
- Man skickar ett SMS till ett nummer och beskriver problemet
- En AI läser meddelandet och plockar ut vad felet är och var det är
- Felet dyker upp på en karta på en webbsida som alla kan se
- Det ska finnas en admin-sida där man kan markera ärenden som fixade
- Personen som anmälde får ett SMS tillbaka när ärendet är löst

Använd 46elks för SMS (docs: https://46elks.com/docs). Lägg projektet i /opt/felanmalan/.
Klicka för att kopiera

Digital escape room

Se live-exempel
Jag vill bygga ett digitalt escape room-spel. En spelledare skapar ett spel med flera pusselfrågor (typ gåtor, koder, ledtrådar). Sen delar man ut en länk till lagen.

Så här ska det funka:
- Spelledaren loggar in och skapar ett nytt spel med 5-10 frågor
- Varje lag får en unik kod för att gå med
- Lagen löser frågorna i ordning — varje rätt svar låser upp nästa
- En live-tavla visar alla lags framsteg i realtid
- Det ska finnas en timer så man ser hur lång tid det tar

Snyggt mörkt gaming-tema med neon-accenter. Lägg projektet i /opt/escaperoom/.
Klicka för att kopiera
Se alla 15 exempelprompts →

LLM-läsbara instruktioner

Kopiera detta och klistra in som kontext till ditt LLM-verktyg. Det ger AI:n full förståelse för din server.

# Server Context — AI-slöjd Workshop

Du hjälper en utvecklare bygga webbsidor på deras Ubuntu 24.04-server.

## Serverdetaljer
- OS: Ubuntu 24.04 LTS
- Webbserver: nginx (förinstallerad, kör)
- Node.js: v22 LTS (förinstallerad)
- Python: 3.12+ (förinstallerad)
- Brandvägg: ufw (port 22, 80, 443 öppna)
- SSL: certbot + python3-certbot-nginx installerat
- Pakethanterare: apt, npm, pip

## Filplatser
- Webbrot: /var/www/html/
- Nginx-sites: /etc/nginx/sites-available/ och /etc/nginx/sites-enabled/
- Default config: /etc/nginx/sites-available/default

## Vanliga uppgifter

### Deploya en statisk webbsida
Placera filer i /var/www/html/ — de serveras automatiskt av nginx.
Eller skapa en ny site under /var/www/mittnamn/ med egen nginx-config.

### Sätta upp en domän med SSL
1. Peka domänens A-post till serverns IP
2. Skapa nginx config: /etc/nginx/sites-available/mindomän.se
3. Symlink: ln -s /etc/nginx/sites-available/mindomän.se /etc/nginx/sites-enabled/
4. Test: nginx -t
5. Reload: systemctl reload nginx
6. SSL: certbot --nginx -d mindomän.se

### Köra en Node.js-app
1. Skapa app i /opt/myapp/
2. Installera PM2: npm install -g pm2
3. Starta: pm2 start app.js --name myapp
4. Persist: pm2 save && pm2 startup
5. Skapa nginx reverse proxy till localhost:PORT

### Köra en Python FastAPI-app
1. Skapa venv: python3 -m venv /opt/myapp/venv
2. Installera: /opt/myapp/venv/bin/pip install fastapi uvicorn
3. Kör med uvicorn bakom nginx reverse proxy

## Nginx Reverse Proxy-mall
```
server {
    listen 80;
    server_name mindomän.se;
    location / {
        proxy_pass http://127.0.0.1:PORT;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
```

## Bra att veta
- Allt körs som root (workshop-miljö)
- nginx konfigfiler: skapa i sites-available, symlink till sites-enabled
- Testa alltid med: nginx -t innan reload
- PM2 för Node-appar, systemd eller uvicorn direkt för Python
- Git är installerat — du kan klona repos direkt

FAQ

Min SSH-nyckel fungerar inte — vad gör jag?

Kontrollera att du kopierade hela nyckeln (inklusive ssh-ed25519 eller ssh-rsa i början). Kör cat ~/.ssh/id_ed25519.pub och kopiera allt. Om du inte har en nyckel: kör ssh-keygen -t ed25519 och tryck Enter på alla frågor.

Hur får jag en domän?

Köp en på t.ex. Loopia, Namecheap eller Cloudflare. En .se-domän kostar ca 100 kr/år. Du kan också använda en gratis subdomän-tjänst som FreeDNS (freedns.afraid.org).

Kan jag köra en backend (inte bara statiska filer)?

Absolut! Din server har Node.js och Python. Bygg en Express-app, FastAPI-app, eller vad du vill. Kör den på en port (t.ex. 3000) och sätt upp nginx som reverse proxy. Se exemplen ovan.

Hur länge finns servern?

Servern finns i 7 dagar. Du får ett SMS innan den stängs av — svara JA så förlängs den med ytterligare 7 dagar. Du kan förlänga hur många gånger du vill.

Jag fick inget SMS — vad hände?

Kontrollera att du angav rätt nummer med landskod (+46...). Vänta 30 sekunder — ibland tar SMS lite tid. Om det fortfarande inte funkar, fråga workshopledaren.

Kan jag använda mitt eget LLM-verktyg?

Ja! Vi rekommenderar Claude Code men du kan använda Codex, Cursor, Windsurf, GitHub Copilot, eller till och med bara ChatGPT/Claude i webbläsaren och copy-paste kod. Använd det du är bekväm med.

Vad är Claude Code?

Claude Code är Anthropics CLI-verktyg som kör direkt i terminalen. Det kan läsa filer, skriva kod, köra kommandon och bygga hela projekt åt dig. Installera med npm install -g @anthropic-ai/claude-code och kör claude.