# Archivum Archivum är ett självhostat wiki- och dokumenthanteringssystem. Det är tänkt att användas för allt från enkla anteckningar och teknisk dokumentation till världsbyggande inför rollspelskampanjer. Alla dokument lagras som **AsciiDoc**-filer (`.adoc`) på disk, vilket innebär att du kan läsa och redigera dem direkt med valfritt predikat — utan att öppna webbgränssnittet. Applikationen renderar dokumenten till HTML i webbläsaren och hanterar automatisk **versionshantering via Git**, så att varje sparning skapar ett commit och alla ändringar kan rullas tillbaka. > Se [ARCHITECTURE.md](ARCHITECTURE.md) för detaljerad dokumentation om arkitektur, exekveringsflöden och komponentstruktur. --- ## Användningsområden - **Anteckningar** — snabbanteckningar och personliga kunskapsbaser - **Wiki** — team-wiki med dokumentträd och historik - **Teknisk dokumentation** — API-dokumentation, systembeskrivningar, runbooks - **Rollspelskampanjer** — världsbyggande, NPC-register, kartor och händelseloggar --- ## Krav ### För att köra med Docker (rekommenderat) - [Docker](https://docs.docker.com/get-docker/) ≥ 24 - [Docker Compose](https://docs.docker.com/compose/) v2 ### För lokal utveckling - [Go](https://go.dev/dl/) ≥ 1.22 - [Node.js](https://nodejs.org/) ≥ 20 + npm - [Git](https://git-scm.com/) (används av backenden för versionshantering) --- ## Snabbstart med Docker Compose **1. Skapa en `.env`-fil** i mappen `docker/` (eller i roten): ```env DOCKER_PATH=/opt/archivum # Host-katalog där config/ och data/ skapas HOST_PORT=8080 PUID=1000 PGID=1000 TZ=Europe/Stockholm ``` **2. Starta:** ```bash docker compose -f docker/docker-compose.yml up -d ``` **3. Öppna** `http://localhost:8080` i webbläsaren. Installationsguiden startar automatiskt vid första körningen. --- ## Lokal utveckling ### Backend ```bash cd backend go run ./cmd/server # Servern lyssnar på :4000 # config.json i backend/ används som konfiguration ``` ### Frontend ```bash cd frontend npm install npm run dev # Dev-server på :5173 med proxy till :4000 ``` Öppna `http://localhost:5173`. API-anrop proxyas automatiskt till backend-servern. ### Bygga frontend för produktion ```bash cd frontend npm run build # Utdata i frontend/dist/ ``` --- ## Konfiguration Konfigurationen lagras i `config.json`. Filen skapas automatiskt av installationsguiden. | Fält | Beskrivning | |----------------|-----------------------------------------------------| | `storage_path` | Sökväg till katalogen där .adoc-filer och Git-repot lagras | | `db_path` | Sökväg till SQLite-databasen (användarkonton) | | `jwt_secret` | Hemlig nyckel för session-tokens | | `listen_addr` | TCP-adress att lyssna på, t.ex. `:4000` | | `ldap` | Valfri LDAP-konfiguration för företagsinloggning | --- ## Dokumentformat Alla dokument skrivs i [AsciiDoc](https://asciidoc.org/). Exempeldokument: ```asciidoc = Mitt dokument :author: Anna Andersson :date: 2026-04-12 == Introduktion Det här är ett *fetstilt* stycke med en https://example.com[länk]. == Kodexempel [source,go] ---- fmt.Println("Hello, Archivum!") ---- ``` Filen sparas som `mitt-dokument.adoc` i `storage_path` och versionshanteras automatiskt. --- ## Docker: Multi-arch build För att bygga och pusha en image som stöder både AMD64 och ARM64 (Raspberry Pi): ```bash docker buildx build \ --platform linux/amd64,linux/arm64 \ -t ditt-registry/archivum:latest \ -f docker/Dockerfile --push . ```