2026-05-17 10:36:23 +02:00
2026-05-17 10:36:23 +02:00
2026-05-08 20:47:02 +02:00
2026-04-15 12:32:28 +02:00
2026-05-08 20:47:02 +02:00
2026-04-29 13:17:42 +02:00
2026-04-09 21:51:12 +02:00
2026-04-09 21:51:12 +02:00
2026-05-11 12:03:59 +02:00
2026-05-08 21:25:41 +02:00
2026-05-07 19:35:10 +02:00
2026-05-11 12:03:59 +02:00
2026-05-11 12:03:59 +02:00
2026-05-08 18:22:03 +02:00
2026-05-07 09:41:20 +02:00
2026-04-28 17:43:20 +02:00
2026-04-23 20:43:05 +02:00
2026-04-23 14:02:41 +02:00
2026-05-07 07:55:33 +02:00

datascape

Minimal self-hosted personal wiki. Folders are pages.

Features

  • Pages every folder is a page. Place an index.md inside 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.

  • Quick-add bookmarklet save the current browser tab to a predetermined wiki page (e.g. /Topics/Bookmarks/) with one click. See the Quick-Add Bookmarklet section.

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.

Each diary root exposes three stable paths intended for browser bookmarks. They redirect to the current dated URL on every visit:

Path Redirects to
<diary>/today/ <diary>/YYYY/MM/DD/ (or …/?edit if the day folder does not exist yet)
<diary>/this-month/ <diary>/YYYY/MM/
<diary>/this-year/ <diary>/YYYY/

Quick-Add Bookmarklet

Replace wiki.host with your wiki host and /Topics/Bookmarks/ with the destination page (one bookmarklet per target):

javascript:(function(){var s=window.getSelection().toString().trim();var t=s||document.title;var u=location.href;var to='/Topics/Bookmarks/';var q='?to='+encodeURIComponent(to)+'&url='+encodeURIComponent(u)+'&title='+encodeURIComponent(t);window.open('https://wiki.host/quickadd'+q,'quickadd','width=480,height=320');})();

Each save appends an entry of the following form to the destination page's index.md:

- [Example Page](https://example.com)
  2026-05-11 14:30
  optional comment
S
Description
No description provided
Readme 7.9 MiB
Languages
Go 46.5%
JavaScript 34.6%
HTML 9.7%
CSS 8.6%
Makefile 0.6%