Redis 7 in Docker with Mutual TLS and ACLs
Deploy a persistent Redis instance with client-certificate authentication, password-protected ACL users and local snapshot restore.
Summary
- Category
- Jet Templates
- Tags
- Database
- Authors
- Cetmix OÜ
- License
- AGPL-3
- Version
- 1.0.0
- Call sign
- jet_template_redis_secure
- Website
- cetmix.com/contact
This snippet imports a Redis (Secure) Jet Template using redis:7-alpine. It runs a standalone container with Redis-native TLS, a Jet-specific CA and client certificates. Redis also enforces ACL credentials through a mounted users.acl file. Defaults include TCP 6379, append-only persistence, a container health check, CPU and memory limits, a Redis memory limit with allkeys-lru eviction and a graceful stop timeout. The build can add a UFW rate-limit rule for the published port.
Configure and launch
- Import the YAML and install the template. Ensure Docker and the shared Tower network are running and OpenSSL is installed on the host. Docker, Fail2ban and Tower Core dependency templates are included.
- Set
redis_secure_default_passwordandredis_secure_app_passwordin Tower Keys and Secrets. Setweb_domainor a Jet URL for the certificate hostname. For automatic Cloudflare DNS registration, setcloudflare_tokenandcloudflare_zone_id. With another provider, point DNS at the host. - Create the Jet targeting Running. Prepare generates the CA and certificates and writes Redis configuration and ACLs. Build creates the container and configures UFW when enabled. Start waits for Redis to become healthy.
- Use Verify Endpoint to inspect the listening socket, firewall rule and local TLS handshakes with and without a client certificate. Test external reachability from the client network. Give clients the CA certificate, their client certificate and key, and the Redis application username and password.
Operate
Use Rotate Credentials after changing the password secrets and Issue Client Certificate for a new client certificate. Use Rebuild for image and container resource changes. Certificates have a configured lifetime and require manual reissuance. Check the Redis Logs, Redis Status and Snapshot Disk Usage views when troubleshooting.
A Snapshot waypoint copies the data directory to local storage. Arriving at it stops Redis, replaces the live data with the snapshot and restarts the service. Writes made after that snapshot are discarded. Remove removes the container and closes its managed UFW rule. Destroy also cleans up the Jet's files, data and snapshots and removes its Cloudflare DNS entry where applicable.
This package is distributed under the GNU Affero General Public License v3.0 (AGPL-3) or later.
These Terms and Conditions (“Terms”) govern your access to and use of YAML configuration files (“Packages”, “YAML Snippets”, or “Snippets”) made available via the Cetmix Tower platform, operated by Cetmix OÜ, Ranna 6, Haademeeste, Voiste, 86501, Estonia (“Cetmix”, “we”, “our”, or “us”).
By downloading, installing, or otherwise using any YAML Snippets from the Cetmix Tower platform, you agree to be bound by these Terms.
1. Use of Packages
1.1. The YAML Snippets are provided either by Cetmix or third-party authors (“Authors”).
1.2. You are solely responsible for verifying the functionality, safety, and suitability of any YAML Snippet before using it in a production environment.
1.3. You may use the Snippets only in accordance with their respective licenses, which may be open-source or commercial.
2. Author Responsibility
2.1. Authors are solely responsible for the content, accuracy, functionality, and compliance of the YAML Snippets they publish.
2.2. Cetmix does not review or verify the correctness, security, or compliance of third-party Snippets.
2.3. If you are an Author, you represent and warrant that your submitted YAML Snippet:
- Does not infringe on any third-party rights;
- Complies with applicable laws and regulations;
- Does not contain harmful, malicious, or misleading code or behavior.
3. Limitation of Liability
3.1. Cetmix provides access to the YAML Snippets “as is” and “as available,” without warranties of any kind, either express or implied.
3.2. Cetmix expressly disclaims all liability for any damages resulting from:
- Use or inability to use a YAML Snippet;
- Errors or omissions in the Snippets;
- Actions taken in reliance on any YAML Snippet;
- Misuse, misconfiguration, or system failure caused by a Snippet.
3.3. In no event shall Cetmix OÜ be liable for any indirect, incidental, special, punitive, or consequential damages, including but not limited to loss of data, profits, or service availability.
4. Security and Compliance
4.1. Cetmix does not guarantee that any Snippet is secure or free from vulnerabilities. You must review and test all Snippets before deploying them in sensitive or production environments.
4.2. Compliance with security, privacy, and regulatory requirements is your responsibility when using any Snippet.
5. Intellectual Property
5.1. Ownership of each YAML Snippet remains with its respective Author.
5.2. You must respect all license terms specified for each Snippet. Unauthorized reproduction, distribution, or sublicensing may result in legal consequences.
6. Modifications and Termination
6.1. Cetmix may modify or remove any YAML Snippet at any time without notice.
6.2. These Terms may also be updated periodically. Continued use of the platform constitutes acceptance of the revised Terms.
7. Governing Law and Jurisdiction
These Terms shall be governed by the laws of the Republic of Estonia. Any disputes arising under or in connection with these Terms shall be subject to the exclusive jurisdiction of the courts of Estonia.
8. Contact
For questions or concerns regarding these Terms or specific YAML Snippets, please contact us