Initialize Labyricorn site source
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
|||||||
|
# Local editor and operating-system files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Local secrets and overrides
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
.labyricorn/local.yml
|
||||||
|
|
||||||
|
# Generated output and local caches
|
||||||
|
dist/
|
||||||
|
output/
|
||||||
|
.cache/
|
||||||
|
.labyricorn/cache/
|
||||||
|
.labyricorn/builds/
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
version: 1
|
||||||
|
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
repository:
|
||||||
|
type: site
|
||||||
|
visibility: private
|
||||||
|
|
||||||
|
website:
|
||||||
|
enabled: true
|
||||||
|
visibility: featured
|
||||||
|
section: site
|
||||||
|
include_in_homepage: true
|
||||||
|
include_in_search: true
|
||||||
|
include_in_rss: true
|
||||||
|
|
||||||
|
artifacts:
|
||||||
|
readme: false
|
||||||
|
releases: false
|
||||||
|
issues: false
|
||||||
|
wiki: false
|
||||||
|
content_paths:
|
||||||
|
- pages
|
||||||
|
- articles
|
||||||
|
- projects
|
||||||
|
media_paths:
|
||||||
|
- media
|
||||||
|
|
||||||
|
display:
|
||||||
|
title: Labyricorn
|
||||||
|
description: A configuration-first, Git-driven site.
|
||||||
|
|
||||||
|
community:
|
||||||
|
discussions: disabled
|
||||||
|
comments_enabled: false
|
||||||
|
|
||||||
|
publishing:
|
||||||
|
local: true
|
||||||
|
targets: []
|
||||||
|
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# Labyricorn Site
|
||||||
|
|
||||||
|
This repository is the initial Git source for the public Labyricorn website.
|
||||||
|
It is intentionally small so the first deployment proves the complete local
|
||||||
|
publishing path before more content or integrations are added.
|
||||||
|
|
||||||
|
## Source of truth
|
||||||
|
|
||||||
|
This repository is authoritative for the site content it contains. Labyricorn
|
||||||
|
reads `.labyricorn/site.yml`, discovers the configured content, builds the
|
||||||
|
website, and publishes the completed output to the local canonical site.
|
||||||
|
|
||||||
|
Generated website files do not belong in this repository.
|
||||||
|
|
||||||
|
## Repository structure
|
||||||
|
|
||||||
|
```text
|
||||||
|
.labyricorn/site.yml Repository participation and publishing policy
|
||||||
|
pages/ Standalone website pages
|
||||||
|
articles/ Article source documents
|
||||||
|
projects/ Project source documents
|
||||||
|
media/ Images and other intentionally public media
|
||||||
|
docs/ Operator and author documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
## Initial deployment boundary
|
||||||
|
|
||||||
|
The first deployment includes:
|
||||||
|
|
||||||
|
- one homepage;
|
||||||
|
- one introductory article;
|
||||||
|
- one project page;
|
||||||
|
- local publication through Labyricorn.
|
||||||
|
|
||||||
|
It does not yet include:
|
||||||
|
|
||||||
|
- comments or community submissions;
|
||||||
|
- GitHub mirroring;
|
||||||
|
- Cloudflare Pages;
|
||||||
|
- remote publishing targets;
|
||||||
|
- private credentials or generated output.
|
||||||
|
|
||||||
|
See `docs/DEPLOYMENT.md` for the deployment sequence.
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
model: article
|
||||||
|
title: Welcome to Labyricorn
|
||||||
|
slug: welcome
|
||||||
|
date: 2026-07-23
|
||||||
|
status: published
|
||||||
|
summary: Why the first deployment is intentionally small and locally hosted.
|
||||||
|
tags:
|
||||||
|
- labyricorn
|
||||||
|
- publishing
|
||||||
|
- git
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome to Labyricorn
|
||||||
|
|
||||||
|
Labyricorn is a configuration-first, Git-driven site builder. Repositories
|
||||||
|
provide content and configuration; the builder turns those sources into a
|
||||||
|
coherent website; the generated local site is the canonical runtime copy.
|
||||||
|
|
||||||
|
This initial deployment focuses on one honest workflow:
|
||||||
|
|
||||||
|
1. synchronize this repository;
|
||||||
|
2. read its Labyricorn configuration;
|
||||||
|
3. discover its Markdown documents;
|
||||||
|
4. render the configured website;
|
||||||
|
5. publish the result locally;
|
||||||
|
6. report what actually happened.
|
||||||
|
|
||||||
|
Additional publishing targets can be added after that workflow is dependable.
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Authoring Content
|
||||||
|
|
||||||
|
Content is written in Markdown and committed to Git.
|
||||||
|
|
||||||
|
## Front matter
|
||||||
|
|
||||||
|
Every document begins with YAML front matter. At minimum, provide:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
model: article
|
||||||
|
title: Example title
|
||||||
|
slug: example-title
|
||||||
|
status: draft
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
The `model` value must match an installed and enabled Labyricorn content-model
|
||||||
|
definition. Model behavior comes from configuration; the engine must not
|
||||||
|
special-case the model name.
|
||||||
|
|
||||||
|
## Publishing state
|
||||||
|
|
||||||
|
Use `status: draft` while working. Change it to `status: published` when the
|
||||||
|
document is ready for the public site.
|
||||||
|
|
||||||
|
## Media
|
||||||
|
|
||||||
|
Place intentionally public assets in `media/`. Do not commit credentials,
|
||||||
|
private source files, local configuration overrides, or generated site output.
|
||||||
|
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
# Initial Deployment
|
||||||
|
|
||||||
|
This document defines the first deployment boundary. It does not assume GitHub,
|
||||||
|
Cloudflare Pages, Docker, or a public Control Plane.
|
||||||
|
|
||||||
|
## Target environment
|
||||||
|
|
||||||
|
- Gitea: `https://git.labyricorn.com`
|
||||||
|
- Labyricorn: installed directly in an LXC container
|
||||||
|
- Control Plane: private network access only
|
||||||
|
- Public site: static output served by the configured local runtime
|
||||||
|
- Canonical site address: `https://labyricorn.com`
|
||||||
|
|
||||||
|
## Deployment sequence
|
||||||
|
|
||||||
|
1. Create an empty repository on `git.labyricorn.com`.
|
||||||
|
2. Add that Gitea repository as the remote for this local repository.
|
||||||
|
3. Push the default branch to Gitea.
|
||||||
|
4. Connect the repository in the Labyricorn Control Plane.
|
||||||
|
5. Synchronize it and confirm `.labyricorn/site.yml` is valid.
|
||||||
|
6. Confirm that the `page`, `article`, and `project` models are installed and
|
||||||
|
enabled in Labyricorn.
|
||||||
|
7. Confirm discovery finds the three Markdown documents in this repository.
|
||||||
|
8. Preview the generated routes and resolve any validation errors.
|
||||||
|
9. Build the site.
|
||||||
|
10. Publish the completed build to the local canonical site.
|
||||||
|
11. Verify the homepage, article, and project page from a browser.
|
||||||
|
12. Record the deployed Git revision and active local release.
|
||||||
|
|
||||||
|
## Required proof
|
||||||
|
|
||||||
|
The initial deployment is successful only when all of the following are true:
|
||||||
|
|
||||||
|
- the repository revision shown by Labyricorn matches Gitea;
|
||||||
|
- configuration validation uses the committed `site.yml`;
|
||||||
|
- all three source documents are discovered without filename heuristics;
|
||||||
|
- generated routes come from configured model behavior;
|
||||||
|
- the public pages are served from the activated local release;
|
||||||
|
- restarting the Control Plane does not erase deployment state;
|
||||||
|
- no operational success status is fabricated.
|
||||||
|
|
||||||
|
## Not part of the first deployment
|
||||||
|
|
||||||
|
Add these only after the local path is proven:
|
||||||
|
|
||||||
|
- GitHub deployment mirror;
|
||||||
|
- Cloudflare Pages;
|
||||||
|
- anonymous comments;
|
||||||
|
- social sharing automation;
|
||||||
|
- additional projections or publishing targets.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
model: page
|
||||||
|
title: Labyricorn
|
||||||
|
slug: home
|
||||||
|
route: /
|
||||||
|
status: published
|
||||||
|
summary: A configuration-first, Git-driven home for projects, articles, and documentation.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Build once. Understand every part.
|
||||||
|
|
||||||
|
Labyricorn brings project information, articles, and documentation together
|
||||||
|
without replacing Git as the source of truth.
|
||||||
|
|
||||||
|
The first version of this site is deliberately small. It exists to prove the
|
||||||
|
complete publishing path from a repository, through Labyricorn, to the locally
|
||||||
|
hosted public website.
|
||||||
|
|
||||||
|
## Start here
|
||||||
|
|
||||||
|
- Read the introduction to the publishing approach.
|
||||||
|
- Follow the Labyricorn project as the platform becomes operational.
|
||||||
|
- Return as additional repositories and content models are connected.
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
model: project
|
||||||
|
title: Labyricorn
|
||||||
|
slug: labyricorn
|
||||||
|
status: published
|
||||||
|
summary: A configuration-first, Git-driven site builder and its administrative control plane.
|
||||||
|
repository_url: https://git.labyricorn.com
|
||||||
|
tags:
|
||||||
|
- labyricorn
|
||||||
|
- git
|
||||||
|
- static-site
|
||||||
|
---
|
||||||
|
|
||||||
|
# Labyricorn
|
||||||
|
|
||||||
|
Labyricorn builds and hosts locally generated sites from Git repositories.
|
||||||
|
Content models, routes, navigation, styles, themes, and integrations derive
|
||||||
|
their meaning from configuration rather than hardcoded content-type names.
|
||||||
|
|
||||||
|
## Current milestone
|
||||||
|
|
||||||
|
Deploy one small site from a real repository and make every stage observable
|
||||||
|
and understandable.
|
||||||
|
|
||||||
|
## Operating principles
|
||||||
|
|
||||||
|
- Git remains authoritative.
|
||||||
|
- Site behavior is configuration-driven.
|
||||||
|
- Local production hosting is the baseline.
|
||||||
|
- Remote publishing is optional.
|
||||||
|
- Reported status must reflect real operations.
|
||||||
|
|
||||||
Reference in New Issue
Block a user