docs: add all untracked content

This commit is contained in:
georgew 2026-01-25 17:55:33 +00:00
parent b4ff8f0287
commit 26d5a8b7be
5 changed files with 195 additions and 0 deletions

45
cheat-sheet.md Normal file
View file

@ -0,0 +1,45 @@
---
title: Maintenance Cheat Sheet
description: Simple commands for general management of the server
published: 1
date: 2026-01-22T18:02:12.325Z
tags:
editor: markdown
dateCreated: 2026-01-22T18:02:09.446Z
---
# 🛠️ Maintenance & CLI Cheat Sheet
Common commands for managing Docker, Caddy, and developing apps.
## 🐳 Docker Management
* **List running containers:**
```bas
docker ps
```
* **Restart all apps:**
```bash
cd ~/directory && docker compose up -d
```
* **Clean up unused images:**
```bash
docker system prune -a
```
### Caddy Specific
* **Check Config Syntax:**
```bash
docker exec -w /etc/caddy caddy-proxy caddy validate
```
* **Apply Changes (reload):**
```bash
docker exec -w /etc/caddy caddy-proxy caddy reload
```
# 🏗️ Development Reminders
Node.js Build Command: Use `Buildx` to ensure compatibility with linux/amd64 architecture.
```bash
docker buildx build --platform linux/amd64 -t your-image-name .
```

38
google-drive.md Normal file
View file

@ -0,0 +1,38 @@
---
title: 🛠️ Rclone & Google Drive Setup
description: Description for setup of Rclone and Google Drive on the server
published: 1
date: 2026-01-23T17:53:17.857Z
tags:
editor: markdown
dateCreated: 2026-01-23T17:53:15.017Z
---
# 🛠️ Rclone Cloud Integration
This server uses **Rclone** to mount a specific subdirectory of Google Drive.
## 🔑 Connection Credentials
* **Google Cloud Project:** `georgew`
* **API Enabled:** Google Drive API
* **Auth Type:** OAuth2 (Client ID & Secret)
* **Remote Name:** `gdrive`
## 📁 Mount Specifics
To maximize security, the mount is restricted to a single folder. If I want to change in future I should re-initialise the mount. This would also need to update the systemd service (below) and also to update the audiobookshelf admin library setting (point to the new folder for audiobooks):
* **Source (Google Drive):** `gdrive:audiobooks`
* **Destination (Server):** `~/google-drive`
* **Access Level:** "Least Privilege" (The server cannot see any other Google Drive data).
## ⚙️ System Management
The mount is managed by a **systemd service** to ensure it restarts automatically.
* **Service File:** `/etc/systemd/system/rclone-gdrive.service`
* **Common Commands:**
* Check Status: `sudo systemctl status rclone-gdrive`
* Restart Mount: `sudo systemctl restart rclone-gdrive`
* Force Unmount: `fusermount -uz ~/google-drive`
## 🚀 Moving Books
To move a book from the local SSD to the Cloud Archive:
`mv ~/audiobookshelf/audiobooks/AuthorName ~/google-drive/`

41
home.md Normal file
View file

@ -0,0 +1,41 @@
---
title: Home
description: Useful links
published: 1
date: 2026-01-23T17:54:22.790Z
tags:
editor: markdown
dateCreated: 2026-01-22T18:07:18.049Z
---
# 🚀 George's Server Documentation
Welcome to the internal knowledge base for **personal-server-1**. This wiki contains everything needed to manage, maintain, and scale the current server infrastructure.
---
## 📂 Quick Navigation
### 🛡️ [Server Overview & Access](/server-overview)
*IP addresses, SSH credentials, Hetzner firewall settings, and security policies.*
### 🛠️ [Maintenance Cheat Sheet](/cheat-sheet)
*Essential Docker commands, Caddy reload instructions, and Node.js build reminders.*
### 📦 [Application Inventory](/inventory)
*A full list of running containers, their internal paths, and public URLs.*
### 📦 [Rclone and Google Drive (Audiobooks](/google-drive)
*Description for the setup of rclone, and audiobook library.*
---
## 🔗 External Dashboards
* **[Uptime Kuma (Status)](https://status.georgew.dev)** - Real-time monitoring and alert settings.
* **[Dozzle (Logs)](https://logs.georgew.dev)** - Live container log viewer.
* **[Hetzner Console](https://console.hetzner.cloud)** - Infrastructure management and billing.
---
> **Note:** Access to this wiki is restricted to authorized users. All server changes should be documented here immediately to maintain a "Single Source of Truth."

30
inventory.md Normal file
View file

@ -0,0 +1,30 @@
---
title: Inventory
description: List of services
published: 1
date: 2026-01-23T18:38:08.683Z
tags:
editor: markdown
dateCreated: 2026-01-22T18:04:19.256Z
---
# 📦 Application Inventory
Current status and internal paths for all services running on this server.
| Application | Internal Path | Public URL | Purpose |
| :--- | :--- | :--- | :--- |
| **Portfolio** | `~/portfolio` | `georgew.dev` | Public resume/site. |
| **Survey App** | `~/survey` | `datasaur.dev` | Internal tools. |
| **Caddy** | `~/caddy` | N/A | SSL & Routing. |
| **Dozzle** | `~/dozzle` | `logs.georgew.dev` | Real-time logs (Secured). |
| **Uptime Kuma**| `~/uptime-kuma`| `status.georgew.dev`| Monitoring & Alerts. |
| **Wiki.js** | `~/wiki` | `wiki.georgew.dev` | This documentation!. |
| **Audiobookshelf** | `~/audiobookshelf` | `http://100.66.70.69:13378` | Audiobook & Podcast Server. |
| **Rclone Mount** | `~/google-drive` | N/A | Google Drive Cloud Storage Bridge. |
---
## 🔔 Notifications
* **Service Alerts:** Managed via Uptime Kuma.
* **Channel:** Telegram Bot (`@georgew_server_bot`).

41
server-overview.md Normal file
View file

@ -0,0 +1,41 @@
---
title: Server Overview
description: Details of the server
published: 1
date: 2026-01-23T17:45:34.480Z
tags:
editor: markdown
dateCreated: 2026-01-22T17:55:26.650Z
---
# 🖥️ Server Overview & Access
This page contains the core connection details for the George's Personal Server hosted on Hetzner Cloud.
## 📍 Connection Details
* **Hetzner IP:** `188.34.204.15`
* **Location:** Nuremberg, Germany (hel1)
* **SSH User:** `george`
* **SSH Command:** `ssh george@188.34.204.15`
---
## 🔒 Security Configuration
* **Firewall (UFW):** Active.
* Allowed Ports: `22` (SSH), `80` (HTTP), `443` (HTTPS).
* **Fail2Ban:** Active. Protects against brute-force SSH attempts.
* **Snapshot Policy:** Manual snapshots should be taken in the Hetzner Console before major changes.
---
## 🌐 Domain Management
* **Registrar:** Namecheap.
* **DNS Strategy:** Individual A Records for subdomains.
## 💾 Storage Architecture
The server uses a **Hybrid Storage** model to balance performance and cost:
* **Local SSD (Hot):** 28GB available on `/`. Stores app configs and "Current Listen" audiobooks.
* **Cloud Storage (Cold):** 2TB Google One via Rclone.
* **Mount Point:** `~/google-drive`
* **Logic:** Uses a 10GB local VFS cache to ensure smooth streaming without high latency.