Add manifest.md
This commit is contained in:
44
manifest.md
Normal file
44
manifest.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# 🛡️ My Cloud Hub: Architecture & Operations
|
||||||
|
|
||||||
|
## 🌐 Global Architecture
|
||||||
|
* **Compute:** Linode 2GB Shared Instance (Chicago/us-ord)
|
||||||
|
* **OS:** Ubuntu 22.04 LTS
|
||||||
|
* **Ingress:** Cloudflare Zero Trust (Tunnels) with MFA/WARP
|
||||||
|
* **Backups:** Nightly (2:00 AM) to Linode Object Storage (S3) via `rclone`
|
||||||
|
|
||||||
|
## 🏗️ Docker Network Topology
|
||||||
|
| Network | Driver | Purpose |
|
||||||
|
| :--- | :--- | :--- |
|
||||||
|
| `web_gateway` | bridge (ext) | External traffic from Cloudflare to containers |
|
||||||
|
| `db_network` | bridge (ext) | Private traffic between Apps and Postgres |
|
||||||
|
|
||||||
|
## 📦 Service Inventory
|
||||||
|
| Service | URL | Directory | Database |
|
||||||
|
| :--- | :--- | :--- | :--- |
|
||||||
|
| **Dashboard** | `home.davisdre.com` | `/opt/docker/dashboard` | Static (Nginx) |
|
||||||
|
| **Gitea** | `git.davisdre.com` | `/opt/docker/gitea` | `gitea` (Postgres) |
|
||||||
|
| **Linkwarden** | `links.davisdre.com` | `/opt/docker/linkwarden` | `linkwarden` (Postgres) |
|
||||||
|
| **FreshRSS** | `news.davisdre.com` | `/opt/docker/freshrss` | `freshrss` (Postgres) |
|
||||||
|
| **Memos** | `memos.davisdre.com` | `/opt/docker/memos` | `memos` (Postgres) |
|
||||||
|
| **Surmai** | `travel.davisdre.com` | `/opt/docker/surmai` | Internal SQLite |
|
||||||
|
| **Postgres** | *Internal Only* | `/opt/docker/global-db` | **Universal DB** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Standard Operating Procedures (SOPs)
|
||||||
|
|
||||||
|
### 1. Updating the Dashboard
|
||||||
|
1. Modify `index.html` on local PC.
|
||||||
|
2. `git add . && git commit -m "update" && git push`
|
||||||
|
3. On Linode, run: `updatedash` (alias for `/opt/docker/dashboard/update-dash.sh`)
|
||||||
|
|
||||||
|
### 2. Adding a New App (Postgres-backed)
|
||||||
|
Run these commands to provision the DB before deploying the container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Update global-db/compose.yaml environment list first
|
||||||
|
# 2. Manually provision the DB (Live Instance)
|
||||||
|
docker exec -it global_postgres psql -U postgres -c "CREATE DATABASE app_name;"
|
||||||
|
docker exec -it global_postgres psql -U postgres -c "CREATE USER app_name WITH PASSWORD 'my-custom-password';"
|
||||||
|
docker exec -it global_postgres psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE app_name TO app_name;"
|
||||||
|
docker exec -it global_postgres psql -U postgres -c "ALTER DATABASE app_name OWNER TO app_name;"
|
||||||
Reference in New Issue
Block a user