38 lines
1.9 KiB
Markdown
38 lines
1.9 KiB
Markdown
---
|
|
title: Utility Actions
|
|
description: Common helper scripts for maintenance, validation, and certificate management.
|
|
weight: 56
|
|
---
|
|
|
|
Utility actions provide common helper functions for node maintenance, validation, and project-specific tasks.
|
|
|
|
## Core Utility Actions {#actions}
|
|
|
|
| Action | Description |
|
|
| :--- | :--- |
|
|
| `utils/extract-traefik-certs` | Extracts SSL/TLS certificates and private keys from Traefik's `acme.json` storage. |
|
|
| `utils/generate-happ-subscriptions` | Automatically generates HApp subscription files based on current project metadata. |
|
|
| `utils/lint-docker-compose` | Performs a static analysis of all `docker-compose.yml` files to ensure they meet the framework's standards. |
|
|
|
|
## Certificate Management (`utils/extract-traefik-certs`) {#certificates}
|
|
|
|
Traefik stores its ACME-issued certificates (like those from Let's Encrypt) in a single `acme.json` file. The `utils/extract-traefik-certs` action parses this file and extracts individual `fullchain.pem` and `privkey.pem` files.
|
|
|
|
This is particularly useful when other services (e.g., mail servers, non-Dockerized applications) require the same SSL certificates.
|
|
|
|
## Quality Assurance (`utils/lint-docker-compose`) {#linting}
|
|
|
|
To maintain consistency and security, the `utils/lint-docker-compose` action validates all compose files across the infrastructure. It checks for:
|
|
|
|
- **Naming Standards**: Ensures project names and container names follow the `{node}-{project}` convention.
|
|
- **Security Context**: Flags containers running as `root` without a justified override.
|
|
- **Resource Constraints**: Identifies services lacking CPU or memory limits.
|
|
- **Label Standards**: Validates required labels for routing (e.g., [Traefik](https://traefik.io/)) and [CrowdSec](/root/concepts/security-model#crowdsec).
|
|
|
|
---
|
|
|
|
**See also:**
|
|
|
|
- [Concept: Infrastructure Principles](/root/concepts/principles)
|
|
- [Concept: Security & Privilege Isolation](/root/concepts/security-model)
|