137 lines
3.6 KiB
Markdown
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 .
|
|
```
|
|
|