3.6 KiB
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.
-
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.
Persistent date links
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