Commit Graph

112 Commits

Author SHA1 Message Date
Haitao Pan
96cf0d7d8a feat(stackflow): add declarative StackFlow + DNS roles 2026-02-08 13:53:36 +08:00
fa892488c7 Add HAProxy vhosts role with map-driven layout 2025-12-27 20:58:52 +08:00
Haitao Pan
617e12ff52 chore(gitops): remove ansible playbooks and host-level scripts 2025-12-21 19:25:55 +08:00
7b45701dbd Add retries when downloading Docker GPG key 2025-12-14 15:39:13 +08:00
65d98ce50a Add optional Debian package cleanup and refresh apt cache 2025-12-14 15:17:21 +08:00
aad7dfb7c2 Refactor common role repo and task structure 2025-12-14 15:10:06 +08:00
69bb3d3dad Make optional S3FS config opt-in 2025-12-14 14:57:27 +08:00
Haitao Pan
76ee00f393 feat(docker/zitadel): production-ready ACME automation + TLS proxy + idempotent init 2025-12-02 19:53:59 +08:00
shenlan
bd0ca5e490 Add playbook to install Docker on supported hosts 2025-12-01 20:13:26 +08:00
shenlan
6e1a52886e Add zot vhost role 2025-11-29 19:51:22 +08:00
Haitao Pan
e4cf88d3c3 feat(vhosts): add Alicloud DNS record module and batch sync role 2025-11-19 13:20:13 +08:00
Haitao Pan
3d773e2a83 nodejs role: install latest Node.js from NodeSource
- Install Node.js 20.x LTS from official NodeSource repository
- Install latest npm and configure with save-exact
- Install Yarn package manager (optional, configurable)
- Idempotent installation with version checking
- Adds npm global bin to system PATH
- Configurable version (LTS, major, or specific version)
- GPG-signed packages from official sources
- Support for custom npm global prefix
- Optional global npm package installation

Features:
- Removes old NodeSource repos before upgrade
- Adds NodeSource GPG key securely via HTTPS
- Creates npm global directory with proper permissions
- Template for /etc/profile.d/npm_global.sh
- Verification output showing installed versions

Variables:
- nodejs_version: "20.x" (default, can be 18.x, 22.x, or specific version)
- install_yarn: true (can be disabled)
- add_npm_to_path: true (adds npm bin to PATH)
- npm_config_prefix: "/usr/local/lib/npm"
- global_npm_packages: [] (optional list of packages)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 20:51:40 +08:00
Haitao Pan
f4d6bd2463 dovecot role: add mail group membership
- Add dovecot user to mail group for proper permissions
- Install dovecot-core package (alongside dovecot-imapd)
- Maintains existing dovecot configuration via templates
- Idempotent user module for group management

Configuration:
- Existing templates for dovecot.conf, 10-mail.conf, 10-auth.conf, 10-ssl.conf, 10-master.conf
- Service management with systemd

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 20:49:59 +08:00
Haitao Pan
f92eb3cfb7 chasquid role: enhance mail server configuration
- Install dovecot packages (dovecot-core, dovecot-imapd) alongside chasquid
- Create support user with secure home directory and nologin shell
- Add chasquid user to mail group for proper permissions
- Set cap_net_bind_service capability on chasquid binary
- Disable socket-based activation services (socket, smtp, submission, submission_tls)
- Disable IPv6 system-wide via sysctl
- Add custom systemd service template with security hardening:
  * Standalone mode (Type=simple)
  * CAP_NET_BIND_SERVICE for port binding
  * ProtectSystem, ProtectHome, PrivateTmp, NoNewPrivileges
  * Automatic restart on failure
- Convert systemd service to Jinja2 template for variable support
- Add email test configuration variables (domain, SMTP settings, test recipients)
- Add swaks email test task with variable-based configuration
- Create reboot handler for IPv6 changes
- Add reload systemd daemon handler

Security:
- Binary capabilities instead of running as root
- Comprehensive systemd security features
- NoNewPrivileges to prevent escalation
- Private temporary directory

Testing:
- Automated swaks email sending test
- Display DNS records with DKIM key information
- Configurable email credentials via variables

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 20:49:22 +08:00
Haitao Pan
136b205e01 firewall role: add UFW mail server firewall configuration
- Add comprehensive UFW firewall rules for mail server
- Opens essential ports: SSH (22), HTTPS (443), HTTP (80)
- Opens mail ports: SMTP (25), Submission (587), SMTPS (465), IMAPS (993)
- Blocks plaintext ports: POP3 (110), IMAP (143), POP3S (995)
- Allows LMTP (24) from private networks only
- Provides verification output with visual status display
- Default deny all incoming, allow all outgoing
- Security warnings included in output

