datascape
Minimal self-hosted personal wiki. Folders are pages.
Features
-
Pages every folder is a page. Place an
index.mdinside a folder and it renders as HTML. Drop any other files (PDFs, images, etc.) alongside it and they appear in the listing below the content. Navigating to a path that does not exist shows a [CREATE] prompt. -
Search search across all page names (folder names) in the wiki, accessible from the navigation bar.
-
Wikilinks link between pages with
[[Page Name]]syntax. When a page is renamed or moved, all wikilinks pointing to it are rewritten automatically to reflect the new path. -
Movie import import movie entries via the OMDb API. Fetches title, year, runtime, genre, director, cast, plot, and poster, and pre-fills a new page with that metadata.
-
Special folder types folders can opt into custom rendering (e.g. a photo diary with calendar navigation). See the Special Folder Types section for details.
Build
# local
go build -o datascape .
# QNAP NAS (linux/arm)
GOOS=linux GOARCH=arm go build -o datascape .
Usage
go run . -dir ./wiki -addr :8080
go run . -dir ./wiki -addr :8080 -user me -pass secret
| Flag | Default | Description |
|---|---|---|
-addr |
:8080 |
Listen address |
-dir |
./wiki |
Wiki root directory |
-cache |
./cache |
Thumbnail cache directory |
-user |
(none) | Basic auth username — omit to disable auth |
-pass |
(none) | Basic auth password |
-reindex-interval |
30m |
Periodic search index rebuild interval (0 disables) |
Special Folder Types
A folder can opt into special rendering by adding a .page-settings file:
type = diary
Diary
Designed for a chronological photo diary. Expected structure:
FolderName/
.page-settings ← type = diary
YYYY/
YYYY-MM-DD Desc.jpg ← photos named with date prefix
MM/
DD/
index.md ← diary entry for that day
| View | What renders |
|---|---|
Year (YYYY/) |
Section per month with link and photo count |
Month (MM/) |
Section per day with entry content and photo grid |
Day (DD/) |
Entry content and photo grid |
Days with photos but no index.md still appear in the month view and can be created by clicking their heading link.