vault update: plugins, templates
This commit is contained in:
5
.obsidian/app.json
vendored
5
.obsidian/app.json
vendored
@@ -1 +1,4 @@
|
||||
{}
|
||||
{
|
||||
"newFileLocation": "folder",
|
||||
"newFileFolderPath": "100 inbox"
|
||||
}
|
||||
8
.obsidian/community-plugins.json
vendored
Normal file
8
.obsidian/community-plugins.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
[
|
||||
"github-sync",
|
||||
"obsidian-relative-line-numbers",
|
||||
"calendar",
|
||||
"dataview",
|
||||
"obsidian-tasks-plugin",
|
||||
"templater-obsidian"
|
||||
]
|
||||
3
.obsidian/daily-notes.json
vendored
Normal file
3
.obsidian/daily-notes.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"folder": "000 daily"
|
||||
}
|
||||
10
.obsidian/plugins/calendar/data.json
vendored
Normal file
10
.obsidian/plugins/calendar/data.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"shouldConfirmBeforeCreate": true,
|
||||
"weekStart": "locale",
|
||||
"wordsPerDot": 250,
|
||||
"showWeeklyNote": false,
|
||||
"weeklyNoteFormat": "",
|
||||
"weeklyNoteTemplate": "",
|
||||
"weeklyNoteFolder": "",
|
||||
"localeOverride": "system-default"
|
||||
}
|
||||
4459
.obsidian/plugins/calendar/main.js
vendored
Normal file
4459
.obsidian/plugins/calendar/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
.obsidian/plugins/calendar/manifest.json
vendored
Normal file
10
.obsidian/plugins/calendar/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "calendar",
|
||||
"name": "Calendar",
|
||||
"description": "Calendar view of your daily notes",
|
||||
"version": "1.5.10",
|
||||
"author": "Liam Cain",
|
||||
"authorUrl": "https://github.com/liamcain/",
|
||||
"isDesktopOnly": false,
|
||||
"minAppVersion": "0.9.11"
|
||||
}
|
||||
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "dataview",
|
||||
"name": "Dataview",
|
||||
"version": "0.5.68",
|
||||
"minAppVersion": "0.13.11",
|
||||
"description": "Complex data views for the data-obsessed.",
|
||||
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
||||
"authorUrl": "https://github.com/blacksmithgu",
|
||||
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
.block-language-dataview {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/** Table Views **/
|
||||
/*****************/
|
||||
|
||||
/* List View Default Styling; rendered internally as a table. */
|
||||
.table-view-table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table > thead > tr, .table-view-table > tbody > tr {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.table-view-table > tbody > tr:hover {
|
||||
background-color: var(--table-row-background-hover);
|
||||
}
|
||||
|
||||
.table-view-table > thead > tr > th {
|
||||
font-weight: 700;
|
||||
font-size: larger;
|
||||
border-top: none;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
border-bottom: solid;
|
||||
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table > tbody > tr > td {
|
||||
text-align: left;
|
||||
border: none;
|
||||
font-weight: 400;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table ul, .table-view-table ol {
|
||||
margin-block-start: 0.2em !important;
|
||||
margin-block-end: 0.2em !important;
|
||||
}
|
||||
|
||||
/** Rendered value styling for any view. */
|
||||
.dataview-result-list-root-ul {
|
||||
padding: 0em !important;
|
||||
margin: 0em !important;
|
||||
}
|
||||
|
||||
.dataview-result-list-ul {
|
||||
margin-block-start: 0.2em !important;
|
||||
margin-block-end: 0.2em !important;
|
||||
}
|
||||
|
||||
/** Generic grouping styling. */
|
||||
.dataview.result-group {
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
/*******************/
|
||||
/** Inline Fields **/
|
||||
/*******************/
|
||||
|
||||
.dataview.inline-field-key {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-primary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-value {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-secondary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-standalone-value {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-secondary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
/***************/
|
||||
/** Task View **/
|
||||
/***************/
|
||||
|
||||
.dataview.task-list-item, .dataview.task-list-basic-item {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
|
||||
background-color: var(--text-selection);
|
||||
box-shadow: -40px 0 0 var(--text-selection);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/** Error Views **/
|
||||
/*****************/
|
||||
|
||||
div.dataview-error-box {
|
||||
width: 100%;
|
||||
min-height: 150px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 4px dashed var(--background-secondary);
|
||||
}
|
||||
|
||||
.dataview-error-message {
|
||||
color: var(--text-muted);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/** Additional Metadata **/
|
||||
/*************************/
|
||||
|
||||
.dataview.small-text {
|
||||
font-size: smaller;
|
||||
color: var(--text-muted);
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.dataview.small-text::before {
|
||||
content: "(";
|
||||
}
|
||||
|
||||
.dataview.small-text::after {
|
||||
content: ")";
|
||||
}
|
||||
9
.obsidian/plugins/github-sync/data.json
vendored
Normal file
9
.obsidian/plugins/github-sync/data.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"remoteURL": "ssh://git@gitea.lab.audasmedia.com.au:2222/sam/obsidian-vault.git",
|
||||
"gitLocation": "",
|
||||
"syncinterval": 15,
|
||||
"isSyncOnLoad": true,
|
||||
"checkStatusOnLoad": true,
|
||||
"noticeLevel": "ALL",
|
||||
"showSyncSuccessNotice": true
|
||||
}
|
||||
4907
.obsidian/plugins/github-sync/main.js
vendored
Normal file
4907
.obsidian/plugins/github-sync/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
.obsidian/plugins/github-sync/manifest.json
vendored
Normal file
10
.obsidian/plugins/github-sync/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "github-sync",
|
||||
"name": "GitHub Sync",
|
||||
"version": "1.0.7",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Sync vault to personal GitHub.",
|
||||
"author": "Kevin Chin",
|
||||
"authorUrl": "https://kevin.gd/",
|
||||
"isDesktopOnly": true
|
||||
}
|
||||
42
.obsidian/plugins/github-sync/styles.css
vendored
Normal file
42
.obsidian/plugins/github-sync/styles.css
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
|
||||
This CSS file will be included with your plugin, and
|
||||
available in the app when your plugin is enabled.
|
||||
|
||||
If your plugin does not need CSS, delete this file.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
.gh-sync-ribbon
|
||||
{
|
||||
order: 100;
|
||||
}
|
||||
|
||||
.gh-sync-status
|
||||
{
|
||||
order: -1;
|
||||
}
|
||||
|
||||
.howto {
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.howto_title {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.howto_text {
|
||||
color: var(--text-muted);
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
.my-plugin-setting-text {
|
||||
width: 30em;
|
||||
}
|
||||
|
||||
.my-plugin-setting-text2 {
|
||||
width: 30em;
|
||||
}
|
||||
|
||||
194
.obsidian/plugins/obsidian-relative-line-numbers/main.js
vendored
Normal file
194
.obsidian/plugins/obsidian-relative-line-numbers/main.js
vendored
Normal file
@@ -0,0 +1,194 @@
|
||||
/*
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
*/
|
||||
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
||||
var __export = (target, all) => {
|
||||
__markAsModule(target);
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __reExport = (target, module2, desc) => {
|
||||
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
||||
for (let key of __getOwnPropNames(module2))
|
||||
if (!__hasOwnProp.call(target, key) && key !== "default")
|
||||
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
||||
}
|
||||
return target;
|
||||
};
|
||||
var __toModule = (module2) => {
|
||||
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
||||
};
|
||||
var __async = (__this, __arguments, generator) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
var fulfilled = (value) => {
|
||||
try {
|
||||
step(generator.next(value));
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
};
|
||||
var rejected = (value) => {
|
||||
try {
|
||||
step(generator.throw(value));
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
};
|
||||
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
||||
step((generator = generator.apply(__this, __arguments)).next());
|
||||
});
|
||||
};
|
||||
|
||||
// main.ts
|
||||
__export(exports, {
|
||||
default: () => RelativeLineNumbers
|
||||
});
|
||||
var import_obsidian = __toModule(require("obsidian"));
|
||||
|
||||
// extension.ts
|
||||
var import_view = __toModule(require("@codemirror/view"));
|
||||
var import_state = __toModule(require("@codemirror/state"));
|
||||
var import_language = __toModule(require("@codemirror/language"));
|
||||
var relativeLineNumberGutter = new import_state.Compartment();
|
||||
var Marker = class extends import_view.GutterMarker {
|
||||
constructor(text) {
|
||||
super();
|
||||
this.text = text;
|
||||
this.elementClass = "relative-line-numbers-mono";
|
||||
}
|
||||
toDOM() {
|
||||
return document.createTextNode(this.text);
|
||||
}
|
||||
};
|
||||
function linesCharLength(state) {
|
||||
return state.doc.lines.toString().length;
|
||||
}
|
||||
var absoluteLineNumberGutter = (0, import_view.gutter)({
|
||||
lineMarker: (view, line) => {
|
||||
const lineNo = view.state.doc.lineAt(line.from).number;
|
||||
const charLength = linesCharLength(view.state);
|
||||
const absoluteLineNo = new Marker(lineNo.toString().padStart(charLength, " "));
|
||||
const cursorLine = view.state.doc.lineAt(view.state.selection.asSingle().ranges[0].to).number;
|
||||
if (lineNo === cursorLine) {
|
||||
return absoluteLineNo;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
initialSpacer: (view) => {
|
||||
const spacer = new Marker("0".repeat(linesCharLength(view.state)));
|
||||
return spacer;
|
||||
}
|
||||
});
|
||||
function relativeLineNumbers(lineNo, state) {
|
||||
const charLength = linesCharLength(state);
|
||||
const blank = " ".padStart(charLength, " ");
|
||||
if (lineNo > state.doc.lines) {
|
||||
return blank;
|
||||
}
|
||||
const cursorLine = state.doc.lineAt(state.selection.asSingle().ranges[0].to).number;
|
||||
const start = Math.min(state.doc.line(lineNo).from, state.selection.asSingle().ranges[0].to);
|
||||
const stop = Math.max(state.doc.line(lineNo).from, state.selection.asSingle().ranges[0].to);
|
||||
const folds = (0, import_language.foldedRanges)(state);
|
||||
let foldedCount = 0;
|
||||
folds.between(start, stop, (from, to) => {
|
||||
let rangeStart = state.doc.lineAt(from).number;
|
||||
let rangeStop = state.doc.lineAt(to).number;
|
||||
foldedCount += rangeStop - rangeStart;
|
||||
});
|
||||
if (lineNo === cursorLine) {
|
||||
return blank;
|
||||
} else {
|
||||
return (Math.abs(cursorLine - lineNo) - foldedCount).toString().padStart(charLength, " ");
|
||||
}
|
||||
}
|
||||
var showLineNumbers = relativeLineNumberGutter.of((0, import_view.lineNumbers)({ formatNumber: relativeLineNumbers }));
|
||||
var lineNumbersUpdateListener = import_view.EditorView.updateListener.of((viewUpdate) => {
|
||||
if (viewUpdate.selectionSet) {
|
||||
viewUpdate.view.dispatch({
|
||||
effects: relativeLineNumberGutter.reconfigure((0, import_view.lineNumbers)({ formatNumber: relativeLineNumbers }))
|
||||
});
|
||||
}
|
||||
});
|
||||
function lineNumbersRelative() {
|
||||
return [absoluteLineNumberGutter, showLineNumbers, lineNumbersUpdateListener];
|
||||
}
|
||||
|
||||
// main.ts
|
||||
var RelativeLineNumbers = class extends import_obsidian.Plugin {
|
||||
isLegacy() {
|
||||
var _a;
|
||||
return (_a = this.app.vault.config) == null ? void 0 : _a.legacyEditor;
|
||||
}
|
||||
onload() {
|
||||
return __async(this, null, function* () {
|
||||
const showLineNumber = this.app.vault.getConfig("showLineNumber");
|
||||
if (showLineNumber) {
|
||||
this.enable();
|
||||
}
|
||||
this.setupConfigChangeListener();
|
||||
});
|
||||
}
|
||||
onunload() {
|
||||
this.disable();
|
||||
}
|
||||
enable() {
|
||||
this.enabled = true;
|
||||
if (this.isLegacy()) {
|
||||
this.legacyEnable();
|
||||
} else {
|
||||
this.registerEditorExtension(lineNumbersRelative());
|
||||
}
|
||||
}
|
||||
disable() {
|
||||
this.enabled = false;
|
||||
if (this.isLegacy) {
|
||||
this.legacyDisable();
|
||||
}
|
||||
}
|
||||
legacyEnable() {
|
||||
this.registerCodeMirror((cm) => {
|
||||
cm.on("cursorActivity", this.legacyRelativeLineNumbers);
|
||||
});
|
||||
}
|
||||
legacyDisable() {
|
||||
this.app.workspace.iterateCodeMirrors((cm) => {
|
||||
cm.off("cursorActivity", this.legacyRelativeLineNumbers);
|
||||
cm.setOption("lineNumberFormatter", CodeMirror.defaults["lineNumberFormatter"]);
|
||||
});
|
||||
}
|
||||
setupConfigChangeListener() {
|
||||
const configChangedEvent = this.app.vault.on("config-changed", () => {
|
||||
const showLineNumber = this.app.vault.getConfig("showLineNumber");
|
||||
if (showLineNumber && !this.enabled) {
|
||||
this.enable();
|
||||
} else if (!showLineNumber && this.enabled) {
|
||||
this.disable();
|
||||
}
|
||||
});
|
||||
configChangedEvent.ctx = this;
|
||||
this.registerEvent(configChangedEvent);
|
||||
}
|
||||
legacyRelativeLineNumbers(cm) {
|
||||
const current = cm.getCursor().line + 1;
|
||||
if (cm.state.curLineNum === current) {
|
||||
return;
|
||||
}
|
||||
cm.state.curLineNum = current;
|
||||
cm.setOption("lineNumberFormatter", (line) => {
|
||||
if (line === current) {
|
||||
return String(current);
|
||||
}
|
||||
return String(Math.abs(current - line));
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/* nosourcemap */
|
||||
10
.obsidian/plugins/obsidian-relative-line-numbers/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-relative-line-numbers/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "obsidian-relative-line-numbers",
|
||||
"name": "Relative Line Numbers",
|
||||
"version": "3.0.0",
|
||||
"minAppVersion": "1.4.16",
|
||||
"description": "Enables relative line numbers in editor mode",
|
||||
"author": "Nadav Spiegelman",
|
||||
"authorUrl": "https://nadav.is",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
10
.obsidian/plugins/obsidian-relative-line-numbers/styles.css
vendored
Normal file
10
.obsidian/plugins/obsidian-relative-line-numbers/styles.css
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
.relative-line-numbers-mono {
|
||||
font-family: monospace;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.cm-lineNumbers {
|
||||
font-family: monospace;
|
||||
white-space: pre;
|
||||
min-width: 25px; /* prevent relative line numbers from shifting on files with ~10-20 lines */
|
||||
}
|
||||
522
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
Normal file
522
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
12
.obsidian/plugins/obsidian-tasks-plugin/manifest.json
vendored
Normal file
12
.obsidian/plugins/obsidian-tasks-plugin/manifest.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"id": "obsidian-tasks-plugin",
|
||||
"name": "Tasks",
|
||||
"version": "8.0.0",
|
||||
"minAppVersion": "1.8.7",
|
||||
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
||||
"authorUrl": "https://github.com/obsidian-tasks-group",
|
||||
"fundingUrl": "https://github.com/sponsors/claremacrae",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
1
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
Normal file
1
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
Normal file
File diff suppressed because one or more lines are too long
47
.obsidian/plugins/templater-obsidian/data.json
vendored
Normal file
47
.obsidian/plugins/templater-obsidian/data.json
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"command_timeout": 5,
|
||||
"templates_folder": "",
|
||||
"templates_pairs": [
|
||||
[
|
||||
"",
|
||||
""
|
||||
]
|
||||
],
|
||||
"trigger_on_file_creation": true,
|
||||
"auto_jump_to_cursor": false,
|
||||
"enable_system_commands": false,
|
||||
"shell_path": "",
|
||||
"user_scripts_folder": "",
|
||||
"enable_folder_templates": true,
|
||||
"folder_templates": [
|
||||
{
|
||||
"folder": "200 projects",
|
||||
"template": "templates/tmpl_project.md"
|
||||
},
|
||||
{
|
||||
"folder": "400 resources/430 Movies Books Plays Games",
|
||||
"template": "templates/tmpl_media_resource.md"
|
||||
},
|
||||
{
|
||||
"folder": "400 resources/440 Code Cheats Snips CLI",
|
||||
"template": "templates/tmpl_technical_snippet.md"
|
||||
}
|
||||
],
|
||||
"enable_file_templates": false,
|
||||
"file_templates": [
|
||||
{
|
||||
"regex": ".*",
|
||||
"template": ""
|
||||
}
|
||||
],
|
||||
"syntax_highlighting": true,
|
||||
"syntax_highlighting_mobile": false,
|
||||
"enabled_templates_hotkeys": [
|
||||
""
|
||||
],
|
||||
"startup_templates": [
|
||||
""
|
||||
],
|
||||
"intellisense_render": 1,
|
||||
"ignore_folders_on_creation": []
|
||||
}
|
||||
53
.obsidian/plugins/templater-obsidian/main.js
vendored
Normal file
53
.obsidian/plugins/templater-obsidian/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
17
.obsidian/plugins/templater-obsidian/manifest.json
vendored
Normal file
17
.obsidian/plugins/templater-obsidian/manifest.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"id": "templater-obsidian",
|
||||
"name": "Templater",
|
||||
"version": "2.20.4",
|
||||
"description": "Advanced templating and automation using handlebars-like syntax.",
|
||||
"minAppVersion": "1.12.2",
|
||||
"author": "SilentVoid",
|
||||
"authorUrl": "https://github.com/SilentVoid13",
|
||||
"fundingUrl": {
|
||||
"GitHub Sponser (Zachatoo, maintainer)": "https://github.com/sponsors/Zachatoo",
|
||||
"Ko-fi (Zachatoo, maintainer)": "https://ko-fi.com/zachatoo",
|
||||
"GitHub Sponser (SilentVoid13, creator)": "https://github.com/sponsors/SilentVoid13",
|
||||
"Paypal (SilentVoid13, creator)": "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"
|
||||
},
|
||||
"helpUrl": "https://silentvoid13.github.io/Templater/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
226
.obsidian/plugins/templater-obsidian/styles.css
vendored
Normal file
226
.obsidian/plugins/templater-obsidian/styles.css
vendored
Normal file
@@ -0,0 +1,226 @@
|
||||
.templater_search {
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
|
||||
.templater_div {
|
||||
border-top: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.templater_div > .setting-item {
|
||||
border-top: none !important;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.templater_div > .setting-item > .setting-item-control {
|
||||
justify-content: space-around;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.templater_div
|
||||
> .setting-item
|
||||
> .setting-item-control
|
||||
> .setting-editor-extra-setting-button {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.templater_donating {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.templater_title {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-top: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.templater_template {
|
||||
align-self: center;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
.templater_cmd {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
font-size: 14px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.templater_div2 > .setting-item {
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.templater-prompt-div,
|
||||
.templater-multisuggester-div {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.templater-prompt-form {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.templater-prompt-input,
|
||||
.templater-multisuggester-input {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.templater-button-div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
textarea.templater-prompt-input {
|
||||
height: 10rem;
|
||||
}
|
||||
|
||||
textarea.templater-prompt-input:focus {
|
||||
border-color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
.templater-multisuggester-list {
|
||||
margin: 1.5em 0;
|
||||
}
|
||||
|
||||
.cm-s-obsidian .templater-command-bg {
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
background-color: var(--background-primary-alt);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command {
|
||||
font-size: 0.85em;
|
||||
font-family: var(--font-monospace);
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.cm-s-obsidian .templater-inline .cm-templater-command {
|
||||
background-color: var(--background-primary-alt);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag {
|
||||
color: var(--code-property, #008bff);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag {
|
||||
color: var(--code-function, #c0d700);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-keyword {
|
||||
color: var(--code-keyword, #00a7aa);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-atom {
|
||||
color: var(--code-normal, #f39b35);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-value,
|
||||
.cm-s-obsidian .cm-templater-command.cm-number,
|
||||
.cm-s-obsidian .cm-templater-command.cm-type {
|
||||
color: var(--code-value, #a06fca);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-def,
|
||||
.cm-s-obsidian .cm-templater-command.cm-type.cm-def {
|
||||
color: var(--code-normal, var(--text-normal));
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-property,
|
||||
.cm-s-obsidian .cm-templater-command.cm-property.cm-def,
|
||||
.cm-s-obsidian .cm-templater-command.cm-attribute {
|
||||
color: var(--code-function, #98e342);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-variable,
|
||||
.cm-s-obsidian .cm-templater-command.cm-variable-2,
|
||||
.cm-s-obsidian .cm-templater-command.cm-variable-3,
|
||||
.cm-s-obsidian .cm-templater-command.cm-meta {
|
||||
color: var(--code-property, #d4d4d4);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-callee,
|
||||
.cm-s-obsidian .cm-templater-command.cm-operator,
|
||||
.cm-s-obsidian .cm-templater-command.cm-qualifier,
|
||||
.cm-s-obsidian .cm-templater-command.cm-builtin {
|
||||
color: var(--code-operator, #fc4384);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-tag {
|
||||
color: var(--code-tag, #fc4384);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-comment,
|
||||
.cm-s-obsidian .cm-templater-command.cm-comment.cm-tag,
|
||||
.cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute {
|
||||
color: var(--code-comment, #696d70);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-string,
|
||||
.cm-s-obsidian .cm-templater-command.cm-string-2 {
|
||||
color: var(--code-string, #e6db74);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-header,
|
||||
.cm-s-obsidian .cm-templater-command.cm-hr {
|
||||
color: var(--code-keyword, #da7dae);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-link {
|
||||
color: var(--code-normal, #696d70);
|
||||
}
|
||||
|
||||
.cm-s-obsidian .cm-templater-command.cm-error {
|
||||
border-bottom: 1px solid #c42412;
|
||||
}
|
||||
|
||||
.CodeMirror-hints {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
overflow: hidden;
|
||||
list-style: none;
|
||||
|
||||
margin: 0;
|
||||
padding: 2px;
|
||||
|
||||
-webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
||||
-moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
||||
border-radius: 3px;
|
||||
border: 1px solid silver;
|
||||
|
||||
background: white;
|
||||
font-size: 90%;
|
||||
font-family: monospace;
|
||||
|
||||
max-height: 20em;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.CodeMirror-hint {
|
||||
margin: 0;
|
||||
padding: 0 4px;
|
||||
border-radius: 2px;
|
||||
white-space: pre;
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
li.CodeMirror-hint-active {
|
||||
background: #0088ff;
|
||||
color: white;
|
||||
}
|
||||
4
.obsidian/templates.json
vendored
Normal file
4
.obsidian/templates.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"dateFormat": "",
|
||||
"folder": "templates"
|
||||
}
|
||||
29
.obsidian/types.json
vendored
Normal file
29
.obsidian/types.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"types": {
|
||||
"aliases": "aliases",
|
||||
"cssclasses": "multitext",
|
||||
"tags": "tags",
|
||||
"TQ_explain": "checkbox",
|
||||
"TQ_extra_instructions": "text",
|
||||
"TQ_short_mode": "checkbox",
|
||||
"TQ_show_backlink": "checkbox",
|
||||
"TQ_show_cancelled_date": "checkbox",
|
||||
"TQ_show_created_date": "checkbox",
|
||||
"TQ_show_depends_on": "checkbox",
|
||||
"TQ_show_done_date": "checkbox",
|
||||
"TQ_show_due_date": "checkbox",
|
||||
"TQ_show_edit_button": "checkbox",
|
||||
"TQ_show_id": "checkbox",
|
||||
"TQ_show_on_completion": "checkbox",
|
||||
"TQ_show_postpone_button": "checkbox",
|
||||
"TQ_show_priority": "checkbox",
|
||||
"TQ_show_recurrence_rule": "checkbox",
|
||||
"TQ_show_scheduled_date": "checkbox",
|
||||
"TQ_show_start_date": "checkbox",
|
||||
"TQ_show_tags": "checkbox",
|
||||
"TQ_show_task_count": "checkbox",
|
||||
"TQ_show_toolbar": "checkbox",
|
||||
"TQ_show_tree": "checkbox",
|
||||
"TQ_show_urgency": "checkbox"
|
||||
}
|
||||
}
|
||||
72
.obsidian/workspace.json
vendored
72
.obsidian/workspace.json
vendored
@@ -4,37 +4,17 @@
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "dba263b736568647",
|
||||
"id": "6b42b5d4f561ec35",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "99df94e060edf9e7",
|
||||
"id": "845a8e3995ad4a8a",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Welcome.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Welcome"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "3fb56e3c03982ab2",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "773f6d58eed0c476",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "graph",
|
||||
"type": "empty",
|
||||
"state": {},
|
||||
"icon": "lucide-git-fork",
|
||||
"title": "Graph view"
|
||||
"icon": "lucide-file",
|
||||
"title": "New tab"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -180,6 +160,16 @@
|
||||
"icon": "lucide-list",
|
||||
"title": "Outline of Welcome"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6348f0a2c94b227a",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "calendar",
|
||||
"state": {},
|
||||
"icon": "calendar-with-checkmark",
|
||||
"title": "Calendar"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -196,11 +186,39 @@
|
||||
"daily-notes:Open today's daily note": false,
|
||||
"templates:Insert template": false,
|
||||
"command-palette:Open command palette": false,
|
||||
"bases:Create new base": false
|
||||
"bases:Create new base": false,
|
||||
"github-sync:Sync with Remote": false,
|
||||
"templater-obsidian:Templater": false
|
||||
}
|
||||
},
|
||||
"active": "99df94e060edf9e7",
|
||||
"active": "845a8e3995ad4a8a",
|
||||
"lastOpenFiles": [
|
||||
"daily",
|
||||
"inbox",
|
||||
"templates/tmpl_media_resource.md",
|
||||
"templates/tmpl_technical_snippet.md",
|
||||
"Untitled.canvas",
|
||||
"templates/tmpl_project.md",
|
||||
"templates/tmpl_generic_note.md",
|
||||
"100 inbox/1778533395-ZAPX.md",
|
||||
"100 inbox/1778535439-NWLI.md",
|
||||
"100 inbox/1778545221-MOBT.md",
|
||||
"100 inbox/1778553013-ARYX.md",
|
||||
"100 inbox/1778553155-TGHR.md",
|
||||
"100 inbox/1778553635-RFCE.md",
|
||||
"100 inbox/1778493481-VJZL.md",
|
||||
"400 resources/460 Family Archive",
|
||||
"400 resources/450 Recipes",
|
||||
"400 resources/440 Code Cheats Snips CLI",
|
||||
"200 projects/260 Build Create Make",
|
||||
"200 projects/250 IOT",
|
||||
"200 projects/240 Web Sites",
|
||||
"300 areas/395 Food",
|
||||
"200 projects/230 Display Screen",
|
||||
"300 areas/390 Dev Ops Computers.md",
|
||||
"300 areas/350 AI.md",
|
||||
"templates/ai_dev_ops.md",
|
||||
"Pi_config_ideas.md",
|
||||
"Welcome.md"
|
||||
]
|
||||
}
|
||||
0
.trash/350 AI.md
Normal file
0
.trash/350 AI.md
Normal file
0
.trash/390 Dev Ops Computers.md
Normal file
0
.trash/390 Dev Ops Computers.md
Normal file
0
.trash/Pi_config_ideas.md
Normal file
0
.trash/Pi_config_ideas.md
Normal file
0
.trash/Untitled.canvas
Normal file
0
.trash/Untitled.canvas
Normal file
37
100 inbox/1778493481-VJZL.md
Normal file
37
100 inbox/1778493481-VJZL.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: pi_setup
|
||||
summary: Research, ideas, suggestions for setting up pi
|
||||
type: Note
|
||||
client:
|
||||
{client}:
|
||||
project: AI
|
||||
status: active
|
||||
priority: 3
|
||||
last_verified: 2026-05-11
|
||||
tags:
|
||||
- AI Pi
|
||||
aliases: []
|
||||
id: 1778493481-VJZL
|
||||
---
|
||||
|
||||
# pi_setup
|
||||
|
||||
## 🏗 System Architecture
|
||||
- **Software/Stack:** pi
|
||||
- **Components:** {{components}}
|
||||
- **Hardware/IOT:** {{hardware_specs}}
|
||||
|
||||
## 🎯 Objective
|
||||
[What problem does this note solve for Graphify?]
|
||||
|
||||
## 📝 Technical Implementation
|
||||
- **Runtime:** {{runtime}}
|
||||
- **Environment:** [e.g. Production, Staging, Edge]
|
||||
|
||||
## 🖇️ Context & Connections
|
||||
- **Upstream:** [[Parent Component]]
|
||||
- **Downstream:** [[Dependent Services]]
|
||||
- **Related:** https://github.com/amosblomqvist/pi-config https://www.youtube.com/watch?v=DWWrLlM3gwQ
|
||||
|
||||
---
|
||||
*Created: 2026-05-11*
|
||||
113
100 inbox/1778533395-ZAPX.md
Normal file
113
100 inbox/1778533395-ZAPX.md
Normal file
@@ -0,0 +1,113 @@
|
||||
---
|
||||
title: Web Pages
|
||||
summary: Active web sites and pages for things that need doing or I am working on.
|
||||
type: websites
|
||||
client: Sam
|
||||
project: AI
|
||||
status: active
|
||||
priority: 5
|
||||
last_verified: 2026-05-12
|
||||
tags:
|
||||
- AI Resource Website
|
||||
aliases: []
|
||||
id: 1778533395-ZAPX
|
||||
---
|
||||
# Notes
|
||||
- [] Use DataView Plug in to create data table of all notes with bookmark tags etc.
|
||||
- [] Intall Bookmarks Plugin so I can pin all notes with #website
|
||||
- [] Install Open Link With to select a browser etc
|
||||
- [] Use [Link name - browser](http://url) for links. Or just the url.
|
||||
|
||||
# TODO
|
||||
- [] OpenCode Go subscription - https://checkout.stripe.com/c/pay/cs_live_b1Tyblb7VV4ZZnSdz3K3cYdwx9pswHyB2wq0XUfwR1i9hxi7b7ULnI5h6E#fidnandhYHdWcXxpYCc%2FJ2FgY2RwaXEnKSdicGRmZGhqaWBTZHdsZGtxJz8nZmprcXdqaScpJ2R1bE5gfCc%2FJ3VuWmlsc2BaMDRXdn9HTTdWcXBXdzVpZ11uSkZBcEAyNjRJbXx1d1dEbkxNYWh%2FfzB3cFA9QVUzf11kPU10fEdGSFRtSU9%2FVl1cU301NmNqS3wzNH1hcGx0Nm48SzdJVjw1NWhLMGhxTmI9JyknY3dqaFZgd3Ngdyc%2FcXdwYCknZ2RmbmJ3anBrYUZqaWp3Jz8nJjU1NTU1NScpJ2lkfGpwcVF8dWAnPydocGlxbFpscWBoJyknYGtkZ2lgVWlkZmBtamlhYHd2Jz9xd3BgeCUl
|
||||
- [] Linear - alternative to JIRA. TODOs for development which could be looked at to integrate with an agent.
|
||||
- []
|
||||
|
||||
|
||||
|
||||
# Web Pages
|
||||
|
||||
## Galagher
|
||||
url: https://careers.gallagher.com/connect
|
||||
tags: #bookmark #resource #website
|
||||
- Job with company that makes farm products
|
||||
|
||||
|
||||
## Galagher
|
||||
url: https://au.seek.com/iot-developer-jobs?jobId=91658860&type=standard
|
||||
tags: #bookmark #resource #website
|
||||
- Job
|
||||
|
||||
|
||||
|
||||
|
||||
## OpenCode GO
|
||||
url: https://opencode.ai/docs/go/#usage-limits
|
||||
tags: #bookmark #resource #website
|
||||
- Get Open Code GO subscription and use that. Might be cheaper than OpenRouter.
|
||||
|
||||
## Mautic
|
||||
url: https://mautic.org/
|
||||
tags: #bookmark #resource #website
|
||||
- Open source marketing for Emails etc.
|
||||
|
||||
## Google Stitch
|
||||
url: https://stitch.withgoogle.com
|
||||
tags: #bookmark #resource #website
|
||||
- For AI design
|
||||
|
||||
## Graphify
|
||||
url: https://graphify.net/
|
||||
tags: #bookmark #resource #website
|
||||
- This creates a AI map of Obsidian and other data
|
||||
|
||||
|
||||
## Graphify Github
|
||||
url: https://github.com/safishamsi/graphify
|
||||
tags: #bookmark #resource #website
|
||||
- Create AI map of Obsidian notes
|
||||
|
||||
## Archon
|
||||
url: https://github.com/coleam00/archon
|
||||
tags: #bookmark #resource #website
|
||||
- Work flow for Ai agents. Implement it.
|
||||
|
||||
## Obsidian PI Youtube Channel Eero Alvar
|
||||
url: https://www.youtube.com/@EeroAlvar
|
||||
tags: #bookmark #resource #website
|
||||
- Tutorials on set up, pi-config is good. Here is repo https://github.com/amosblomqvist/pi-config
|
||||
|
||||
## Plannotator
|
||||
url: https://github.com/backnotprop/plannotator
|
||||
tags: #bookmark #resource #website
|
||||
- OpenSpec feeds into plannotator then Archon
|
||||
|
||||
## Langfuse
|
||||
url: http://localhost:3000/auth/sign-in
|
||||
tags: #bookmark #resource #website
|
||||
- Langfuse .27 docker for working with langraph and langchain.
|
||||
|
||||
|
||||
## Openrouter.ai
|
||||
url: https://openrouter.ai/settings/credits
|
||||
tags: #bookmark #resource #website
|
||||
- Open router credits
|
||||
- [] Swap to opencode Go plan. Delete T3
|
||||
|
||||
## {{title}}
|
||||
url: {{link}}
|
||||
tags: #bookmark #resource #website
|
||||
- Why are you using this page
|
||||
|
||||
## {{title}}
|
||||
url: {{link}}
|
||||
tags: #bookmark #resource #website
|
||||
- Why are you using this page
|
||||
|
||||
## {{title}}
|
||||
url: {{link}}
|
||||
tags: #bookmark #resource #website
|
||||
- Why are you using this page
|
||||
|
||||
|
||||
|
||||
30
100 inbox/1778535439-NWLI.md
Normal file
30
100 inbox/1778535439-NWLI.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: AI Interface Design Resource
|
||||
summary: Tools for AI interface design
|
||||
type: websites
|
||||
client: Sam
|
||||
project: AI
|
||||
status: active
|
||||
priority: 5
|
||||
last_verified: 2026-05-12
|
||||
tags:
|
||||
- AI Design Website
|
||||
aliases: []
|
||||
id: 1778535439-NWLI
|
||||
---
|
||||
|
||||
# AI Interface Design Resource
|
||||
|
||||
- **Related:** https://github.com/VoltAgent/awesome-design-md
|
||||
|
||||
# Github Awesome - Design
|
||||
url: https://github.com/VoltAgent/awesome-design-md
|
||||
Website: [Github Votagent awesome-design-md](https://github.com/VoltAgent/awesome-design-md)
|
||||
|
||||
|
||||
# Stich Google
|
||||
url: https://stitch.withgoogle.com
|
||||
Website: [Google stitch](https://stitch.withgoogle.com)
|
||||
|
||||
---
|
||||
*Created: 2026-05-12*
|
||||
68
100 inbox/1778545221-MOBT.md
Normal file
68
100 inbox/1778545221-MOBT.md
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Local Web Pages
|
||||
summary: React, router and other local pages
|
||||
type: websites
|
||||
client: Sam
|
||||
project: AI
|
||||
status: active
|
||||
priority: 5
|
||||
last_verified: 2026-05-12
|
||||
tags:
|
||||
- web pages, web sites, AI, urls
|
||||
aliases: []
|
||||
id: 1778545221-MOBT
|
||||
---
|
||||
|
||||
# Local Web Pages
|
||||
- [] main router
|
||||
- [] secondary router
|
||||
- [] react pages
|
||||
- [] .13 docker containers and .27 without caddy URLS. Whisper etc
|
||||
- [] put .13 and .27, particularly .27 behind 3rd caddy
|
||||
- [] second pi
|
||||
- [] links to front pages for docker container
|
||||
- [ ]
|
||||
---
|
||||
|
||||
|
||||
## Langfuse
|
||||
url: http://localhost:3000/auth/sign-in
|
||||
tags: #website, #ai
|
||||
- Visual GUi for langchain and langraph
|
||||
|
||||
## Archon
|
||||
url: http://localhost:3090/chat
|
||||
tags: #website, #ai
|
||||
- AI project flow coordinator
|
||||
|
||||
## Supabase
|
||||
url: http://localhost:8001/project/default
|
||||
tags: #website, #ai
|
||||
- This is used for verification and authentication.
|
||||
|
||||
|
||||
## Proxmox
|
||||
url: https://proxmox.home.lab/#v1:0:=qemu%2F105:4:::::::5
|
||||
tags: #website, #ai
|
||||
- root.
|
||||
|
||||
## Netcom Router
|
||||
url: http://192.168.20.1:8079/login.html
|
||||
|
||||
- Main home router. admin
|
||||
|
||||
## secondary router
|
||||
url: http://192.168.20.1:254
|
||||
|
||||
- admin.
|
||||
|
||||
|
||||
## Snapcast
|
||||
url: http://192.168.20.13:1780/
|
||||
|
||||
- [] Create caddy DNS name with pihole for Snapcast
|
||||
- Control local speaker audio on Snapcast network. MainAudio for both spotify and announcements.
|
||||
|
||||
##
|
||||
|
||||
*Created: 2026-05-12*
|
||||
34
100 inbox/1778553013-ARYX.md
Normal file
34
100 inbox/1778553013-ARYX.md
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: Docker Containers
|
||||
summary: Overview of docker containers on my network
|
||||
type: note
|
||||
client: sam
|
||||
project: ai
|
||||
status: active
|
||||
priority: 5
|
||||
last_verified: 2026-05-12
|
||||
tags:
|
||||
- ai docker network
|
||||
aliases: []
|
||||
id: 1778553013-ARYX
|
||||
---
|
||||
|
||||
# Docker Containers
|
||||
|
||||
## 🏗 System Architecture
|
||||
- **Software/Stack:** docker
|
||||
|
||||
## 🎯 Objective
|
||||
[What problem does this note solve for Graphify?]
|
||||
|
||||
## 📝 Technical Implementation
|
||||
- **Runtime:** {{runtime}}
|
||||
- **Environment:** [e.g. Production, Staging, Edge]
|
||||
|
||||
## 🖇️ Context & Connections
|
||||
- **Upstream:** [[Parent Component]]
|
||||
- **Downstream:** [[Dependent Services]]
|
||||
- **Related:** {{related_links}}
|
||||
|
||||
---
|
||||
*Created: 2026-05-12*
|
||||
41
100 inbox/1778553155-TGHR.md
Normal file
41
100 inbox/1778553155-TGHR.md
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: Home Network
|
||||
summary: Description and notes on home network
|
||||
type: note
|
||||
client: sam
|
||||
project: ai
|
||||
status: active
|
||||
priority: 5
|
||||
last_verified: 2026-05-12
|
||||
tags:
|
||||
- ai network
|
||||
aliases: []
|
||||
id: 1778553155-TGHR
|
||||
---
|
||||
|
||||
# Home Network
|
||||
## TODO
|
||||
- [] RustFS for links like s3 to container.
|
||||
- [] Restore back up System
|
||||
- [] Fix Home Assistant - Tuya.
|
||||
|
||||
|
||||
## 🏗 System Architecture
|
||||
- **Software/Stack:** {{software}}
|
||||
- **Components:** {{components}}
|
||||
- **Hardware/IOT:** {{hardware_specs}}
|
||||
|
||||
## 🎯 Objective
|
||||
[What problem does this note solve for Graphify?]
|
||||
|
||||
## 📝 Technical Implementation
|
||||
- **Runtime:** {{runtime}}
|
||||
- **Environment:** [e.g. Production, Staging, Edge]
|
||||
|
||||
## 🖇️ Context & Connections
|
||||
- **Upstream:** [[Parent Component]]
|
||||
- **Downstream:** [[Dependent Services]]
|
||||
- **Related:** {{related_links}}
|
||||
|
||||
---
|
||||
*Created: 2026-05-12*
|
||||
77
100 inbox/1778553635-RFCE.md
Normal file
77
100 inbox/1778553635-RFCE.md
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
title: Local Web Host Set Up
|
||||
summary: Transition from inmotion hosting to a local web host
|
||||
type: note
|
||||
client: sam
|
||||
project: websites
|
||||
status: active
|
||||
priority: 5
|
||||
last_verified: 2026-05-12
|
||||
tags:
|
||||
- self-hosting, networking, email, sysadmin, docker, audasmedia, inmotionhosting, email, rustfs
|
||||
aliases: []
|
||||
id: 1778553635-RFCE
|
||||
---
|
||||
|
||||
# Local Web Host Set Up
|
||||
|
||||
## 🏗 System Architecture
|
||||
- **Software/Stack:** RustFS, Cpanel, Mailcow
|
||||
- **Components:** {{components}}
|
||||
- **Hardware/IOT:** {{hardware_specs}}
|
||||
|
||||
## 🎯 Objective
|
||||
|
||||
## 📝 Technical Implementation
|
||||
- **Runtime:** {{runtime}}
|
||||
- **Environment:** [e.g. Production, Staging, Edge]
|
||||
|
||||
## 🖇️ Context & Connections
|
||||
- **Upstream:** [[Parent Component]]
|
||||
- **Downstream:** [[Dependent Services]]
|
||||
- **Related:** {{related_links}}
|
||||
|
||||
|
||||
# Local Web Host Strategy
|
||||
|
||||
A high-performance, cost-effective blueprint for transitioning from managed hosting to a local self-hosted environment while maintaining reliability and deliverability.
|
||||
|
||||
## 1. Public Access & Connectivity
|
||||
To bridge your local network with the public internet without a static IP:
|
||||
- **Dynamic DNS (DDNS):** Use **Cloudflare** or **Namecheap** APIs to automatically update your domain's A-record to your home IP.
|
||||
- **Traffic Management:** Deploy **Nginx Proxy Manager** (Docker) as a reverse proxy. This allows you to route `site1.yourdomain.com` and `site2.yourdomain.com` to different local containers/servers via ports 80/443.
|
||||
|
||||
## 2. The Email Problem (Deliverability)
|
||||
Residential IPs are frequently blacklisted. Use a **Hybrid Relay Model**:
|
||||
- **Local Server:** Run **Mailcow** or **Mail-in-a-Box** in a Docker container for internal storage and receiving.
|
||||
- **Outgoing Relay:** Use **Amazon SES** (Simple Email Service) as an SMTP relay.
|
||||
- **Cost:** ~$0.10 per 1,000 emails.
|
||||
- **Outcome:** High reputation and low spam-flagging compared to traditional web hosts like InMotion.
|
||||
- **Security:** Ensure DNS records include **SPF**, **DKIM**, and **DMARC**.
|
||||
|
||||
## 3. Control Panel (cPanel Alternatives)
|
||||
Manage your local environment with lightweight, Docker-friendly GUIs:
|
||||
- **aaPanel:** Modular and beginner-friendly.
|
||||
- **HestiaCP:** Lightweight for Linux enthusiasts.
|
||||
- **OpenPanel:** Specifically built for Docker-based site isolation.
|
||||
|
||||
## 4. Off-Site Storage & Backups
|
||||
Maintain "off-site" redundancy for your local data using S3-compatible protocols:
|
||||
- **Backblaze B2:** ~$6/TB/month. Great for "set and forget" backups.
|
||||
- **Hetzner Storage Box:** Extremely cheap for raw storage via SFTP/Samba.
|
||||
- **Tooling:** Use **Rclone** or **Duplicati** to automate local-to-cloud sync.
|
||||
|
||||
## 5. Potential Role for RustFS
|
||||
- **Local Object Storage:** Use **RustFS** locally if you build apps requiring an S3-compatible backend for large assets (images/video) without paying cloud egress fees.
|
||||
|
||||
---
|
||||
**Next Steps:**
|
||||
1. Configure DDNS on your router or via a local cron job.
|
||||
2. Set up a Docker host (Ubuntu Server/Debian).
|
||||
3. Verify Amazon SES "Sandbox" exit to start sending live mail.
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
*Created: 2026-05-12*
|
||||
34
templates/ai_dev_ops.md
Normal file
34
templates/ai_dev_ops.md
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: "{{title}}"
|
||||
summary: "{{summary}}"
|
||||
type: {{type}}
|
||||
client: {{client}}
|
||||
project: {{project}}
|
||||
status: {{status}}
|
||||
priority: {{priority}}
|
||||
last_verified: {{date:YYYY-MM-DD}}
|
||||
tags:
|
||||
- {{topic_tag}}
|
||||
---
|
||||
|
||||
# {{title}}
|
||||
|
||||
## 🏗 System Architecture
|
||||
- **Software/Stack:** {{software}}
|
||||
- **Components:** {{components}}
|
||||
- **Hardware/IOT:** {{hardware_specs}}
|
||||
|
||||
## 🎯 Objective
|
||||
[What problem does this note solve for Graphify?]
|
||||
|
||||
## 📝 Technical Implementation
|
||||
- **Runtime:** {{runtime}}
|
||||
- **Environment:** [e.g. Production, Staging, Edge]
|
||||
|
||||
## 🖇️ Context & Connections
|
||||
- **Upstream:** [[Parent Component]]
|
||||
- **Downstream:** [[Dependent Services]]
|
||||
- **Related:** {{related_links}}
|
||||
|
||||
---
|
||||
*Created: {{date:YYYY-MM-DD}}*
|
||||
10
templates/tmpl_generic_note.md
Normal file
10
templates/tmpl_generic_note.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
created: <% tp.file.creation_date("YYYY-MM-DD HH:mm") %>
|
||||
modified: <% tp.file.last_modified_date("YYYY-MM-DD HH:mm") %>
|
||||
type: note
|
||||
tags: []
|
||||
aliases: []
|
||||
---
|
||||
# [[<% tp.file.title %>]]
|
||||
|
||||
|
||||
12
templates/tmpl_media_resource.md
Normal file
12
templates/tmpl_media_resource.md
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
created: <% tp.file.creation_date("YYYY-MM-DD") %>
|
||||
type: media
|
||||
category: #film
|
||||
status: #to-watch
|
||||
rating: ⭐⭐⭐⭐⭐
|
||||
source_url:
|
||||
---
|
||||
# Review: <% tp.file.title %>
|
||||
|
||||
## 🧠 Summary & Thoughts
|
||||
-
|
||||
16
templates/tmpl_project.md
Normal file
16
templates/tmpl_project.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
created: <% tp.file.creation_date("YYYY-MM-DD HH:mm") %>
|
||||
modified: <% tp.file.last_modified_date("YYYY-MM-DD HH:mm") %>
|
||||
type: project
|
||||
status: #todo
|
||||
due_date: YYYY-MM-DD
|
||||
project_group: <% tp.file.folder(true) %>
|
||||
tags: [active-project]
|
||||
---
|
||||
# Project: <% tp.file.title %>
|
||||
|
||||
## 🎯 Objectives
|
||||
- [ ]
|
||||
|
||||
## 📓 Log & Milestones
|
||||
-
|
||||
10
templates/tmpl_technical_snippet.md
Normal file
10
templates/tmpl_technical_snippet.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
created: <% tp.file.creation_date("YYYY-MM-DD HH:mm") %>
|
||||
type: documentation
|
||||
language:
|
||||
environment:
|
||||
source_url:
|
||||
tags: [dev, snippets]
|
||||
---
|
||||
# Tech Snippet: <% tp.file.title %>
|
||||
|
||||
Reference in New Issue
Block a user