Features:
- Idempotent UFW configuration
- Configurable via variables
- Clean visual output of all rules
- SSH added first to prevent lockout
- Documentation in defaults/main.yml

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 20:48:31 +08:00
shenlan
d3306d36a1 Set default dl business host for blackbox exporter 2025-10-03 18:51:43 +08:00
shenlan
ef6f602882 Fix blackbox exporter install from remote archive 2025-09-29 20:59:41 +08:00
Haitao Pan
648d0cb418 chore(blackbox_exporter): bump default version to 0.27.0 2025-09-29 20:51:27 +08:00
shenlan
9c6839cf8b Update blackbox exporter download source 2025-09-29 12:48:19 +08:00
shenlan
5f13b01adf Fix blackbox exporter archive variables 2025-09-29 11:21:47 +08:00
Haitao Pan
a9761485ce refactor(blackbox): move exporter defaults into role and simplify vhost playbook vars 2025-09-29 11:06:21 +08:00
Haitao Pan
16f1e5a147 roles/vhosts/common: removed default apt repo config 2025-09-29 10:31:26 +08:00
shenlan
a1d54e7105 Merge pull request #86 from svc-design/codex/consolidate-node.js-installation-script
Add Node.js vhost role for macOS and Ubuntu
2025-09-24 13:33:16 +08:00
shenlan
2771f775e7 Expose Node.js version in Ubuntu role messaging 2025-09-24 13:33:06 +08:00
shenlan
d863fb6926 feat: manage postgres apt keyring via common role 2025-09-24 13:17:43 +08:00
shenlan
235e4c251d Merge pull request #83 from svc-design/codex/fix-syntax-error-in-main.yml
Fix blackbox_exporter handler syntax
2025-09-23 11:31:29 +08:00
shenlan
b62efb9e86 Fix blackbox_exporter handler syntax 2025-09-23 11:30:55 +08:00
shenlan
c7ba57a92e Fix blackbox archive fact computation 2025-09-23 11:02:53 +08:00
shenlan
5c85e90a20 Fix blackbox exporter role handlers 2025-09-23 10:39:47 +08:00
shenlan
59056867ba Merge pull request #80 from svc-design/codex/create-playbook-for-blackbox_exporter
feat: add blackbox exporter vhost role
2025-09-21 11:41:42 +08:00
shenlan
155be33363 chore: refine blackbox exporter tasks 2025-09-21 11:41:03 +08:00
shenlan
c49f097bca Refine otel collector configuration variables 2025-09-21 11:40:16 +08:00
Haitao Pan
05edabae88 ansible(vhosts/common): add OpenResty meta, update common defaults, remove legacy install script 2025-09-20 22:23:37 +08:00
shenlan
f3d6663ce6 Template sensitive tokens for xcontrol server 2025-09-20 06:50:09 +08:00
shenlan
5b2343cda8 Merge pull request #77 from svc-design/codex/add-deployment-configuration-for-xcontrol-server
Add XControl server playbook and role
2025-09-19 22:13:15 +08:00
shenlan
18b43d4329 Add XControl server playbook and role 2025-09-19 22:12:48 +08:00
shenlan
e87181aa49 Add PostgreSQL vhost role for Ubuntu 22.04+ 2025-09-19 21:42:02 +08:00
shenlan
5c92be00be Add OpenResty vhost defaults 2025-09-19 20:59:05 +08:00
Haitao Pan
af165aec8d OpenResty: remove meta/main.yml 2025-09-19 20:54:28 +08:00
shenlan
d550f9b8fa Fix autoindex template logic 2025-09-19 20:49:51 +08:00
shenlan
66cacf91d1 Add static homepage OpenResty vhost 2025-09-19 20:40:51 +08:00
Haitao Pan
5a5060f206 refactor(common): split repo & packages tasks 2025-09-04 11:50:21 +08:00
shenlan
7a2b9203df fix: correct otelcol extraction directory 2025-09-03 17:52:09 +08:00
Haitao Pan
56e1874d7b feat(otel-collector): parametrize version/arch & use internal mirror 2025-09-03 16:57:53 +08:00
Haitao Pan
9ea153daa5 fix(node_exporter): correct systemd unit template
- remove invalid comment line causing 'Bad message'
- ensure valid [Unit]/[Service]/[Install] sections
2025-09-03 09:53:13 +08:00
Haitao Pan
bd41f23f30 refactor(common): rewrite install_packages task
- normalize APT repo handling (HashiCorp/universe)
- clean up conflicting keyrings, unify signed-by path
- driven by defaults/main.yml flags (enable_install_packages, etc.)
2025-09-03 09:53:07 +08:00
Haitao Pan
d14813706e refactor(deepflow): split image pull script into arm64/x86
- removed legacy `pull_save_scp_image.sh`
- added separate scripts for arm64 and x86
- updated `images.txt` and `deploy_deepflow_agent.sh`
- adjusted OpenResty config templates (`artifact.conf.j2`, `nginx.conf.j2`)
2025-09-03 08:58:37 +08:00
shenlan
f492542fef Merge pull request #70 from svc-design/codex/add-openobserve-service-configuration
feat: add OpenObserve ansible role
2025-08-29 20:59:32 +08:00
shenlan
4ad89b3377 feat: add OpenObserve ansible role 2025-08-29 20:59:03 +08:00
shenlan
de23054335 Merge pull request #67 from svc-design/codex/add-opentelemetry-collector-configuration
feat: add otel collector role
2025-08-29 20:58:44 +08:00