This repository has been archived on 2025-11-16. You can view files and clone it, but cannot push or open issues or pull requests.
John b62b890482 Add healthchecks and resource constraints to all services
Added healthchecks:
- adminer: PHP file_get_contents check
- authentik_server: ak healthcheck command
- authentik_redis: redis-cli ping
- paperless_redis: redis-cli ping
- paperless_webserver: curl localhost:8000
- n8n: wget healthz endpoint
- traefik: wget ping endpoint (with --ping enabled)
- tracker-nginx: curl localhost:80

Added resource limits:
- adminer: 512M limit, 128M reservation
- authentik_server: 1G/1 CPU limit, 512M reservation
- authentik_worker: 1G/1 CPU limit, 512M reservation
- authentik_redis: 512M limit, 128M reservation
- paperless_redis: 512M limit, 128M reservation
- paperless_webserver: 2G/2 CPU limit, 1G reservation
- traefik: 512M/0.5 CPU limit, 256M reservation
- tracker-nginx: 256M limit, 64M reservation

All services now have proper health monitoring and resource constraints
to prevent resource exhaustion and improve reliability.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 09:08:49 +00:00
2025-10-25 14:44:41 +00:00

swarm-production

Production Docker Swarm Infrastructure

Cluster Overview

Nodes

  • p0 (Manager/Leader) - Infrastructure services
  • p1 (Manager) - Application services
  • p2 (Manager) - Application services
  • p3 (Manager) - Application services

All nodes are managers providing a 4-node quorum (can tolerate 2 node failures while maintaining quorum).

Storage

  • GlusterFS mounted at /home/doc/swarm-data/ on all nodes
  • Shared storage enables services to run on any node without storage constraints

Service Distribution Strategy

Pinned Services

Services that must run on specific nodes:

  • traefik (p0) - Published ports 80/443, needs stable IP for DNS
  • portainer (p0) - Management UI, stays with leader for convenience
  • rsync (manager constraint) - Backup service, needs manager access

Floating Services

Services that can run on any node (swarm auto-balances):

  • adminer
  • authentik (server, worker, redis)
  • n8n
  • paperless (webserver, redis)
  • tracker-nginx
  • uptime-kuma

Recent Changes (2025-10-30)

Swarm Rebalancing

  • Promoted p1, p2, p3 from workers to managers
  • Removed unnecessary hostname constraints from service configs
  • Force-redeployed services to redistribute across all nodes
  • Verified GlusterFS accessibility on all nodes

Results

  • Achieved balanced workload distribution across all 4 nodes
  • Improved high availability with 4-node manager quorum
  • Services now self-balance automatically when nodes fail/recover
  • Fixed Portainer agent connectivity by restarting agents after manager promotion
Description
Production Docker Swarm Infrastructure
Readme 465 KiB
Languages
Text 100%