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
|
||||
|
||||
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.
|
||||
|
||||
@ -51,7 +51,7 @@ ansible-playbook site.yml -i hosts.yml --tags common,cron --vault-password-file
|
||||
### Role Structure
|
||||
- **bootstrap**: Initial server hardening, user creation, Tailscale VPN setup
|
||||
- **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)
|
||||
|
||||
### 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
|
||||
- Caddy (reverse proxy), Authentik (SSO), Dockge (container management)
|
||||
- **development/**: Development and collaboration tools
|
||||
- Gitea, Code Server, Matrix (Conduit)
|
||||
- Gitea, Code Server
|
||||
- **media/**: Content creation and consumption
|
||||
- Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Karakeep (formerly Hoarder), Manyfold
|
||||
- **productivity/**: Personal organization and document management
|
||||
|
@ -10,7 +10,7 @@ The playbook manages two main environments:
|
||||
|
||||
## 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
|
||||
- **Caddy** (Reverse proxy with automatic HTTPS)
|
||||
@ -20,7 +20,6 @@ The Docker role deploys and manages 25 self-hosted services organized into logic
|
||||
### Development
|
||||
- **Gitea** (Git repository hosting)
|
||||
- **Code Server** (VS Code in browser)
|
||||
- **Matrix Conduit** (Communication/chat)
|
||||
|
||||
### Media
|
||||
- **Audiobookshelf** (Audiobook server)
|
||||
|
2
dns.yml
2
dns.yml
@ -35,8 +35,6 @@
|
||||
ip: "152.53.36.98"
|
||||
- name: watcher
|
||||
ip: "152.53.36.98"
|
||||
- name: chat
|
||||
ip: "152.53.36.98"
|
||||
- name: models
|
||||
ip: "152.53.36.98"
|
||||
- name: tasks
|
||||
|
@ -29,7 +29,6 @@ subdomains:
|
||||
appriseapi: "appriseapi.{{ primary_domain }}"
|
||||
dockge: "dockge.{{ primary_domain }}"
|
||||
code: "code.{{ primary_domain }}" # Code Server
|
||||
chat: "chat.{{ primary_domain }}" # Conduit Matrix
|
||||
|
||||
# Email domains for notifications
|
||||
email_domains:
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Service categories for organization
|
||||
service_categories:
|
||||
infrastructure: ["caddy", "authentik", "dockge"]
|
||||
development: ["gitea", "codeserver", "conduit"]
|
||||
development: ["gitea", "codeserver"]
|
||||
media: ["audiobookshelf", "calibre", "ghost", "pinchflat", "pinry", "hoarder", "manyfold"]
|
||||
productivity: ["paperlessngx", "baikal", "syncthing", "mmdl", "heyform", "dawarich", "pingvin"]
|
||||
communication: ["gotosocial", "postiz"]
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Docker Role
|
||||
|
||||
## 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
|
||||
|
||||
@ -28,7 +28,6 @@ Deploys and manages a comprehensive self-hosted infrastructure with 22+ containe
|
||||
### Development (`development/`)
|
||||
- **Gitea** - Self-hosted Git with CI/CD runners
|
||||
- **Code Server** - VS Code in the browser
|
||||
- **Conduit** - Matrix homeserver for communication
|
||||
|
||||
### Media (`media/`)
|
||||
- **Audiobookshelf** - Audiobook and podcast server
|
||||
@ -92,8 +91,7 @@ roles/docker/
|
||||
│ ├── development/
|
||||
│ │ ├── main.yml # Development category orchestrator
|
||||
│ │ ├── gitea.yml # Git hosting
|
||||
│ │ ├── codeserver.yml # VS Code server
|
||||
│ │ └── conduit.yml # Matrix server
|
||||
│ │ └── codeserver.yml # VS Code server
|
||||
│ ├── media/ # Media services (7 services)
|
||||
│ ├── productivity/ # Productivity services (7 services)
|
||||
│ ├── communication/ # Communication services (2 services)
|
||||
|
@ -64,13 +64,6 @@ thesatelliteoflove.com {
|
||||
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 {
|
||||
|
@ -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
|
||||
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/
|
||||
├── main.yml (orchestrator)
|
||||
├── infrastructure/ (caddy, authentik, dockge)
|
||||
├── development/ (gitea, codeserver, conduit)
|
||||
├── development/ (gitea, codeserver)
|
||||
├── media/ (audiobookshelf, calibre, ghost, pinchflat, pinry, hoarder, manyfold)
|
||||
├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, pingvin)
|
||||
├── communication/ (gotosocial, postiz)
|
||||
|
Reference in New Issue
Block a user