Shared ClickHouse in Docker for Analytics
Deploy a password-protected ClickHouse server with persistent storage, configurable log retention and weekly system-log cleanup.
Summary
- Category
- Jet Templates
- Tags
- Database
- Authors
- Cetmix OÜ
- License
- AGPL-3
- Version
- 1.0.0
- Call sign
- jet_template_clickhouse_docker
- Website
- cetmix.com/contact
This snippet imports the ClickHouse Docker Jet Template. It runs one shared ClickHouse instance per server, defaults to clickhouse/clickhouse-server:24.12-alpine, and includes the Docker, Fail2ban and Tower Core dependency templates. ClickHouse listens over IPv4 on the shared Tower Docker network. Applications such as Plausible connect to the Jet reference on HTTP port 8123. The container publishes no host ports and stores its database files and server logs in separate Docker volumes.
Configure and launch
- Import the YAML and install the template on the target server. Set
clickhouse_userif you need a login other thantower. Build generates a server-scopedclickhouse_passwordif that server has no value yet. A Tower manager for the server or a root user can run this step. - Review
clickhouse_low_resources, which is enabled by default. It reduces the mark cache and limits parallel processing in the default profile. Review log settings as needed. By default, ClickHouse rotates its server log files at100Mwith three files, Docker rotates container logs at50mwith three files, and selected ClickHouse system log tables have a 30-day retention period. Other configured system logs are disabled. - Create a Jet targeting Running. Build renders the XML configuration, creates the volumes and creates the container. Start launches ClickHouse and waits for its local HTTP
/pingendpoint.
Operate and troubleshoot
- Apply configuration rewrites the XML files and restarts a running Jet. Use Rebuild from Stopped to recreate the container for image, login or Docker log option changes while keeping its volumes.
- The included weekly task drops disabled system log tables and numbered copies left by earlier schema changes. Start and Apply configuration also perform this cleanup unless
clickhouse_drop_stale_system_logsis set tono. - Use ClickHouse container log, ClickHouse error log and ClickHouse disk usage by table to diagnose startup errors or storage growth. For application connection failures, check the Jet hostname, shared Docker network and server-scoped credentials.
- Remove removes the container and image. Destroy deletes the Jet root and labeled volumes, including the shared databases and server logs. If teardown manages a Cloudflare record for the Jet, it uses
cloudflare_tokenandcloudflare_zone_id.
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