From 4168e6c18051bfe6d66aaa682b39577865360b75 Mon Sep 17 00:00:00 2001 From: houseme Date: Fri, 17 Oct 2025 17:17:36 +0800 Subject: [PATCH] chore(docs): move root `examples` to `docs/examples/docker` and update README (#663) * chore(docs): move root `examples` to `docs/examples/docker` and update README - Move root `examples/` contents into `docs/examples/docker/`. - Update `docs/examples/README.md` to add migration note, new `docker/` entry and usage examples. - Replace references from `examples/` to `docs/examples/docker/` where applicable. - Reminder: verify CI and external links still point to the correct paths. * fix --- README.md | 85 +++++++++++-------- README_ZH.md | 62 ++++++++------ docs/examples/README.md | 39 +++++++-- {examples => docs/examples/docker}/README.md | 42 +++++---- .../examples/docker}/docker-comprehensive.yml | 0 .../examples/docker}/docker-quickstart.sh | 0 .../docker}/enhanced-docker-deployment.sh | 0 .../docker}/enhanced-security-deployment.sh | 0 8 files changed, 142 insertions(+), 86 deletions(-) rename {examples => docs/examples/docker}/README.md (86%) rename {examples => docs/examples/docker}/docker-comprehensive.yml (100%) rename {examples => docs/examples/docker}/docker-quickstart.sh (100%) rename {examples => docs/examples/docker}/enhanced-docker-deployment.sh (100%) rename {examples => docs/examples/docker}/enhanced-security-deployment.sh (100%) diff --git a/README.md b/README.md index cd35e5b5..787541db 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,11 @@ English | Русский

-RustFS is a high-performance distributed object storage software built using Rust, one of the most popular languages worldwide. Along with MinIO, it shares a range of advantages such as simplicity, S3 compatibility, open-source nature, support for data lakes, AI, and big data. Furthermore, it has a better and more user-friendly open-source license in comparison to other storage systems, being constructed under the Apache license. As Rust serves as its foundation, RustFS provides faster speed and safer distributed features for high-performance object storage. +RustFS is a high-performance distributed object storage software built using Rust, one of the most popular languages +worldwide. Along with MinIO, it shares a range of advantages such as simplicity, S3 compatibility, open-source nature, +support for data lakes, AI, and big data. Furthermore, it has a better and more user-friendly open-source license in +comparison to other storage systems, being constructed under the Apache license. As Rust serves as its foundation, +RustFS provides faster speed and safer distributed features for high-performance object storage. > ⚠️ **RustFS is under rapid development. Do NOT use in production environments!** @@ -46,27 +50,27 @@ RustFS is a high-performance distributed object storage software built using Rus Stress test server parameters -| Type | parameter | Remark | -| - | - | - | -|CPU | 2 Core | Intel Xeon(Sapphire Rapids) Platinum 8475B , 2.7/3.2 GHz| | -|Memory| 4GB |   | -|Network | 15Gbp |   | -|Driver | 40GB x 4 | IOPS 3800 / Driver | +| Type | parameter | Remark | +|---------|-----------|----------------------------------------------------------| +| CPU | 2 Core | Intel Xeon(Sapphire Rapids) Platinum 8475B , 2.7/3.2 GHz | | +| Memory | 4GB |   | +| Network | 15Gbp |   | +| Driver | 40GB x 4 | IOPS 3800 / Driver | ### RustFS vs Other object storage -| RustFS | Other object storage| -| - | - | -| Powerful Console | Simple and useless Console | -| Developed based on Rust language, memory is safer | Developed in Go or C, with potential issues like memory GC/leaks | -| Does not report logs to third-party countries | Reporting logs to other third countries may violate national security laws | -| Licensed under Apache, more business-friendly | AGPL V3 License and other License, polluted open source and License traps, infringement of intellectual property rights | -| Comprehensive S3 support, works with domestic and international cloud providers | Full support for S3, but no local cloud vendor support | -| Rust-based development, strong support for secure and innovative devices | Poor support for edge gateways and secure innovative devices| -| Stable commercial prices, free community support | High pricing, with costs up to $250,000 for 1PiB | -| No risk | Intellectual property risks and risks of prohibited uses | +| RustFS | Other object storage | +|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------| +| Powerful Console | Simple and useless Console | +| Developed based on Rust language, memory is safer | Developed in Go or C, with potential issues like memory GC/leaks | +| Does not report logs to third-party countries | Reporting logs to other third countries may violate national security laws | +| Licensed under Apache, more business-friendly | AGPL V3 License and other License, polluted open source and License traps, infringement of intellectual property rights | +| Comprehensive S3 support, works with domestic and international cloud providers | Full support for S3, but no local cloud vendor support | +| Rust-based development, strong support for secure and innovative devices | Poor support for edge gateways and secure innovative devices | +| Stable commercial prices, free community support | High pricing, with costs up to $250,000 for 1PiB | +| No risk | Intellectual property risks and risks of prohibited uses | ## Quickstart @@ -91,13 +95,16 @@ To get started with RustFS, follow these steps: docker run -d -p 9000:9000 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0.alpha.45 ``` - For docker installation, you can also run the container with docker compose. With the `docker-compose.yml` file under root directory, running the command: +For docker installation, you can also run the container with docker compose. With the `docker-compose.yml` file under +root directory, running the command: ``` docker compose --profile observability up -d ``` - - **NOTE**: You should be better to have a look for `docker-compose.yaml` file. Because, several services contains in the file. Grafan,prometheus,jaeger containers will be launched using docker compose file, which is helpful for rustfs observability. If you want to start redis as well as nginx container, you can specify the corresponding profiles. + +**NOTE**: You should be better to have a look for `docker-compose.yaml` file. Because, several services contains in the +file. Grafan,prometheus,jaeger containers will be launched using docker compose file, which is helpful for rustfs +observability. If you want to start redis as well as nginx container, you can specify the corresponding profiles. 3. **Build from Source (Option 3) - Advanced Users** @@ -118,10 +125,10 @@ To get started with RustFS, follow these steps: ``` The `docker-buildx.sh` script supports: - - **Multi-architecture builds**: `linux/amd64`, `linux/arm64` - - **Automatic version detection**: Uses git tags or commit hashes - - **Registry flexibility**: Supports Docker Hub, GitHub Container Registry, etc. - - **Build optimization**: Includes caching and parallel builds + - **Multi-architecture builds**: `linux/amd64`, `linux/arm64` + - **Automatic version detection**: Uses git tags or commit hashes + - **Registry flexibility**: Supports Docker Hub, GitHub Container Registry, etc. + - **Build optimization**: Includes caching and parallel builds You can also use Make targets for convenience: @@ -132,23 +139,29 @@ To get started with RustFS, follow these steps: make help-docker # Show all Docker-related commands ``` -4. **Access the Console**: Open your web browser and navigate to `http://localhost:9000` to access the RustFS console, default username and password is `rustfsadmin` . +4. **Access the Console**: Open your web browser and navigate to `http://localhost:9000` to access the RustFS console, + default username and password is `rustfsadmin` . 5. **Create a Bucket**: Use the console to create a new bucket for your objects. -6. **Upload Objects**: You can upload files directly through the console or use S3-compatible APIs to interact with your RustFS instance. +6. **Upload Objects**: You can upload files directly through the console or use S3-compatible APIs to interact with your + RustFS instance. -**NOTE**: If you want to access RustFS instance with `https`, you can refer to [TLS configuration docs](https://docs.rustfs.com/integration/tls-configured.html). +**NOTE**: If you want to access RustFS instance with `https`, you can refer +to [TLS configuration docs](https://docs.rustfs.com/integration/tls-configured.html). ## Documentation -For detailed documentation, including configuration options, API references, and advanced usage, please visit our [Documentation](https://docs.rustfs.com). +For detailed documentation, including configuration options, API references, and advanced usage, please visit +our [Documentation](https://docs.rustfs.com). ## Getting Help If you have any questions or need assistance, you can: - Check the [FAQ](https://github.com/rustfs/rustfs/discussions/categories/q-a) for common issues and solutions. -- Join our [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) to ask questions and share your experiences. -- Open an issue on our [GitHub Issues](https://github.com/rustfs/rustfs/issues) page for bug reports or feature requests. +- Join our [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) to ask questions and share your + experiences. +- Open an issue on our [GitHub Issues](https://github.com/rustfs/rustfs/issues) page for bug reports or feature + requests. ## Links @@ -166,21 +179,21 @@ If you have any questions or need assistance, you can: ## Contributors -RustFS is a community-driven project, and we appreciate all contributions. Check out the [Contributors](https://github.com/rustfs/rustfs/graphs/contributors) page to see the amazing people who have helped make RustFS better. +RustFS is a community-driven project, and we appreciate all contributions. Check out +the [Contributors](https://github.com/rustfs/rustfs/graphs/contributors) page to see the amazing people who have helped +make RustFS better. - + Contributors - ## Github Trending Top -🚀 RustFS is beloved by open-source enthusiasts and enterprise users worldwide, often appearing on the GitHub Trending top charts. +🚀 RustFS is beloved by open-source enthusiasts and enterprise users worldwide, often appearing on the GitHub Trending +top charts. rustfs%2Frustfs | Trendshift - - ## License [Apache 2.0](https://opensource.org/licenses/Apache-2.0) diff --git a/README_ZH.md b/README_ZH.md index d6697a9e..2a562daf 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -21,7 +21,9 @@ English | 简体中文

-RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建的高性能分布式对象存储软件。与 MinIO 一样,它具有简单性、S3 兼容性、开源特性以及对数据湖、AI 和大数据的支持等一系列优势。此外,与其他存储系统相比,它采用 Apache 许可证构建,拥有更好、更用户友好的开源许可证。由于以 Rust 为基础,RustFS 为高性能对象存储提供了更快的速度和更安全的分布式功能。 +RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建的高性能分布式对象存储软件。与 MinIO 一样,它具有简单性、S3 +兼容性、开源特性以及对数据湖、AI 和大数据的支持等一系列优势。此外,与其他存储系统相比,它采用 Apache +许可证构建,拥有更好、更用户友好的开源许可证。由于以 Rust 为基础,RustFS 为高性能对象存储提供了更快的速度和更安全的分布式功能。 ## 特性 @@ -36,27 +38,27 @@ RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建 压力测试服务器参数 -| 类型 | 参数 | 备注 | -| - | - | - | -|CPU | 2 核心 | Intel Xeon(Sapphire Rapids) Platinum 8475B , 2.7/3.2 GHz| | -|内存| 4GB | | -|网络 | 15Gbp | | -|驱动器 | 40GB x 4 | IOPS 3800 / 驱动器 | +| 类型 | 参数 | 备注 | +|-----|----------|----------------------------------------------------------| +| CPU | 2 核心 | Intel Xeon(Sapphire Rapids) Platinum 8475B , 2.7/3.2 GHz | | +| 内存 | 4GB | | +| 网络 | 15Gbp | | +| 驱动器 | 40GB x 4 | IOPS 3800 / 驱动器 | ### RustFS vs 其他对象存储 -| RustFS | 其他对象存储| -| - | - | -| 强大的控制台 | 简单且无用的控制台 | -| 基于 Rust 语言开发,内存更安全 | 使用 Go 或 C 开发,存在内存 GC/泄漏等潜在问题 | -| 不向第三方国家报告日志 | 向其他第三方国家报告日志可能违反国家安全法律 | -| 采用 Apache 许可证,对商业更友好 | AGPL V3 许可证等其他许可证,污染开源和许可证陷阱,侵犯知识产权 | -| 全面的 S3 支持,适用于国内外云提供商 | 完全支持 S3,但不支持本地云厂商 | -| 基于 Rust 开发,对安全和创新设备有强大支持 | 对边缘网关和安全创新设备支持较差| -| 稳定的商业价格,免费社区支持 | 高昂的定价,1PiB 成本高达 $250,000 | -| 无风险 | 知识产权风险和禁止使用的风险 | +| RustFS | 其他对象存储 | +|--------------------------|-------------------------------------| +| 强大的控制台 | 简单且无用的控制台 | +| 基于 Rust 语言开发,内存更安全 | 使用 Go 或 C 开发,存在内存 GC/泄漏等潜在问题 | +| 不向第三方国家报告日志 | 向其他第三方国家报告日志可能违反国家安全法律 | +| 采用 Apache 许可证,对商业更友好 | AGPL V3 许可证等其他许可证,污染开源和许可证陷阱,侵犯知识产权 | +| 全面的 S3 支持,适用于国内外云提供商 | 完全支持 S3,但不支持本地云厂商 | +| 基于 Rust 开发,对安全和创新设备有强大支持 | 对边缘网关和安全创新设备支持较差 | +| 稳定的商业价格,免费社区支持 | 高昂的定价,1PiB 成本高达 $250,000 | +| 无风险 | 知识产权风险和禁止使用的风险 | ## 快速开始 @@ -68,25 +70,30 @@ RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建 curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh ``` -2. **Docker快速启动(方案二)** +2. **Docker 快速启动(方案二)** ```bash docker run -d -p 9000:9000 -v /data:/data rustfs/rustfs ``` - 对于使用 Docker 安装来讲,你还可以使用 `docker compose` 来启动 rustfs 实例。在仓库的根目录下面有一个 `docker-compose.yml` 文件。运行如下命令即可: +对于使用 Docker 安装来讲,你还可以使用 `docker compose` 来启动 rustfs 实例。在仓库的根目录下面有一个 `docker-compose.yml` +文件。运行如下命令即可: ``` docker compose --profile observability up -d ``` - - **注意**:在使用 `docker compose` 之前,你应该仔细阅读一下 `docker-compose.yaml`,因为该文件中包含多个服务,除了 rustfs 以外,还有 grafana、prometheus、jaeger 等,这些是为 rustfs 可观测性服务的,还有 redis 和 nginx。你想启动哪些容器,就需要用 `--profile` 参数指定相应的 profile。 -3. **访问控制台**:打开 Web 浏览器并导航到 `http://localhost:9000` 以访问 RustFS 控制台,默认的用户名和密码是 `rustfsadmin` 。 +**注意**:在使用 `docker compose` 之前,你应该仔细阅读一下 `docker-compose.yaml`,因为该文件中包含多个服务,除了 rustfs +以外,还有 grafana、prometheus、jaeger 等,这些是为 rustfs 可观测性服务的,还有 redis 和 nginx。你想启动哪些容器,就需要用 +`--profile` 参数指定相应的 profile。 + +3. **访问控制台**:打开 Web 浏览器并导航到 `http://localhost:9000` 以访问 RustFS 控制台,默认的用户名和密码是 + `rustfsadmin` 。 4. **创建存储桶**:使用控制台为您的对象创建新的存储桶。 5. **上传对象**:您可以直接通过控制台上传文件,或使用 S3 兼容的 API 与您的 RustFS 实例交互。 -**注意**:如果你想通过 `https` 来访问 RustFS 实例,请参考 [TLS 配置文档](https://docs.rustfs.com/zh/integration/tls-configured.html) +**注意**:如果你想通过 `https` 来访问 RustFS +实例,请参考 [TLS 配置文档](https://docs.rustfs.com/zh/integration/tls-configured.html) ## 文档 @@ -116,20 +123,19 @@ RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建 ## 贡献者 -RustFS 是一个社区驱动的项目,我们感谢所有的贡献。查看[贡献者](https://github.com/rustfs/rustfs/graphs/contributors)页面,了解帮助 RustFS 变得更好的杰出人员。 +RustFS 是一个社区驱动的项目,我们感谢所有的贡献。查看[贡献者](https://github.com/rustfs/rustfs/graphs/contributors)页面,了解帮助 +RustFS 变得更好的杰出人员。 - + 贡献者 - ## Github 全球推荐榜 -🚀 RustFS 受到了全世界开源爱好者和企业用户的喜欢,多次登顶Github Trending全球榜。 +🚀 RustFS 受到了全世界开源爱好者和企业用户的喜欢,多次登顶 Github Trending 全球榜。 rustfs%2Frustfs | Trendshift - ## 许可证 [Apache 2.0](https://opensource.org/licenses/Apache-2.0) diff --git a/docs/examples/README.md b/docs/examples/README.md index 4224bb5b..401ff89e 100644 --- a/docs/examples/README.md +++ b/docs/examples/README.md @@ -9,6 +9,7 @@ This directory contains practical deployment examples and configurations for Rus Complete Docker Compose example for deploying RustFS in a 4-node, 4-drive-per-node configuration. **Features:** + - Proper disk indexing (1..4) to avoid VolumeNotFound errors - Startup coordination via `wait-and-start.sh` script - Service discovery using Docker service names @@ -18,25 +19,47 @@ Complete Docker Compose example for deploying RustFS in a 4-node, 4-drive-per-no **Use Case:** Production-ready multi-node deployment for high availability and performance. **Quick Start:** + ```bash cd docs/examples/mnmd docker-compose up -d ``` **See also:** + - [MNMD README](./mnmd/README.md) - Detailed usage guide - [MNMD CHECKLIST](./mnmd/CHECKLIST.md) - Step-by-step verification ## Other Deployment Examples For additional deployment examples, see: -- [`examples/`](/examples/) - Root-level examples directory with: - - `docker-quickstart.sh` - Quick start script for basic deployments - - `enhanced-docker-deployment.sh` - Advanced deployment scenarios - - `docker-comprehensive.yml` - Docker Compose with multiple profiles + +- [`docker/`](./docker/) - Root-level examples directory with: + - `docker-quickstart.sh` - Quick start script for basic deployments, Quickstart script (basic + /dev/prod/status/test/cleanup) + - `enhanced-docker-deployment.sh` - Advanced deployment scenarios, Advanced deployment script with multiple + scenarios and detailed logs (basic /dev/prod/all/status/test/logs/cleanup) + - `enhanced-security-deployment.sh` - Production-ready scripts with TLS, throttling, and secure credential + generation + - `docker-comprehensive.yml` - Docker Compose with multiple profiles, Docker Compose files containing multiple + profiles (basic / dev / production / enterprise / api-only / nginx, etc.) + - Usage example: + ```bash + # Rapid development environment + ./docs/examples/docker/docker-quickstart.sh dev + + # Start dev profile using Docker Compose + docker-compose -f docs/examples/docker/docker-comprehensive.yml --profile dev up -d + + # Secure deployment + ./docs/examples/docker/enhanced-security-deployment.sh + ``` + - Note: If the original CI or other documents refer to the old path `examples/`, please update it to + `docs/examples/docker/`. Relative links within the document are already in this README. + - [`.docker/compose/`](/.docker/compose/) - Docker Compose configurations: - - `docker-compose.cluster.yaml` - Basic cluster setup - - `docker-compose.observability.yaml` - Observability stack integration + - `docker-compose.cluster.yaml` - Basic cluster setup + - `docker-compose.observability.yaml` - Observability stack integration ## Related Documentation @@ -47,6 +70,7 @@ For additional deployment examples, see: ## Contributing When adding new examples: + 1. Create a dedicated subdirectory under `docs/examples/` 2. Include a comprehensive README.md 3. Provide working configuration files @@ -56,5 +80,6 @@ When adding new examples: ## Support For issues or questions: + - GitHub Issues: https://github.com/rustfs/rustfs/issues -- Documentation: https://rustfs.io +- Documentation: https://rustfs.com/docs diff --git a/examples/README.md b/docs/examples/docker/README.md similarity index 86% rename from examples/README.md rename to docs/examples/docker/README.md index 6c5262d2..1c98ad1e 100644 --- a/examples/README.md +++ b/docs/examples/docker/README.md @@ -1,10 +1,12 @@ # RustFS Docker Deployment Examples -This directory contains various deployment scripts and configuration files for RustFS with console and endpoint service separation. +This directory contains various deployment scripts and configuration files for RustFS with console and endpoint service +separation. ## Quick Start Scripts ### `docker-quickstart.sh` + The fastest way to get RustFS running with different configurations. ```bash @@ -28,6 +30,7 @@ The fastest way to get RustFS running with different configurations. ``` ### `enhanced-docker-deployment.sh` + Comprehensive deployment script with multiple scenarios and detailed logging. ```bash @@ -51,7 +54,9 @@ Comprehensive deployment script with multiple scenarios and detailed logging. ``` ### `enhanced-security-deployment.sh` -Production-ready deployment with enhanced security features including TLS, rate limiting, and secure credential generation. + +Production-ready deployment with enhanced security features including TLS, rate limiting, and secure credential +generation. ```bash # Deploy with security hardening @@ -68,6 +73,7 @@ Production-ready deployment with enhanced security features including TLS, rate ## Docker Compose Examples ### `docker-comprehensive.yml` + Complete Docker Compose configuration with multiple deployment profiles. ```bash @@ -106,6 +112,7 @@ docker-compose -f docker-comprehensive.yml --profile dev up -d ``` **Access Points:** + - API: http://localhost:9010 (or 9030 for enhanced) - Console: http://localhost:9011/rustfs/console/ (or 9031 for enhanced) - Credentials: dev-admin / dev-secret @@ -121,6 +128,7 @@ docker-compose -f docker-comprehensive.yml --profile dev up -d ``` **Features:** + - TLS encryption for console - Rate limiting enabled - Restricted CORS policies @@ -194,13 +202,13 @@ curl http://localhost:9001/health ### Port Mappings -| Deployment | API Port | Console Port | Description | -|-----------|----------|--------------|-------------| -| Basic | 9000 | 9001 | Simple deployment | -| Dev | 9010 | 9011 | Development environment | -| Prod | 9020 | 9021 | Production-like setup | -| Enterprise | 9030 | 9443 | Enterprise with TLS | -| API-Only | 9040 | - | API endpoint only | +| Deployment | API Port | Console Port | Description | +|------------|----------|--------------|-------------------------| +| Basic | 9000 | 9001 | Simple deployment | +| Dev | 9010 | 9011 | Development environment | +| Prod | 9020 | 9021 | Production-like setup | +| Enterprise | 9030 | 9443 | Enterprise with TLS | +| API-Only | 9040 | - | API endpoint only | ### Network Isolation @@ -213,11 +221,13 @@ Production deployments use network isolation: ## Security Considerations ### Development + - Permissive CORS policies for easy testing - Debug logging enabled - Default credentials for simplicity -### Production +### Production + - Restrictive CORS policies - TLS encryption for console - Rate limiting enabled @@ -226,6 +236,7 @@ Production deployments use network isolation: - Network isolation ### Enterprise + - Complete TLS encryption - Advanced rate limiting - Authentication timeouts @@ -260,11 +271,12 @@ docker exec rustfs-container netstat -tulpn | grep -E ':(9000|9001)' ## Migration from Previous Versions -See [docs/console-separation.md](../docs/console-separation.md) for detailed migration instructions from single-port deployments to the separated architecture. +See [docs/console-separation.md](../../console-separation.md) for detailed migration instructions from single-port +deployments to the separated architecture. ## Additional Resources -- [Console Separation Documentation](../docs/console-separation.md) -- [Docker Compose Configuration](../docker-compose.yml) -- [Main Dockerfile](../Dockerfile) -- [Security Best Practices](../docs/console-separation.md#security-hardening) \ No newline at end of file +- [Console Separation Documentation](../../console-separation.md) +- [Docker Compose Configuration](../../../docker-compose.yml) +- [Main Dockerfile](../../../Dockerfile) +- [Security Best Practices](../../console-separation.md#security-hardening) \ No newline at end of file diff --git a/examples/docker-comprehensive.yml b/docs/examples/docker/docker-comprehensive.yml similarity index 100% rename from examples/docker-comprehensive.yml rename to docs/examples/docker/docker-comprehensive.yml diff --git a/examples/docker-quickstart.sh b/docs/examples/docker/docker-quickstart.sh similarity index 100% rename from examples/docker-quickstart.sh rename to docs/examples/docker/docker-quickstart.sh diff --git a/examples/enhanced-docker-deployment.sh b/docs/examples/docker/enhanced-docker-deployment.sh similarity index 100% rename from examples/enhanced-docker-deployment.sh rename to docs/examples/docker/enhanced-docker-deployment.sh diff --git a/examples/enhanced-security-deployment.sh b/docs/examples/docker/enhanced-security-deployment.sh similarity index 100% rename from examples/enhanced-security-deployment.sh rename to docs/examples/docker/enhanced-security-deployment.sh