Files
Archivum/README.md
brasse b 8138abad4e feat: add VS Code Compose tasks for local full-stack testing
Adds Compose: Build & Up, Up, Down, Logs tasks for both Windows and Linux,
allowing the complete app to be tested locally via docker-compose on port 8080.
Updates README task table to reflect all available tasks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 13:14:22 +02:00

4.2 KiB

Archivum

A high-performance, production-ready wiki system optimized for Desktop and Mobile, designed to run on a Raspberry Pi 5 (ARM64) or any AMD64 host.

Tech Stack

Layer Technology
Backend Go + GraphQL (gqlgen) + SQLite (modernc.org/sqlite, CGO-free)
Frontend Vue 3 (Composition API) + Vite + Tailwind CSS
PWA vite-plugin-pwa (offline caching, installable)
Version Control Git (backend executes git on the storage path)
Editor TipTap (visual) + CodeMirror (raw AsciiDoc)
Auth LDAP + JWT with in-memory session tracking

Features

  • AsciiDoc-native — documents stored as plain .adoc files, Git is the source of truth.
  • Visual ↔ Source editor — TipTap for rich editing, CodeMirror for raw AsciiDoc, with a round-trip TypeScript bridge.
  • Git history & diff — every save is a commit; full history and unified diffs via GraphQL.
  • Setup Wizard — guided first-run configuration for LDAP, admin user, and storage paths.
  • PWA — installable on mobile, fast loading, offline viewing of cached documents.
  • Multi-arch Docker — single Dockerfile targeting ARM64 and AMD64.

Project Structure

Archivum/
├── backend/                  # Go application
│   ├── cmd/server/           # Entry point
│   └── internal/
│       ├── auth/             # LDAP + JWT
│       ├── config/           # config.json management
│       ├── git/              # Git operations
│       ├── graph/            # GraphQL schema + resolvers
│       └── storage/          # Document read/write
├── frontend/                 # Vue 3 application
│   └── src/
│       ├── bridge/           # AsciiDoc ↔ TipTap TypeScript bridge
│       ├── components/
│       │   ├── editor/       # VisualEditor + SourceEditor
│       │   ├── layout/       # AppLayout + Sidebar
│       │   └── wizard/       # Setup Wizard
│       ├── router/
│       ├── stores/
│       └── views/
├── docker/                   # Dockerfile + docker-compose
└── .vscode/                  # VS Code build & deploy tasks

Quick Start

Prerequisites

  • Docker (with access to your registry)
  • Go 1.22+ (for local backend development)
  • Node.js 20+ (for local frontend development)
docker compose -f docker/docker-compose.yml up -d

Open http://localhost:8080 and follow the Setup Wizard.

Local Development

# Backend
cd backend
go run ./cmd/server

# Frontend (separate terminal)
cd frontend
npm install
npm run dev

Configuration

Backend — config.json

{
  "storage_path": "/data/wiki",
  "db_path": "/data/archivum.db",
  "ldap": {
    "host": "ldap.example.com",
    "port": 389,
    "base_dn": "dc=example,dc=com",
    "bind_dn": "cn=reader,dc=example,dc=com",
    "bind_password": "secret"
  },
  "jwt_secret": "change-me",
  "listen_addr": ":4000"
}

Frontend — settings.json

{
  "api_url": "http://localhost:4000/graphql",
  "app_name": "Archivum",
  "default_theme": "light"
}

Docker environment variables

Variable Default Description
DOCKER_PATH /config Base path for config and data volumes
PUID 1000 File system user ID
PGID 1000 File system group ID

VS Code Tasks

Open the Command Palette (Ctrl+Shift+P) → Tasks: Run Task:

Task Platform Description
Compose: Build & Up Windows / Linux Build image and start the full stack locally (http://localhost:8080)
Compose: Up Windows / Linux Start with the last-built image
Compose: Down Windows / Linux Stop and remove containers
Compose: Logs Windows / Linux Follow container output
Docker: Build Windows / Linux Build registry image
Docker: Push Windows / Linux Push to 192.168.0.19:5000
Docker: Build & Push Windows / Linux Build then push
Docker: Multi-arch Build & Push Windows / Linux buildx push for ARM64 + AMD64
Backend: Run Both go run ./cmd/server
Frontend: Dev Both npm run dev
Frontend: Build Both Production Vite build

License

MIT