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 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 ≥ 24
- Docker Compose v2
För lokal utveckling
Snabbstart med Docker Compose
Alternativ A — Hämta image från privat registry (rekommenderat)
Det enklaste sättet att köra Archivum är att hämta en färdigbyggd image från ett privat registry, utan att behöva källkoden.
1. Logga in mot ditt registry (om det kräver autentisering):
docker login ditt-registry.example.com
2. Skapa en docker-compose.yml:
services:
archivum:
image: ditt-registry.example.com/archivum:latest
container_name: archivum
restart: unless-stopped
ports:
- "${HOST_PORT:-8080}:4000"
environment:
DOCKER_PATH: /config
UI_DIR: /srv/archivum/ui
PUID: ${PUID:-1000}
PGID: ${PGID:-1000}
TZ: ${TZ:-Europe/Stockholm}
volumes:
- ${DOCKER_PATH:-./local}/config:/config
- ${DOCKER_PATH:-./local}/data:/data
networks:
- archivum-net
networks:
archivum-net:
driver: bridge
Om du kör en reverse proxy (t.ex. Nginx Proxy Manager eller Traefik) i en separat compose-stack kan du låta dem dela nätverk istället för att exponera porten direkt. Deklarera då det externa nätverket:
networks: proxy-net: external: trueOch byt ut
archivum-netmotproxy-neti service-definitionen. Ta även bortports-sektionen om proxyn hanterar all trafik.
3. Skapa en .env-fil i samma katalog som docker-compose.yml:
# Sökväg på hosten där config/ och data/ skapas
DOCKER_PATH=/opt/archivum
# Port som exponeras på hosten
HOST_PORT=8080
# Kör containern som denna användare/grupp (kör `id` för att se dina värden)
PUID=1000
PGID=1000
# Tidszon
TZ=Europe/Stockholm
4. Starta:
docker compose up -d
5. Öppna http://localhost:8080 i webbläsaren. Installationsguiden startar automatiskt vid första körningen.
Alternativ B — Bygg imagen lokalt från källkod
Klona repot och använd den medföljande compose-filen som också bygger imagen:
docker compose -f docker/docker-compose.yml up -d --build
Lokal utveckling
Backend
cd backend
go run ./cmd/server
# Servern lyssnar på :4000
# config.json i backend/ används som konfiguration
Frontend
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
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. Exempeldokument:
= 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):
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t ditt-registry/archivum:latest \
-f docker/Dockerfile --push .