Files
Archivum/README.md

137 lines
3.6 KiB
Markdown

# 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 .
```