feat: remove Conduit Matrix service
Remove all traces of the Conduit Matrix homeserver service including: - Delete conduit-compose.yml.j2 template and conduit.yml task file - Remove conduit from development services category - Remove conduit Caddy reverse proxy configuration - Remove conduit subdomain from domains.yml - Remove conduit DNS A record from Route53 - Delete Matrix well-known files (client/server) - Update all documentation from 25 to 24 services 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
This is a personal infrastructure Ansible playbook that automates deployment and management of 25 self-hosted Docker services across two domains (`thesatelliteoflove.com` and `nerder.land`). The setup uses Tailscale VPN for secure networking and Caddy for reverse proxy with automated HTTPS.
|
This is a personal infrastructure Ansible playbook that automates deployment and management of 24 self-hosted Docker services across two domains (`thesatelliteoflove.com` and `nerder.land`). The setup uses Tailscale VPN for secure networking and Caddy for reverse proxy with automated HTTPS.
|
||||||
|
|
||||||
**Important**: Always review `DEPLOYMENT_LEARNINGS.md` when working on this repository for lessons learned and troubleshooting guidance.
|
**Important**: Always review `DEPLOYMENT_LEARNINGS.md` when working on this repository for lessons learned and troubleshooting guidance.
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ ansible-playbook site.yml -i hosts.yml --tags common,cron --vault-password-file
|
|||||||
### Role Structure
|
### Role Structure
|
||||||
- **bootstrap**: Initial server hardening, user creation, Tailscale VPN setup
|
- **bootstrap**: Initial server hardening, user creation, Tailscale VPN setup
|
||||||
- **common**: Basic system configuration, UFW firewall management
|
- **common**: Basic system configuration, UFW firewall management
|
||||||
- **docker**: Comprehensive service deployment (25 containerized applications, organized by category)
|
- **docker**: Comprehensive service deployment (24 containerized applications, organized by category)
|
||||||
- **cron**: Scheduled task management (currently Warhammer RSS feed generation)
|
- **cron**: Scheduled task management (currently Warhammer RSS feed generation)
|
||||||
|
|
||||||
### Docker Role Organization (Reorganized into Logical Categories)
|
### Docker Role Organization (Reorganized into Logical Categories)
|
||||||
@@ -60,7 +60,7 @@ The docker role is now organized into logical service groups under `roles/docker
|
|||||||
- **infrastructure/**: Core platform components
|
- **infrastructure/**: Core platform components
|
||||||
- Caddy (reverse proxy), Authentik (SSO), Dockge (container management)
|
- Caddy (reverse proxy), Authentik (SSO), Dockge (container management)
|
||||||
- **development/**: Development and collaboration tools
|
- **development/**: Development and collaboration tools
|
||||||
- Gitea, Code Server, Matrix (Conduit)
|
- Gitea, Code Server
|
||||||
- **media/**: Content creation and consumption
|
- **media/**: Content creation and consumption
|
||||||
- Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Karakeep (formerly Hoarder), Manyfold
|
- Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Karakeep (formerly Hoarder), Manyfold
|
||||||
- **productivity/**: Personal organization and document management
|
- **productivity/**: Personal organization and document management
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ The playbook manages two main environments:
|
|||||||
|
|
||||||
## Services Deployed
|
## Services Deployed
|
||||||
|
|
||||||
The Docker role deploys and manages 25 self-hosted services organized into logical categories:
|
The Docker role deploys and manages 24 self-hosted services organized into logical categories:
|
||||||
|
|
||||||
### Infrastructure
|
### Infrastructure
|
||||||
- **Caddy** (Reverse proxy with automatic HTTPS)
|
- **Caddy** (Reverse proxy with automatic HTTPS)
|
||||||
@@ -20,7 +20,6 @@ The Docker role deploys and manages 25 self-hosted services organized into logic
|
|||||||
### Development
|
### Development
|
||||||
- **Gitea** (Git repository hosting)
|
- **Gitea** (Git repository hosting)
|
||||||
- **Code Server** (VS Code in browser)
|
- **Code Server** (VS Code in browser)
|
||||||
- **Matrix Conduit** (Communication/chat)
|
|
||||||
|
|
||||||
### Media
|
### Media
|
||||||
- **Audiobookshelf** (Audiobook server)
|
- **Audiobookshelf** (Audiobook server)
|
||||||
|
|||||||
2
dns.yml
2
dns.yml
@@ -35,8 +35,6 @@
|
|||||||
ip: "152.53.36.98"
|
ip: "152.53.36.98"
|
||||||
- name: watcher
|
- name: watcher
|
||||||
ip: "152.53.36.98"
|
ip: "152.53.36.98"
|
||||||
- name: chat
|
|
||||||
ip: "152.53.36.98"
|
|
||||||
- name: models
|
- name: models
|
||||||
ip: "152.53.36.98"
|
ip: "152.53.36.98"
|
||||||
- name: tasks
|
- name: tasks
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ subdomains:
|
|||||||
appriseapi: "appriseapi.{{ primary_domain }}"
|
appriseapi: "appriseapi.{{ primary_domain }}"
|
||||||
dockge: "dockge.{{ primary_domain }}"
|
dockge: "dockge.{{ primary_domain }}"
|
||||||
code: "code.{{ primary_domain }}" # Code Server
|
code: "code.{{ primary_domain }}" # Code Server
|
||||||
chat: "chat.{{ primary_domain }}" # Conduit Matrix
|
|
||||||
|
|
||||||
# Email domains for notifications
|
# Email domains for notifications
|
||||||
email_domains:
|
email_domains:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Service categories for organization
|
# Service categories for organization
|
||||||
service_categories:
|
service_categories:
|
||||||
infrastructure: ["caddy", "authentik", "dockge"]
|
infrastructure: ["caddy", "authentik", "dockge"]
|
||||||
development: ["gitea", "codeserver", "conduit"]
|
development: ["gitea", "codeserver"]
|
||||||
media: ["audiobookshelf", "calibre", "ghost", "pinchflat", "pinry", "hoarder", "manyfold"]
|
media: ["audiobookshelf", "calibre", "ghost", "pinchflat", "pinry", "hoarder", "manyfold"]
|
||||||
productivity: ["paperlessngx", "baikal", "syncthing", "mmdl", "heyform", "dawarich", "pingvin"]
|
productivity: ["paperlessngx", "baikal", "syncthing", "mmdl", "heyform", "dawarich", "pingvin"]
|
||||||
communication: ["gotosocial", "postiz"]
|
communication: ["gotosocial", "postiz"]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Docker Role
|
# Docker Role
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
Deploys and manages a comprehensive self-hosted infrastructure with 22+ containerized services organized into logical categories, transforming a server into a personal cloud platform with authentication, media management, productivity tools, and development services.
|
Deploys and manages a comprehensive self-hosted infrastructure with 24 containerized services organized into logical categories, transforming a server into a personal cloud platform with authentication, media management, productivity tools, and development services.
|
||||||
|
|
||||||
## Architecture Overview
|
## Architecture Overview
|
||||||
|
|
||||||
@@ -28,7 +28,6 @@ Deploys and manages a comprehensive self-hosted infrastructure with 22+ containe
|
|||||||
### Development (`development/`)
|
### Development (`development/`)
|
||||||
- **Gitea** - Self-hosted Git with CI/CD runners
|
- **Gitea** - Self-hosted Git with CI/CD runners
|
||||||
- **Code Server** - VS Code in the browser
|
- **Code Server** - VS Code in the browser
|
||||||
- **Conduit** - Matrix homeserver for communication
|
|
||||||
|
|
||||||
### Media (`media/`)
|
### Media (`media/`)
|
||||||
- **Audiobookshelf** - Audiobook and podcast server
|
- **Audiobookshelf** - Audiobook and podcast server
|
||||||
@@ -92,8 +91,7 @@ roles/docker/
|
|||||||
│ ├── development/
|
│ ├── development/
|
||||||
│ │ ├── main.yml # Development category orchestrator
|
│ │ ├── main.yml # Development category orchestrator
|
||||||
│ │ ├── gitea.yml # Git hosting
|
│ │ ├── gitea.yml # Git hosting
|
||||||
│ │ ├── codeserver.yml # VS Code server
|
│ │ └── codeserver.yml # VS Code server
|
||||||
│ │ └── conduit.yml # Matrix server
|
|
||||||
│ ├── media/ # Media services (7 services)
|
│ ├── media/ # Media services (7 services)
|
||||||
│ ├── productivity/ # Productivity services (7 services)
|
│ ├── productivity/ # Productivity services (7 services)
|
||||||
│ ├── communication/ # Communication services (2 services)
|
│ ├── communication/ # Communication services (2 services)
|
||||||
|
|||||||
@@ -64,13 +64,6 @@ thesatelliteoflove.com {
|
|||||||
file_server
|
file_server
|
||||||
}
|
}
|
||||||
|
|
||||||
chat.thesatelliteoflove.com, chat.thesatelliteoflove.com:8448 {
|
|
||||||
handle /.well-known/* {
|
|
||||||
root * /srv/matrix
|
|
||||||
file_server
|
|
||||||
}
|
|
||||||
reverse_proxy /_matrix/* conduit-homeserver-1:6167
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bookmarks.thesatelliteoflove.com {
|
bookmarks.thesatelliteoflove.com {
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"m.homeserver": {
|
|
||||||
"base_url": "https://chat.thesatelliteoflove.com"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"m.server": "chat.thesatelliteoflove.com:443"
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
- name: make conduit directories
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item}}"
|
|
||||||
state: directory
|
|
||||||
loop:
|
|
||||||
- /opt/stacks/conduit
|
|
||||||
|
|
||||||
- name: copy well-known files
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{item}}"
|
|
||||||
dest: /opt/stacks/caddy/site/matrix/
|
|
||||||
owner: root
|
|
||||||
mode: 644
|
|
||||||
loop:
|
|
||||||
- client
|
|
||||||
- server
|
|
||||||
|
|
||||||
- name: Template out the compose file
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: conduit-compose.yml.j2
|
|
||||||
dest: /opt/stacks/conduit/compose.yml
|
|
||||||
owner: root
|
|
||||||
mode: 644
|
|
||||||
|
|
||||||
- name: deploy conduit stack
|
|
||||||
community.docker.docker_compose_v2:
|
|
||||||
project_src: /opt/stacks/conduit
|
|
||||||
files:
|
|
||||||
- compose.yml
|
|
||||||
@@ -9,6 +9,3 @@
|
|||||||
import_tasks: codeserver.yml
|
import_tasks: codeserver.yml
|
||||||
tags: codeserver
|
tags: codeserver
|
||||||
|
|
||||||
- name: Install conduit
|
|
||||||
import_tasks: conduit.yml
|
|
||||||
tags: conduit
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
services:
|
|
||||||
homeserver:
|
|
||||||
image: matrixconduit/matrix-conduit:next
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- db:/var/lib/matrix-conduit/
|
|
||||||
labels:
|
|
||||||
glance.name: Conduit
|
|
||||||
glance.icon: si:matrix
|
|
||||||
glance.url: https://{{ subdomains.chat }}/
|
|
||||||
glance.description: Matrix server
|
|
||||||
environment:
|
|
||||||
CONDUIT_SERVER_NAME: {{ subdomains.chat }} # EDIT THIS
|
|
||||||
CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/
|
|
||||||
CONDUIT_DATABASE_BACKEND: rocksdb
|
|
||||||
CONDUIT_PORT: 6167
|
|
||||||
CONDUIT_MAX_REQUEST_SIZE: 20000000 # in bytes, ~20 MB
|
|
||||||
CONDUIT_ALLOW_REGISTRATION: 'true'
|
|
||||||
CONDUIT_ALLOW_FEDERATION: 'true'
|
|
||||||
CONDUIT_ALLOW_CHECK_FOR_UPDATES: 'true'
|
|
||||||
CONDUIT_TRUSTED_SERVERS: '["matrix.org"]'
|
|
||||||
#CONDUIT_MAX_CONCURRENT_REQUESTS: 100
|
|
||||||
CONDUIT_ADDRESS: 0.0.0.0
|
|
||||||
CONDUIT_CONFIG: '' # Ignore this
|
|
||||||
#
|
|
||||||
### Uncomment if you want to use your own Element-Web App.
|
|
||||||
### Note: You need to provide a config.json for Element and you also need a second
|
|
||||||
### Domain or Subdomain for the communication between Element and Conduit
|
|
||||||
### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md
|
|
||||||
# element-web:
|
|
||||||
# image: vectorim/element-web:latest
|
|
||||||
# restart: unless-stopped
|
|
||||||
# ports:
|
|
||||||
# - 8009:80
|
|
||||||
# volumes:
|
|
||||||
# - ./element_config.json:/app/config.json
|
|
||||||
# depends_on:
|
|
||||||
# - homeserver
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
db:
|
|
||||||
|
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
external: true
|
|
||||||
name: {{ docker.network_name }}
|
|
||||||
2
todo.md
2
todo.md
@@ -9,7 +9,7 @@
|
|||||||
roles/docker/tasks/
|
roles/docker/tasks/
|
||||||
├── main.yml (orchestrator)
|
├── main.yml (orchestrator)
|
||||||
├── infrastructure/ (caddy, authentik, dockge)
|
├── infrastructure/ (caddy, authentik, dockge)
|
||||||
├── development/ (gitea, codeserver, conduit)
|
├── development/ (gitea, codeserver)
|
||||||
├── media/ (audiobookshelf, calibre, ghost, pinchflat, pinry, hoarder, manyfold)
|
├── media/ (audiobookshelf, calibre, ghost, pinchflat, pinry, hoarder, manyfold)
|
||||||
├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, pingvin)
|
├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, pingvin)
|
||||||
├── communication/ (gotosocial, postiz)
|
├── communication/ (gotosocial, postiz)
|
||||||
|
|||||||
Reference in New Issue
Block a user