From 405b0e94277478f956087e30e941169f7abd199d Mon Sep 17 00:00:00 2001 From: Arjun Aditya Date: Thu, 6 Feb 2025 22:39:13 +0530 Subject: [PATCH 01/59] init developer first page --- .../docs/content/features/developer-first.mdx | 93 +++++++++++++++++++ apps/docs/sidebars.js | 9 ++ 2 files changed, 102 insertions(+) create mode 100644 apps/docs/content/features/developer-first.mdx diff --git a/apps/docs/content/features/developer-first.mdx b/apps/docs/content/features/developer-first.mdx new file mode 100644 index 00000000..04f0fd24 --- /dev/null +++ b/apps/docs/content/features/developer-first.mdx @@ -0,0 +1,93 @@ +--- +title: Developer First +description: Zerops is designed to support applications from simple to complex architectures, ensuring a seamless development journey from local development to production. +--- + +# Developer First Infrastructure + +At Zerops, we prioritize developer experience while providing robust infrastructure capabilities that grow with your needs. Our platform is designed to support applications from simple to complex architectures, ensuring a seamless development journey from local development to production. + +## Adaptive Infrastructure + +### Scales with Your Needs +- Seamless resource scaling based on changing loads +- Dynamic bi-directional scaling - up for traffic spikes, down during quiet periods +- Fine-grained adjustment to prevent resource waste while maintaining performance + +### Evolves with Complexity +- Accommodates growing architectural complexity +- Seamless integration of new services and data stores +- Maintains operational efficiency as systems grow + +### Stateful Service Management +- Sophisticated orchestration for stateful components +- Balanced automation and granular control +- Advanced scaling and replication strategies +- Comprehensive backup and recovery capabilities + +## System Resilience & Consistency + +### Automatic High Availability +- Service distribution across multiple physical machines +- Automated failover mechanisms +- Encrypted backups and rapid recovery +- Built-in operational continuity and data protection + +### Environment Consistency +- Eliminates environment-specific behavior by design +- Predictable production behavior from day one +- Resource allocation as the only variable between environments +- Solves the "it works on my machine" problem + +### Vendor Independence +- Built on proven practices and open technologies +- Maintains transparency and modifiability +- Ensures operational independence +- Preserves architectural freedom + +## Developer Experience & Tooling + +### Automated Build & Deploy +- Flexible pipeline complexity matching application needs +- Straightforward git workflows +- Sophisticated build stages when needed +- Full control without maintenance burden + +### Built-in Observability +- Immediate system behavior insights +- Automatic collection of structured logs, metrics, and traces +- Centralized aggregation +- Integration with existing monitoring tools + +### Environment Management +- Centralized environment variables and secrets management +- Secure value protection and distribution +- Automatic service configuration propagation +- Dynamic configuration between connected services + +### Local Development +- Production-mirroring local environments +- Direct access to live services and data +- Fast development cycles +- Simplified local setup + +### Network Management +- Seamless service discovery and communication +- Strict service isolation +- Simple domain and routing management +- Abstracted networking complexity + +### Development Tools +- Comprehensive API access +- Native CLI tools +- Advanced templating capabilities +- Consistent behavior across all interaction points + + + + + + + + + diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index 148135cb..14b5f45a 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -86,6 +86,15 @@ module.exports = { }, ], }, + { + type: 'doc', + id: 'features/developer-first', + label: 'Dev-First Experience', + customProps: { + sidebar_icon: 'heart', + }, + className: 'homepage-sidebar-item', + }, { type: 'doc', id: 'features/scaling-ha', From 602a6ade58877e1c7feaeb2e6d495b0ec8d4a389 Mon Sep 17 00:00:00 2001 From: Arjun Aditya Date: Sun, 9 Feb 2025 21:08:32 +0530 Subject: [PATCH 02/59] Update developer-first.mdx --- .../docs/content/features/developer-first.mdx | 213 ++++++++++++------ 1 file changed, 147 insertions(+), 66 deletions(-) diff --git a/apps/docs/content/features/developer-first.mdx b/apps/docs/content/features/developer-first.mdx index 04f0fd24..2f235d12 100644 --- a/apps/docs/content/features/developer-first.mdx +++ b/apps/docs/content/features/developer-first.mdx @@ -3,85 +3,166 @@ title: Developer First description: Zerops is designed to support applications from simple to complex architectures, ensuring a seamless development journey from local development to production. --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Image from '@site/src/components/Image'; + # Developer First Infrastructure At Zerops, we prioritize developer experience while providing robust infrastructure capabilities that grow with your needs. Our platform is designed to support applications from simple to complex architectures, ensuring a seamless development journey from local development to production. +:::tip Key Benefits +- **Zero Infrastructure Management** - Focus on code, not on infrastructure +- **Environment Parity** - Identical behavior across all environments +- **Automated Scaling** - Resources that adapt to your needs +- **Built-in DevOps** - Integrated CI/CD, monitoring, and management tools +::: + +## Project & Service Structure + +Zerops organizes your infrastructure into three levels: + +- **Projects** - Top-level entities containing multiple services +- **Services** - Encapsulate your containers with specific roles +- **Containers** - Individual runtime units within services + +:::info Project Features +- Private network for all services +- Automatic IPv6 address allocation +- Optional IPv4 address support +- Built-in logging and statistics +- Automated HTTP routing with SSL +::: + ## Adaptive Infrastructure -### Scales with Your Needs -- Seamless resource scaling based on changing loads -- Dynamic bi-directional scaling - up for traffic spikes, down during quiet periods -- Fine-grained adjustment to prevent resource waste while maintaining performance - -### Evolves with Complexity -- Accommodates growing architectural complexity -- Seamless integration of new services and data stores -- Maintains operational efficiency as systems grow - -### Stateful Service Management -- Sophisticated orchestration for stateful components -- Balanced automation and granular control -- Advanced scaling and replication strategies -- Comprehensive backup and recovery capabilities - -## System Resilience & Consistency - -### Automatic High Availability -- Service distribution across multiple physical machines -- Automated failover mechanisms -- Encrypted backups and rapid recovery -- Built-in operational continuity and data protection - -### Environment Consistency -- Eliminates environment-specific behavior by design -- Predictable production behavior from day one -- Resource allocation as the only variable between environments -- Solves the "it works on my machine" problem - -### Vendor Independence -- Built on proven practices and open technologies -- Maintains transparency and modifiability -- Ensures operational independence -- Preserves architectural freedom +Our infrastructure adapts to your application's needs, whether you're running a simple website or a complex microservices architecture. + +### Intelligent Scaling + +Zerops provides enterprise-grade scaling that responds to your application's actual demands: + +```yaml title="Example service configuration" +services: + - hostname: app + minContainers: 2 + maxContainers: 6 + verticalAutoscaling: + cpuMode: DEDICATED + minCpu: 2 + maxCpu: 5 + minRam: 2 + maxRam: 24 + minDisk: 6 + maxDisk: 50 + startCpuCoreCount: 3 + minFreeRamGB: 0.5 + minFreeRamPercent: 20 +``` + +- **Vertical Scaling** - Automatic CPU and RAM adjustment +- **Horizontal Scaling** - Dynamic container count management +- **Cost Optimization** - Pay only for resources you actually use +- **Dynamic Storage** - Automated disk space management + +### High Availability Mode + +Every service can run in HA mode with automatic failover: + +```yaml title="Example HA configuration" +services: + - hostname: db + type: postgresql@16 + mode: NON_HA # Non-HA mode + + - hostname: cache + type: valkey@7.2 + mode: HA # High availability mode +``` + +- **Multi-Zone Distribution** - Services run across multiple availability zones +- **Automated Failover** - Self-healing infrastructure +- **Data Replication** - Automatic synchronization +- **Load Distribution** - Enhanced performance through balancing ## Developer Experience & Tooling -### Automated Build & Deploy -- Flexible pipeline complexity matching application needs -- Straightforward git workflows -- Sophisticated build stages when needed -- Full control without maintenance burden +### Zero-Config Build Pipeline + +Add a `zerops.yml` to your repository root. Here are common deployment patterns: + + + + ```yaml title="zerops.yml" + run: + base: nodejs@20 + ports: + - port: 3000 + httpSupport: true + - port: 3001 + httpSupport: true + startCommands: + - command: pnpm run start:web + name: web + - command: pnpm run start:docs + name: docs + ``` + + + ```yaml title="zerops.yml" + run: + base: nodejs@20 + ports: + - port: 3000 + httpSupport: true + start: npm start + ``` + + + +:::tip Multiple Start Commands +For monorepo deployments, use `startCommands` to run multiple applications in a single service: +- Each command can have a unique name for better monitoring +- Configure multiple ports with `httpSupport` for web access +- Use a shared build process for better resource utilization +::: + +### Native Service Discovery + +Services within your project communicate seamlessly using internal hostnames: + +```env +DB_HOST: ${db_hostname} +REDIS_HOST: ${redis_hostname} +``` + +Environment variables are automatically injected and synchronized across all containers. ### Built-in Observability -- Immediate system behavior insights -- Automatic collection of structured logs, metrics, and traces -- Centralized aggregation -- Integration with existing monitoring tools - -### Environment Management -- Centralized environment variables and secrets management -- Secure value protection and distribution -- Automatic service configuration propagation -- Dynamic configuration between connected services - -### Local Development -- Production-mirroring local environments -- Direct access to live services and data -- Fast development cycles -- Simplified local setup - -### Network Management -- Seamless service discovery and communication -- Strict service isolation -- Simple domain and routing management -- Abstracted networking complexity + +Comprehensive monitoring and logging with zero configuration: + +- **Metrics Dashboard** - Real-time performance monitoring +- **Log Aggregation** - Centralized logging with search +- **Alert Management** - Customizable notifications +- **Service Health** - Automatic status monitoring ### Development Tools -- Comprehensive API access -- Native CLI tools -- Advanced templating capabilities -- Consistent behavior across all interaction points + +Complete toolkit for modern development: + +- **CLI Tools** - Powerful command-line interface +- **API Access** - RESTful API for automation +- **Service Templates** - Pre-configured definitions +- **Environment Management** - Secure variable handling + +## Getting Started + +Ready to experience developer-first infrastructure? Follow our [quick start guide](/getting-started) to deploy your first application on Zerops. + +:::info Need Help? +Join our [Discord community](https://discord.gg/zerops) for support and discussions with other developers. +::: From 1b6f0c735a5bcc056940a326db917c4b4c0ee559 Mon Sep 17 00:00:00 2001 From: vankovap Date: Tue, 11 Feb 2025 19:49:23 +0100 Subject: [PATCH 03/59] cloudflare (#189) --- apps/docs/content/elasticsearch/overview.mdx | 2 +- apps/docs/content/features/access.mdx | 9 +- apps/docs/content/features/dns.mdx | 176 ++++++++++++++++++ apps/docs/content/features/pricing.mdx | 4 +- apps/docs/content/help/faq.mdx | 11 ++ apps/docs/sidebars.js | 17 +- apps/docs/static/img/screenshots/add_user.png | Bin 0 -> 8394 bytes 7 files changed, 208 insertions(+), 11 deletions(-) create mode 100644 apps/docs/content/features/dns.mdx create mode 100644 apps/docs/static/img/screenshots/add_user.png diff --git a/apps/docs/content/elasticsearch/overview.mdx b/apps/docs/content/elasticsearch/overview.mdx index f39cfd9f..0b504f4f 100644 --- a/apps/docs/content/elasticsearch/overview.mdx +++ b/apps/docs/content/elasticsearch/overview.mdx @@ -2,7 +2,7 @@ title: Elasticsearch --- -Zerops provides Elasticsearch as a service, supporting both standalone and high-availability deployments. +Deploy [Elasticsearch] instances in Zerops with flexible scaling options, from standalone to highly available clusters. ## Connection diff --git a/apps/docs/content/features/access.mdx b/apps/docs/content/features/access.mdx index 6dc2aa6e..0b53d980 100644 --- a/apps/docs/content/features/access.mdx +++ b/apps/docs/content/features/access.mdx @@ -144,12 +144,9 @@ All settings can be modified later as your needs change. ### DNS Configuration -After setting up domain access in Zerops, update your DNS records with your domain registrar: +After setting up domain access in Zerops, you'll need to configure your DNS records with your domain registrar. -1. Add an A record pointing to your project's public IPv4 address -2. Add an AAAA record pointing to your project's public IPv6 address - -Your application will become accessible through your domain after DNS propagation (depends on your TTL settings). +For detailed instructions on DNS configuration, including specific implementation details for Cloudflare, please refer to the [DNS and Proxy Setup](/features/dns) guide. ### HTTPS Configuration @@ -186,7 +183,7 @@ For applications requiring direct port access or non-HTTP protocols, Zerops prov ### Port Configuration -1. Navigate to service detail page in Zerops GUI, select **Public access & internal ports** and click **Setup first access through IPv6** or activate **Unique IPv4** +1. Navigate to service detail page in Zerops GUI, select **Public access & internal ports** and click **Setup first access through IPv6** or activate **Unique IPv4 add-on** 2. Configure your port settings: - Choose any port from 10-65435 (except 80 and 443) - Select destination service and internal port diff --git a/apps/docs/content/features/dns.mdx b/apps/docs/content/features/dns.mdx new file mode 100644 index 00000000..d5471153 --- /dev/null +++ b/apps/docs/content/features/dns.mdx @@ -0,0 +1,176 @@ +--- +title: DNS and Proxy Configuration Guide +desc: A comprehensive guide for configuring DNS records and proxy settings with Zerops applications, including shared and dedicated IPv4 setups, security measures, and troubleshooting tips. +--- + +This guide will show you how to configure DNS records and proxy settings to work with your Zerops applications, with specific implementation details for Cloudflare. + +## DNS Configuration + +DNS records for Zerops services can be configured in two main ways: +* **With Proxy**: Routes traffic through proxy services, providing additional security and performance features +* **Without Proxy (DNS Only)**: Direct connection to your Zerops service's IP address + +DNS allows you to set two records based on IP address type: +* **A** record for **IPv4** - Zerops offers either a free **shared** IPv4 or a paid **dedicated** IPv4 +* **AAAA** record for **IPv6** - Zerops provides a free **dedicated** IPv6 + +### With Proxy + +#### IPv6 only +```bash +Type Name Content Proxy status TTL +AAAA Proxied Auto +``` + +:::note +Make sure your proxy service supports IPv4 to IPv6 translation for this configuration to work for **both IPv4 and IPv6** users. + +Do not add a proxied A record with shared IPv4 - doing so would prevent the proxy from properly routing IPv4 traffic to your service. +::: + +#### Dedicated IPv4 +```bash +Type Name Content Proxy status TTL +A Proxied Auto +# Optional +AAAA Proxied Auto +``` + +:::tip +Adding also AAAA record can be beneficial as visitors with IPv6 support will connect directly via IPv6. +::: + +#### Shared IPv4 *(valid but NOT recommended)* +```bash +Type Name Content Proxy status TTL +AAAA DNS only Auto +A Proxied Auto +``` + +:::tip Why not? +It does not make sense to expose your IPv6 address while proxying the shared IPv4. Use [IPv6 only](#ipv6-only) setup instead. +::: + +### Without Proxy + +#### Shared IPv4 +```bash +Type Name Content Proxy status TTL +AAAA DNS only Auto +A DNS only Auto +``` + +:::note Both A + AAAA Required +Adding AAAA record is essential for shared IPv4 configuration as it serves as a [security measure](#understand-shared-ipv4) to prevent unauthorized domain claims. +::: + +#### Dedicated IPv4 +```bash +Type Name Content Proxy status TTL +A DNS only Auto +# Optional +AAAA DNS only Auto +``` + +:::tip +Adding also AAAA record can be beneficial as visitors with IPv6 support will connect directly via IPv6. +::: + +#### IPv6 only +```bash +Type Name Content Proxy status TTL +AAAA DNS only Auto +``` + +:::note +This configuration will only work for users with IPv6 connectivity, which may limit your service accessibility. +::: + +### Understanding Shared IPv4 Addresses {#understand-shared-ipv4} + +Shared IPv4 allows multiple Zerops projects to use the same IPv4 address while maintaining separate routing for each project. Here's how it works: + +1. When a visitor makes a request, it first arrives at the shared IPv4 address +2. The system looks at the domain name in the request (using SNI - Server Name Indication) +3. For security, it checks if this domain properly resolves to your project's IPv6 address +4. Only if IPv6 address matches your project will the traffic be routed correctly + +This is why configuring both A (IPv4) and AAAA (IPv6) records is crucial when using shared IPv4 addresses - the IPv6 record acts as a security key that helps prevent unauthorized use of the shared IPv4 address. + +### Best Practices + +#### Security +- Enable proxy protection for DDoS mitigation when available +- Review firewall rules regularly + +#### Performance +- Enable Auto Minify and Brotli Compression +- Configure appropriate cache rules +- Monitor analytics and metrics +- Review bandwidth usage patterns + +## General Troubleshooting Guide + +### Common Issues + +1. **DNS Resolution Issues** + - Confirm correct record configuration + - Verify proxy status settings + - Check IPv6 address accuracy + - Allow time for DNS propagation (typically 5-10 minutes) + - Verify DNS resolver settings + +2. **Connection Problems** + - Test both IPv4 and IPv6 connectivity + - Verify firewall rules + - Check proxy server status if applicable + - Confirm port configurations + +### Validation Steps + +Test your configuration: +```bash +# Check DNS resolution +dig AAAA yourdomain.com + +# Verify connectivity +curl -vI https://yourdomain.com + +# Test IPv4 access +curl -4 -v https://yourdomain.com + +# Test IPv6 access +curl -6 -v https://yourdomain.com +``` + +## Cloudflare Configuration + +### SSL/TLS Mode +Set encryption mode to `Full (strict)` or `Full` + - Ensures end-to-end encryption + - *Full* mode requires any SSL certificate (even if self-signed/expired), while *Full (strict)* requires a valid certificate + +### Certificate Management +1. Enable Edge Certificates to allow Cloudflare to manage SSL/TLS certificates +2. During initial setup, handle HTTPS settings in one of two ways: + - **Option A (Simple but Limited)**: + - Disable `Always Use HTTPS` + - *This approach will interfere with automatic certificate renewal* + - **Option B (Recommended for Production)**: + - Keep `Always Use HTTPS` enabled + - Create and enable a Configuration Rule, which disables Automatic HTTPS Rewrites for this specific path: + ``` + Field: URI Path + Operator: starts with + Value: /.well-known/acme-challenge/ + ``` + This rule disables Automatic HTTPS Rewrites for the certificate validation path. + +### Cloudflare Troubleshooting + +#### SSL Certificate Problems + - Verify `Always Use HTTPS` is disabled + - If you encounter **too many redirects** or similar SSL errors: + - Double-check that SSL/TLS encryption mode is set to *Full* or *Full (strict)*, not *Flexible* + - SSL mode might show incorrectly for newly added domains, try refreshing the page if settings appear incorrect \ No newline at end of file diff --git a/apps/docs/content/features/pricing.mdx b/apps/docs/content/features/pricing.mdx index 29118f71..8bc8f90f 100644 --- a/apps/docs/content/features/pricing.mdx +++ b/apps/docs/content/features/pricing.mdx @@ -16,7 +16,7 @@ A Zerops project represents a private network where services can communicate int - Host multiple small websites within a single project - Create separate projects for different environments (production, development, local) of a larger application -The total cost of deploying an application includes your project's **core package cost** + the **cost of the resources** of the services inside a project **(+ extra costs like Unique IPv4, Extra Egress, Object Storage, Backup Space, Build Time, etc)**. +The total cost of deploying an application includes your project's **core package cost** + the **cost of the resources** of the services inside a project **(+ extra costs like Dedicated IPv4, Extra Egress, Object Storage, Backup Space, Build Time, etc)**. ## Project Plans @@ -177,7 +177,7 @@ The following costs may apply if you opt for additional features: - Unique IPv4 address + Dedicated IPv4 address $3.00 / 30 days diff --git a/apps/docs/content/help/faq.mdx b/apps/docs/content/help/faq.mdx index 0d859da8..b671da13 100644 --- a/apps/docs/content/help/faq.mdx +++ b/apps/docs/content/help/faq.mdx @@ -5,6 +5,7 @@ description: Get quick answers to your related questions about Zerops from frequ import Accordion from '/src/components/Accordion'; import { FAQ, FAQItem } from '/src/components/Faq'; +import Image from '/src/components/Image'; Get quick answers to your related questions about Zerops from frequently asked questions we get asked. @@ -18,6 +19,16 @@ Get quick answers to your related questions about Zerops from frequently asked q It's free to get started, and no credit card is required! However, we recommend visiting our pricing page to explore the options that best suit your needs. + + Navigate to the main menu in the Zerop GUI (with your icon) and add a new user with the selected email to your team. +

+ Runtime Secret Variables +

+
You can reach us on our Discord server for support. For additional contact options, please visit our contacts page. diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index 148135cb..ab62c5b8 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -96,13 +96,26 @@ module.exports = { className: 'homepage-sidebar-item', }, { - type: 'doc', - id: 'features/access', + type: 'category', + link: { + type: 'doc', + id: 'features/access', + }, label: 'Custom Domains & IP Access', customProps: { sidebar_icon: 'globe-europe', }, className: 'homepage-sidebar-item', + items: [ + { + type: 'doc', + id: 'features/dns', + label: 'DNS & Proxy Setup', + customProps: { + exclude_from_doc_list: false, + }, + }, + ], }, { type: 'doc', diff --git a/apps/docs/static/img/screenshots/add_user.png b/apps/docs/static/img/screenshots/add_user.png new file mode 100644 index 0000000000000000000000000000000000000000..4e60670a54e9b86e6fb20e45e4633eec9c0ad14e GIT binary patch literal 8394 zcmbt)cQjm4_x4B;HH09D7NP{vdrOGk6214{CVC%&ghY$pOOzmb^d3ZXGJ0pUA$lJS zzGJ=XTi;sm`u_N>^_zv6>z;e=x%=$BpJzXNKEG9w#mAw*fj}Vm@^Wv~AP@`*@HrR@ z6a2lLe)dN+wQ}<`b+Lq4J3$>S*LXKmJk^iTUt&5S{X|-T5e8mK3XmwVerGlPb(#@QFOlw z1%c2)_nZ@oE~jCUKwru#_y0n#9+BezkQo%1XwrzAY^rBTI_^d!l) z(bc(YDRUz&&eYU>mcAUFR~WW;a9`wL@Z*NWs^Fw3{j>OYW$qCb!obOsVi7xlJoiFz z3LytrjAK1p*V6aiQAwnjS4}(QF`T`^qVxMWGs{F9LbyPSU<%onCxS_0WikBEKF-vN zCJ$QW78ZuZ#uEM8+B!HpV-gll{r&sRn4RxK8o~FFxZZn#3i*=7<3yySGHPl>7#J83 zaEXhnD}2*UhmF)y0vj8<5B9Wswk<#c;(vMioSR!s*AtC$9?BF`bZ}r3^F7r_6p4~> znBsKcr<6eN--W?oc?AWot38i?{P>aDTr2K>K}bT9@0XR4p{%P*?(FP*ykQ#P#>vWx z+hVl1isYlfm->W<*hh3~XlwJlUwRc36a@LZ>Gt^X@xT2GIHB2s4h^mubL zBs4U4ymnKfn2<^>?J99>a#CGGBc!cOBFWH$oFWo4ZSYSFy(}{aN5RjZu@x1ZmY1&f z&JP|w&91E_4ett4DNqmM;Nv5ynB0$|68QwT`E6Cj@>)$zEl45%83RMemoGRGGW6Hi z*Z4#IR#ndb##k`%p8R!y2>t&3n-?{Q=nQ>Vq;b46OC}*9VQC0T%6RqcaNl{r5P9*U(BW|F&-WsQjA%A zBviJq5^wA4QvhQhJ$j_zD4nmyqTF?q7K|B;5#0XD)|Lg>E-(->X2%D%1=5FPBgG{R z|7g_W18?$#KL4e}NGzNY1s->Kc^Pb#0{e~u91b6wm{8Nv*%&!lU0+uNTUX~a9~Ks7 zQ&Co3{Wwxas@$mMZIMQNVq#-8H1y)a2kicb4<8ivg@(u}l62kNc%MIiKFB}#k+99S zDmAOi48!KFl<=8v)%2W+x0TiR!y1{~Z_vfoLX8)eBC?K~tG#i+U$mzA>FMv5YAFKS z@TWx<7BWAhr-$3{#>dAK($Fj}33739B`Y!F;NZl+ZAb>@9!eLIl9R)dmzT$%7#|yZ z3)Y$R(hv&|kAaO1uf<5!-@j!<7Fn|1H{iU3Owx^}7Aq_%Ssg13*VUDmST#e~9lizJEnU$0PL1At_V>;A>jUI#^_amQzJ4Wi;7`-9XXjzu)rR?@^Idt?|n zMUd_HQcy5?e}5k{w^>tDQ^Dk^xL>j{>|EORWm0@RuW(&beINU{xf)iXR?P*M^BvRAbp`@47V`e1$i{Rvi^4Rt}cNeZMT zi&D9KHF%Y^>d&7)Q%k>P=-UtU_uE&f6pz2)`w9FKlMacs0CIj(CkHoo?AVwFh)QO5 zcIi?rVq#(`Fhj7th_;CdElBQ>L+`K-C=;4HrLYj;s|WmaA*!+a#F8imY>EHv$GY{S z*;vEg4`@A{V;QzGWfis%!k6$uTDrNc=9)y!sv&qv&KWNQf=?C#pvFo9jO=Bf6Kax{1_!_hh5NF{tCK>RNSGMS`Nmc z3lVvGzS5JM_+A+OG`CT0i&)YtoIXI*IqCBp^1mS3Nelso4`>w%1jEg4W@cVzK2$4y zRg4*cf6r#e*jG}PoxrnNi@Y`@B+JI#igoNsyUFQkN`1Fo)q{BWopBkgG0CvD%eG%s zEuwRXP444+*b?v`|CHY9?(J0VvjtCI8|y&sHK5`(t=Ygtd3a*^R2t&a)|%$qb8Q<5 zC#UvqTGku{p7na4GFNL-jR7{DpPwt2Q3}4N1pzrQFu*v;#K;(%oII6Uz@%3=WC2}p z^B9-$4VdV%<7ic*-hE$-CpK7&s0+BcW}M8=%L8GXW=H_Gf`x?z@PoBWkPgdQPW3YV z4&?zzW=L$h`rTZe4P=U?t@S6x#l#>c#D!U_#_Q|^6Hb;2Y+G;oCi^<6$XGikmQKXm zu!$K7sht9h_Wpj8dMfNz*nWX=7n9TE7X;!aOqIs(=&~i4WaPu*Ip_QU(j84>J($V| zBDKn6M^EF$WR~9Nu&`|Ha-)!sHGZ(l&C!CmgoLgScOU3Am!JO9AAF+Sd~uVNQ=OMQ zxpUJk~LJXx;Wh@v+KI%yGKCGgTm-T)BjoSg=XzwUIA_BnJr{v@(LBYY4 zrP@Urh2wT>5}sY%-LAu8XYax9{)~OO^Qf}G!KkW)^ZwH7x>EtLT7HMAS6SlzbK(U< zJr0iN%vKW!V-|Lyl?iLbFX73YjKR-wk#*Y)1{R#NVnI(2yE4uGF|GR*9^WK=kNng{@q`H;tHxsH4KPGt~h3xjkxRL@f~0 zAI7RxVglBJN6C+uq0(*WIp6g>$)KZ?KtjpNiV@m!LJD{qSa=ouI`O4pUygKmvZyyV zz*)azxa?fO&6VHjwDn^$G9Jsm$3#R#sH3c#fuRf$Z}dU;=jdqUyyv23$7yb~c#dk8 z`1V3enst_cVs9K1kI%79BD?;dma~O^F#L05q~k$N9i#c|x-$K2os(Gyd))bY|F9rx z6vq82^4@kp`htFQpktcAh}foD2|ue{4JM?eHAuk7CozC#$YP_XpKGFN^0jsKD>>r+ zxyr-N=Ox#dmkRdCm79>oG4iv<=5lXWDusFq|44aYX81QWkDx)Tw89{x@6PkXBST1%HXYva&K?r>tSGKfxe9 zGjsCoq)&;0b{)uV+xkuVzjG886c7oYszS5Z?vyN~@&@-;^Xv z;~x)rY%B=T1Z^YisY?co?@B2hOYOm%vvnLz9y=Wt+}7$GA8^wQ?cQH^ly^>LuRETe~S#%N{p*#9> zTiQ-#(_24I?6oT{_V!%oL-d(@`d^pA31``(K;+S{#=dpR^b763L?g1Ay!{VCSCQ-c z6UD<-zTH|2hS%7$bq;1-5B9j7(8_(amif<{kJpJ70+8%Rz6jfeOB4@mrY$Kyd|_$# zlA1xBF2-}ghh(P-HsHM~4|%w~*gr5$5O><-=9J;WXL$tUGI&KPBIZJj!{`{f=0~eF(Brc z_!N0;lw4-_6cgFLm6VjUx8ma9fGTLMn6m{3_M*Xm>uABS?6Ub6%0BkrU4TQ@8AEX4eWLOuqI9Ai7PE9Wpo&UWt zRm6H|{d4G^RH@d{{>tzp^6`&|+%mV7fo-Ok8Hvc&qND?0;y8Zh;5@}Ra6wDLdt+gb8ijUOjGLN06wvQL7TR#48s4z@9>z z9P>sO`9k}b*y%qT2OQ8Aeg0V~JC!I8{`1DXlw&U0pFx$}I1w84#&3rxCA zwoc?xz%yLobzs(tTE>lzcv;7E>nmH|IVjnx^c)?o)>$7?p-YG5 zO5YuIpzG4+qXB+2LEEeb_$JMHC*rsq7@!Fwzwd>#1jXZD zS|w#Cot!gUDoDc= z=aViT?}O*cViOP)0N8bytB(PUI5s^!qSwLkq+BX7-2n}xd3)x!U1*e`HNm+ljH>N6__$VhzwGyF=KR*M*yt2^X zZ9J^P7bhm3#jnv*_IhKH>%MDamuU=5kiGkY#MBg_0yQ#*mOn~*JS#g#pOf=>b0%_R zc~J)N!|;6qELu^~j@*KoMAzqavrMARj{nAr*z{{7LaBYiY)8L4qxMZ<*XP!Nv-HZ$ z+VN6Y4W@Ph&ludEt|Axn;hn8@Tmfkb9EFPP)(4+0_(ngV_6h_@QDr?$?Xf#ogy;4~ zRyKEX>lRNNc4}uqp#|p0i|hUUl};+Y>_gOh{Yb4HJ*Jx}=M~Cv3PvNoc>A)p7#2@{ zY8|_%+$^Vdk^TfrW2jCyaCCS=mgPoRzpmiT{Zrr=6*uUPPX=Z*+Z4jfF8t8BR~LU{ z(#4(U&f_Fh)de;h^{98+bIv)q-T$a=;>pI;_EM~`Y6 z`0s>RojoEX?17hbrVBf#XSS%Ni`S~ot@>30o3MkzzCo2miNKyBA{wFBLrYlv(0zx)Y&KA)w{=fp14d!2lJI7`*fPZZjGfCDNv z*%?iUkq<1JU!H2Uq!($sOiXi1>o~~0SuQVcd1c`DjJ#6@C^Y!L=FcR4Zv}XNDxgjo zT%zmzthli|;f=CSHCk8l)+yD>^s(Sy`J=k}Z_BB9sdmx-l0={1zn2xt?!G0;!6;rS zf(x*DzlWJR;8Yq24pOoPLstZYD@Ur@VD_&4ciP-XA41dSyGsL-hYrt3kD~bkJZ-D% zintxvf2=UMf^s=BewCVRZvVruD~1;`@z0gn?o=I==JIS0dWanjn5TJ-o^FjDN#`eg z`>|~?&y>2`;1F_MudwKi^;mrDsA$ES?uZDlxpf6w&qbu#V7XY>Lni}Q=UUMct>UXj z>p5TetnSmZYyXy&0@8Fx^C*48TdY~0N8kOcrksE{7fp~hqSnswm-7)jx=Rten*wYR6cX2)%tByE*V zD%-iV+CBP+GWMG9>H|5R$MKK9U$ft)Gz~5;9*)aq!%Eb$q~#O^NI7Ia3P7lMk~TQ; zL)EMLH(*)o<12NZdNuyB3ZB;7&U1cq??Uby)c;v_@SeK}-JCnTEK;GWdOqABfb`sy z5?hG(nCR-O;Pc``za%wV*qtQa#XYQAT!v30E1G^UHh6EOvqw*0)tnAZb070Avf9F} zB+)woaFOB)$YiQr#%--+NA43ld5M05Bwe-6%KORFQc>`nV{tQL4e`+XL(D$*?PB`A zKD_uLquSejmnB$CzkQE0fA$v@VDP7b;`7>|n9=WlDWB$8MHf`{EPvg`;qR6f%TP2K_u z+A?+xW*V}nsXSOb?Nxs2Jw~Jwx>&zp${>x3(>Gm>H0-j-EQ%w1ELklaH!icDBD^rA zspRxACJ!qB6w2pYPt!Ap39_sI{C*&j`MfSCPNIS(#3m{B89GIXAvO7Hq6FTy8cN8a zw`}zljQze3J!ugdn@%rA#&T~(Q5El0E^@fNlu7i@G1l_on;T4y`A3pr6FFMNa2rvP z?iNLab=7oXd3n-bV##V2fJEbVU1pVpgoI0Dtd<;q^3&3vqksTyQKMH>?&+F1cO*y! zV~mpz0(NoNDkh2R9b3Kv{~}d<;Co(3m@|6#hFXXUc3T)%lV$eMr%b*2zXp{5f3}og zK+wH;U{+bgsXLzRXvfA+!Y|5MX-N6jR4Vu9H%;9Gb$xhY^Nm4CNERVgVAuDYg&$ou zJIRrJlrIMONvzT+f=SThT6e~*%0Fd;Av@{tAKxZM8ep1{T6{9a673W`*LHhzQgd84 z5m*R%yu=|gKje=Z8!jDD5z`MZyh@TQXec0iR>}(^OFVw)o$1@jF4Jw5yQ^!=;jdbmRnv-T1HOH z^LdL-F1+U%y}5)HoM}VHiArqGL+%e9`e3IGT1}MSYEDeFw1GeqIy^dRxH_G^#o&sH zigxbOi5m6Re?N-j%UxYv&sXDA>o0ek684F6S}LbB*r~?{h0&~BmGc`!D;LAw^3IQ{ zzAtoy=);En35M+9-t`?en#9>!HM%>)TmGo(5y$n*pQ+dKkugATtALei(gz zl)`0>3C=8^&O(vDKNB|}_Oaqo3C9DbRpE2;PfG|27fKO*FVY_u(3%Bms>YM)4E?tI zCTCHlj^b%?Ol9-BMg$U7(|E7smX+>kBq(PYB_y&yCgw$b(`oe+5?J)(Ia(iF0W##A+o&=S506F^ zIUdo_4EJ-iDFNZWIK64ZZ-9UAT5lJ%OZjKfjdffz0qwH%z_J05xt1>6`jvHiukCi- z_{U@{TQ68o&}~dK>rrWCR_*=6rreEZu~oIr9-zW)^4wDa8XI_9M;)wyvXuDo<2Pnz z&#Z?tHNTfRvmI3fMX~}giruyw*lq)o8uBGP{2YBWoFd}+5}e8dnu~$=S^{KsZSCOt za!>v3+w5(6QPFhyI7W;L+fl}c)S^8{!xGUlx$PF*T+jtkp#L)}J0c#35BjP)rVGO2 zo72??d@t^Q!8x3+bSK`Fl7&>5ZwdG{TodoM?!A7No1?pb=$dE5PZ+qSNal=QyfGV^ zD`4&!w(OpO&I!ZxjhZIyVXt4mR!SF)DKl(R)6$XwJs+UsG5`@aJ^d*fjSdSBS5New z0n!0P=cffWh#0H=rFI7(I)KIq(BH2vPF6s{V>yy1A3?$Qq9Io z$Xlb@@gSs7^{&Djp)$xmL! zdGScDNdtnwZ)GaF0)e43VVc<73P%uxc;BMo`D2s@^~_=LPM z+W3jOrTn$9Ba+aE)Nd1u`0O$R+)b-4EA>hpW}9PJ%Nj{@D>IM3(R(3FwWsQQADDN~ z-!l8k`DF^fbtO}AkRkm)MwKB;?f06gVW8^)f*7blJ7v$jiySwNnMn4p0x8 znVTOR*`N1+86GcCrGWtZ-F+}qybsiCaFUk--}h`cAGn25rYL##Ygg^CiR_N`gqcNz zF+q0u--ES_8ovfu=}$kfeNRMoF~J5G{Y?-+DJeM!fT%${iiw%>wKNr4I9s*Y5v!4KsK}DeQgXSXxpt1kyR)Lmbx~O+72prIq>WpVmf5K}+ zC?q5V(osxS)-Y(aQAXUW`@P&1?hPobQ@vT-;4;;Tp+(-n*8x6__>sC?QOMi!|B!YzOk!GK(I)&X1*y%qg!=- z3be;qdc|JWn>sp{c0cq1X_Mb+E=;Sq#pFguTKYcl7D{My3}}BI?KbVb*kV*kms3-V z?H-a3JMA!2e`k3Lg^N3p3j`JM>^j1if(1hCB2^}@fqbd&##TOt{!atp*T=<<$E2j+ z9m+v(Z}=B9w@A{BpCSQ2pr)pCXde0UhCg$4jFnGeI>C?%C$91U(wJzo}V- z%N@KgDBCHjW_g+foy2#UgZLaJimRaG#UD3bp~p$@jF%qCS^E+do(?$-f!=hr`3DNz z_S7NDKmfoWDE5@hIR=gBW`qK2?nm~`d^0w269@c@u!H4P{1q{Vows{_fgB1O{sDLk zF9q&W#& Date: Tue, 11 Feb 2025 22:56:54 +0100 Subject: [PATCH 04/59] env variables update (#190) --- apps/docs/content/features/env-variables.mdx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/apps/docs/content/features/env-variables.mdx b/apps/docs/content/features/env-variables.mdx index baf82b61..8f011c90 100644 --- a/apps/docs/content/features/env-variables.mdx +++ b/apps/docs/content/features/env-variables.mdx @@ -36,7 +36,7 @@ These variables are defined with `envVariables` attribute in the `build` or `run DB_PASS: password ``` -See how to [reference variables](#referencing-variables) between services and deployment phases. +See how to [reference variables](#referencing-variables) between services and between build and runtime environments. :::note Your application must be redeployed when updating environmental variables in `zerops.yml`. @@ -166,15 +166,23 @@ setup: app dbConnection: ${dbtest_connectionString} ``` -#### Between Build and Runtime -Prefix variables with `RUNTIME_` or `BUILD_`: -```yml +#### Between Build and Runtime Environments + +Build and runtime are two distinct environments in Zerops. Each environment can have its own set of variables, and you can use the same variable names in both environments since they are separate. Due to this separation, variables defined in one are not automatically accessible in the other. + +To share variables between environments, you need to use specific prefixes: +- Use `RUNTIME_` prefix to access runtime variables during build +- Use `BUILD_` prefix to access build variables during runtime + +Here's an example of `zerops.yml` file showing how to reference a runtime variable during build: + +```yml title="zerops.yml" build: envVariables: - variable: ${RUNTIME_someVariable} + API_KEY: ${RUNTIME_API_KEY} # Using runtime variable during build run: envVariables: - someVariable: hello world + API_KEY: "12345-abcde" # Referenced in build with RUNTIME_ prefix ``` #### Project Variables From c948ca1f9823ce5787374b1f4d498129d81e6f1f Mon Sep 17 00:00:00 2001 From: vankovap Date: Wed, 12 Feb 2025 12:37:54 +0100 Subject: [PATCH 05/59] dns update (#191) --- apps/docs/content/features/dns.mdx | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/apps/docs/content/features/dns.mdx b/apps/docs/content/features/dns.mdx index d5471153..fbb86774 100644 --- a/apps/docs/content/features/dns.mdx +++ b/apps/docs/content/features/dns.mdx @@ -8,7 +8,7 @@ This guide will show you how to configure DNS records and proxy settings to work ## DNS Configuration DNS records for Zerops services can be configured in two main ways: -* **With Proxy**: Routes traffic through proxy services, providing additional security and performance features +* **With Proxy**: Routes traffic through proxy services, providing additional security and performance features (recommended for DDoS protection) * **Without Proxy (DNS Only)**: Direct connection to your Zerops service's IP address DNS allows you to set two records based on IP address type: @@ -98,18 +98,6 @@ Shared IPv4 allows multiple Zerops projects to use the same IPv4 address while m This is why configuring both A (IPv4) and AAAA (IPv6) records is crucial when using shared IPv4 addresses - the IPv6 record acts as a security key that helps prevent unauthorized use of the shared IPv4 address. -### Best Practices - -#### Security -- Enable proxy protection for DDoS mitigation when available -- Review firewall rules regularly - -#### Performance -- Enable Auto Minify and Brotli Compression -- Configure appropriate cache rules -- Monitor analytics and metrics -- Review bandwidth usage patterns - ## General Troubleshooting Guide ### Common Issues @@ -123,7 +111,6 @@ This is why configuring both A (IPv4) and AAAA (IPv6) records is crucial when us 2. **Connection Problems** - Test both IPv4 and IPv6 connectivity - - Verify firewall rules - Check proxy server status if applicable - Confirm port configurations From 422def049e67c70dffbce330f9ddd3968a7580ca Mon Sep 17 00:00:00 2001 From: vankovap Date: Wed, 12 Feb 2025 13:15:31 +0100 Subject: [PATCH 06/59] Cloudflare (#192) * remove rabbits * dns update --- apps/docs/content/features/dns.mdx | 2 -- apps/docs/content/features/scaling-ha.mdx | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/docs/content/features/dns.mdx b/apps/docs/content/features/dns.mdx index fbb86774..ac5a5711 100644 --- a/apps/docs/content/features/dns.mdx +++ b/apps/docs/content/features/dns.mdx @@ -107,7 +107,6 @@ This is why configuring both A (IPv4) and AAAA (IPv6) records is crucial when us - Verify proxy status settings - Check IPv6 address accuracy - Allow time for DNS propagation (typically 5-10 minutes) - - Verify DNS resolver settings 2. **Connection Problems** - Test both IPv4 and IPv6 connectivity @@ -143,7 +142,6 @@ Set encryption mode to `Full (strict)` or `Full` 2. During initial setup, handle HTTPS settings in one of two ways: - **Option A (Simple but Limited)**: - Disable `Always Use HTTPS` - - *This approach will interfere with automatic certificate renewal* - **Option B (Recommended for Production)**: - Keep `Always Use HTTPS` enabled - Create and enable a Configuration Rule, which disables Automatic HTTPS Rewrites for this specific path: diff --git a/apps/docs/content/features/scaling-ha.mdx b/apps/docs/content/features/scaling-ha.mdx index 80fa4902..56e06708 100644 --- a/apps/docs/content/features/scaling-ha.mdx +++ b/apps/docs/content/features/scaling-ha.mdx @@ -122,7 +122,7 @@ Your data is stored only in a single container. If the container or the underlyi If the **Highly Available** mode is chosen, Zerops will deploy the database cluster with a fixed number of containers and control mechanisms for automatic cluster repair. -The KeyDB (Redis) cluster consists of 2 containers in the master-master replica. MariaDB, PostgreSQL databases and RabbitMQ message broker are deployed in 3 containers connected in the High Availability cluster with 2 additional load balancers which ensures high reliability. +The KeyDB (Redis) cluster consists of 2 containers in the master-master replica. MariaDB and PostgreSQL databases are deployed in 3 containers connected in the High Availability cluster with 2 additional load balancers which ensures high reliability. You are not charged for the resources consumed by load balancers. From 5c16dd7afb5f42d23620a40ff4ca884a80854a65 Mon Sep 17 00:00:00 2001 From: vankovap Date: Wed, 12 Feb 2025 14:14:28 +0100 Subject: [PATCH 07/59] fix link (#193) --- apps/docs/content/bun/how-to/access.mdx | 4 ++-- apps/docs/content/deno/how-to/access.mdx | 4 ++-- apps/docs/content/dotnet/how-to/access.mdx | 4 ++-- apps/docs/content/elixir/how-to/access.mdx | 4 ++-- apps/docs/content/gleam/how-to/access.mdx | 4 ++-- apps/docs/content/go/how-to/access.mdx | 4 ++-- apps/docs/content/java/how-to/access.mdx | 4 ++-- apps/docs/content/meilisearch/overview.mdx | 2 +- apps/docs/content/nginx/how-to/access.mdx | 4 ++-- apps/docs/content/nodejs/how-to/access.mdx | 4 ++-- apps/docs/content/php/how-to/access.mdx | 4 ++-- apps/docs/content/python/how-to/access.mdx | 4 ++-- apps/docs/content/rust/how-to/access.mdx | 4 ++-- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/apps/docs/content/bun/how-to/access.mdx b/apps/docs/content/bun/how-to/access.mdx index 0a80def1..52b36040 100644 --- a/apps/docs/content/bun/how-to/access.mdx +++ b/apps/docs/content/bun/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Bun service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Bun service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Bun service is not publicly accessible. When your application i ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](bun/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](bun/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/deno/how-to/access.mdx b/apps/docs/content/deno/how-to/access.mdx index 0fde99bc..b25d9b10 100644 --- a/apps/docs/content/deno/how-to/access.mdx +++ b/apps/docs/content/deno/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Deno service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Deno service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Deno service is not publicly accessible. When your application ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/deno/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/deno/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/dotnet/how-to/access.mdx b/apps/docs/content/dotnet/how-to/access.mdx index 90dd2194..90ddd691 100644 --- a/apps/docs/content/dotnet/how-to/access.mdx +++ b/apps/docs/content/dotnet/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your .NET service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your .NET service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your .NET service is not publicly accessible. When your application ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/dotnet/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/dotnet/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/elixir/how-to/access.mdx b/apps/docs/content/elixir/how-to/access.mdx index 4f6ae5fa..58b02119 100644 --- a/apps/docs/content/elixir/how-to/access.mdx +++ b/apps/docs/content/elixir/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Elixir service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Elixir service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Elixir service is not publicly accessible. When your applicatio ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/elixir/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/elixir/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/gleam/how-to/access.mdx b/apps/docs/content/gleam/how-to/access.mdx index b07656c6..3a6a451a 100644 --- a/apps/docs/content/gleam/how-to/access.mdx +++ b/apps/docs/content/gleam/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Gleam service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Gleam service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Gleam service is not publicly accessible. When your application ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/gleam/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/gleam/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/go/how-to/access.mdx b/apps/docs/content/go/how-to/access.mdx index 63d3d2e7..c6ed5149 100644 --- a/apps/docs/content/go/how-to/access.mdx +++ b/apps/docs/content/go/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Go service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Go service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Go service is not publicly accessible. When your application is ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/go/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/go/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/java/how-to/access.mdx b/apps/docs/content/java/how-to/access.mdx index 09e5ea13..170d2101 100644 --- a/apps/docs/content/java/how-to/access.mdx +++ b/apps/docs/content/java/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Java service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Java service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Java service is not publicly accessible. When your application ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/java/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/java/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/meilisearch/overview.mdx b/apps/docs/content/meilisearch/overview.mdx index 6bad842b..976d483b 100644 --- a/apps/docs/content/meilisearch/overview.mdx +++ b/apps/docs/content/meilisearch/overview.mdx @@ -73,7 +73,7 @@ The service provides three pre-configured API keys, each with specific access le ### Access Methods #### Public HTTPS Access -When enabled, access via [Zerops subdomain](/features/access#public-access-through-zeropsapp-subdomain). +When enabled, access via [Zerops subdomain](/features/access#public-access-through-zerops-subdomain). #### Internal Project Access Services within the same project can reach Meilisearch directly: diff --git a/apps/docs/content/nginx/how-to/access.mdx b/apps/docs/content/nginx/how-to/access.mdx index f8a1c0a5..fe84265b 100644 --- a/apps/docs/content/nginx/how-to/access.mdx +++ b/apps/docs/content/nginx/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Nginx static service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Nginx static service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Nginx static service is not publicly accessible. When your appl ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/nginx/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/nginx/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/nodejs/how-to/access.mdx b/apps/docs/content/nodejs/how-to/access.mdx index 2cfda64c..6af3ee88 100644 --- a/apps/docs/content/nodejs/how-to/access.mdx +++ b/apps/docs/content/nodejs/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Node.js service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Node.js service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Node.js service is not publicly accessible. When your applicati ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/nodejs/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/nodejs/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/php/how-to/access.mdx b/apps/docs/content/php/how-to/access.mdx index 65a8d99f..5414a5a2 100644 --- a/apps/docs/content/php/how-to/access.mdx +++ b/apps/docs/content/php/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your PHP service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your PHP service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your PHP service is not publicly accessible. When your application i ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/php/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/php/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/python/how-to/access.mdx b/apps/docs/content/python/how-to/access.mdx index 1f9f0028..e9c172ce 100644 --- a/apps/docs/content/python/how-to/access.mdx +++ b/apps/docs/content/python/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Python service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Python service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Python service is not publicly accessible. When your applicatio ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/python/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/python/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). diff --git a/apps/docs/content/rust/how-to/access.mdx b/apps/docs/content/rust/how-to/access.mdx index 61b20b78..7f8ce98f 100644 --- a/apps/docs/content/rust/how-to/access.mdx +++ b/apps/docs/content/rust/how-to/access.mdx @@ -55,7 +55,7 @@ Use the `ssh` command to connect to your service v ## Public access through zerops.io subdomain -By default, your Rust service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain). +By default, your Rust service is not publicly accessible. To test your application, enable the [public access through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain). ## Public access through your domain @@ -63,4 +63,4 @@ By default, your Rust service is not publicly accessible. When your application ## Public access from another Zerops project -All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/rust/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zeropsapp-subdomain) or [through your domain](/features/access#public-access-through-your-domain). +All services of the same project share a dedicated private network. To connect to a service within the same project, just use the service hostname and its [internal port](/rust/how-to/build-pipeline#ports). Different projects are not connected inside Zerops. To connect to a runtime service from another Zerops project, you need to use public access either [through zerops.io subdomain](/features/access#public-access-through-zerops-subdomain) or [through your domain](/features/access#public-access-through-your-domain). From b538c7ba50491c106d7483ab2f32f3aec4be376f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Lapi=C5=A1?= Date: Sat, 15 Feb 2025 12:32:02 +0100 Subject: [PATCH 08/59] fix(docs): Run development on Windows platform --- apps/docs/.content.eslintrc.js | 5 +++++ apps/docs/package.json | 3 ++- package.json | 9 +++++---- yarn.lock | 31 ++++++++++++++++++++++++++++++- 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/apps/docs/.content.eslintrc.js b/apps/docs/.content.eslintrc.js index ba67e1f0..be776f64 100644 --- a/apps/docs/.content.eslintrc.js +++ b/apps/docs/.content.eslintrc.js @@ -1,4 +1,9 @@ module.exports = { root: true, extends: ['docs/content'], + rules: { + 'quotes': ['error', 'single'], + 'semi': ['error', 'always'], + 'max-len': ['error', { code: 80, ignoreComments: true }] + } }; diff --git a/apps/docs/package.json b/apps/docs/package.json index 8d069a6f..8b88c13d 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -68,6 +68,7 @@ }, "devDependencies": { "@babel/plugin-proposal-decorators": "^7.22.15", + "@docusaurus/eslint-plugin": "latest", "@docusaurus/module-type-aliases": "latest", "@docusaurus/tsconfig": "latest", "@docusaurus/types": "latest", @@ -80,4 +81,4 @@ "engines": { "node": ">=18.0" } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 23a49cb7..03d5fa01 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,9 @@ }, "scripts": { "build": "turbo run build --env-mode=loose", - "build:docs": "turbo run build --filter=docs", - "start": "turbo run start:monorepo", - "dev": "turbo run dev:monorepo", + "build:docs": "turbo run build --filter=docs --env-mode=loose", + "start": "turbo run start:monorepo --env-mode=loose", + "dev": "turbo run dev:monorepo --env-mode=loose", "format": "prettier . --write", "lint": "turbo run lint", "lint:content": "turbo run lint:content" @@ -19,6 +19,7 @@ "dependencies": { "autoprefixer": "10.4.14", "eslint": "^8.36.0", + "eslint-plugin-prettier": "5.2.3", "postcss": "8.4.31", "prettier": "3.3.3", "tailwindcss": "3.3.3", @@ -29,4 +30,4 @@ "node": ">=18.17.0" }, "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610" -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index ac89392a..892cf49e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1410,6 +1410,14 @@ "@typescript-eslint/utils" "^5.62.0" tslib "^2.6.0" +"@docusaurus/eslint-plugin@latest": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@docusaurus/eslint-plugin/-/eslint-plugin-3.7.0.tgz#bb5a13ba7fffb25cd122bf8d955b00fd4017c994" + integrity sha512-Bnmx16acy1cFTkv5onm8kRngU6xETEIqkuka+bH4+gCADnKJewHQ/3CRGjsRaii1M/103NSzGlf8ffQ1k9S04w== + dependencies: + "@typescript-eslint/utils" "^5.62.0" + tslib "^2.6.0" + "@docusaurus/logger@3.4.0": version "3.4.0" resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.4.0.tgz#8b0ac05c7f3dac2009066e2f964dee8209a77403" @@ -2433,6 +2441,11 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + "@pnpm/config.env-replace@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" @@ -7724,6 +7737,14 @@ eslint-plugin-markdown@^3.0.0: dependencies: mdast-util-from-markdown "^0.8.5" +eslint-plugin-prettier@5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz#c4af01691a6fa9905207f0fbba0d7bea0902cce5" + integrity sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.9.1" + eslint-plugin-prettier@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" @@ -13629,6 +13650,14 @@ swc-loader@^0.2.3: dependencies: "@swc/counter" "^0.1.3" +synckit@^0.9.1: + version "0.9.2" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62" + integrity sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + tailwind-merge@^2.2.1: version "2.3.0" resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-2.3.0.tgz#27d2134fd00a1f77eca22bcaafdd67055917d286" @@ -13875,7 +13904,7 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.6 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== -tslib@^2.8.0: +tslib@^2.6.2, tslib@^2.8.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== From 5bc9b45fd3037e34ba98c6584659b1247500e131 Mon Sep 17 00:00:00 2001 From: vankovap Date: Sun, 16 Feb 2025 19:39:58 +0100 Subject: [PATCH 09/59] qdrant (#195) --- apps/docs/content/homepage.mdx | 2 +- apps/docs/content/qdrant/overview.mdx | 62 +++++++++++++++++++++++++++ apps/docs/sidebars.js | 20 +++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/qdrant/overview.mdx diff --git a/apps/docs/content/homepage.mdx b/apps/docs/content/homepage.mdx index fa26996a..af64c8d0 100644 --- a/apps/docs/content/homepage.mdx +++ b/apps/docs/content/homepage.mdx @@ -48,7 +48,7 @@ export const databases = [ { name: "Elasticsearch", link: "/elasticsearch/overview", icon: }, { name: "Typesense", link: "/typesense/overview", icon: }, { name: "Meilisearch", link: "/meilisearch/overview", icon: }, - { name: "Qdrant", icon: }, + { name: "Qdrant", link: "/qdrant/overview", icon: }, { name: "Valkey", icon: }, { name: "Kafka", icon: }, { name: "NATS", icon: }, diff --git a/apps/docs/content/qdrant/overview.mdx b/apps/docs/content/qdrant/overview.mdx new file mode 100644 index 00000000..328f0584 --- /dev/null +++ b/apps/docs/content/qdrant/overview.mdx @@ -0,0 +1,62 @@ +--- +title: Qdrant +desc: Production-ready Qdrant vector database on Zerops platform with managed infrastructure, automatic cluster configuration, and built-in high availability. +--- + +import UnorderedList from '@site/src/components/UnorderedList'; +import UnorderedCodeList from '@site/src/components/UnorderedCodeList'; +import data from '@site/static/data.json'; + +[Qdrant](https://qdrant.tech/) on Zerops provides a fully managed vector database solution designed for AI applications. Focus on building vector search features while we handle infrastructure maintenance, high availability, and data protection. + +## Supported Versions + +Currently supported Qdrant versions: + + +Import configuration version: + + +## Deployment Modes + +#### Non-HA Mode +- Single node setup ideal for development and non-production projects +- Simple deployment and management + +#### HA Cluster +- Automatically configured with 3 nodes +- Recommended for production environments +- Built-in data replication across nodes +- By default (`automaticClusterReplication=true`), automatically creates replicas of all shards across all three nodes + - Can be disabled by setting `automaticClusterReplication` to `false` +- Automatic cluster recovery and node replacement in case of failures + +## Data Backup + +Backups are performed in `snapshot` format. For HA Cluster, backups are created on the primary container (leader) and saved to the local disk before being compressed and streamed to backup storage. The local file is then deleted. + +For general information about backup frequency and storage limits, see our [Backup documentation](/features/backup). + +## Network Architecture & Access + +Qdrant can be accessed only from services within the same project, public access is not available. + +### API Keys +API key authentication is required for both HTTP and gRPC API calls. Include the key in your request headers. The keys can be found in generated environment variables of the service: + +- **API Key:** Full access API key for administrative operations (creating collections, indexing) +- **Read-only API Key:** Restricted API key for search operations + +#### HTTP API +- **Port:** `6333` +- **Connection String:** `http://${hostname}:${port}` + +#### gRPC API +- **Port:** `6334` +- **gRPC Connection String:** `tcp://${hostname}:${grpcPort}` + +## Support + +For advanced configurations or custom requirements: +- Join our [Discord community](https://discord.gg/zerops) +- Contact support via [email](mailto:support@zerops.io) \ No newline at end of file diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index ab62c5b8..f0fec07c 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -2060,6 +2060,26 @@ module.exports = { }, }, ], + qdrant: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'qdrant/overview', + label: 'Zerops Qdrant Service', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'qdrant', + }, + }, + ], // rabbitmq: [ // { // type: "ref", From 478ca3575daff726a9134004f09670f43ffd1fed Mon Sep 17 00:00:00 2001 From: vankovap Date: Sun, 16 Feb 2025 19:56:57 +0100 Subject: [PATCH 10/59] qdrant (#196) --- apps/docs/sidebars.js | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index f0fec07c..329d802d 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -398,24 +398,15 @@ module.exports = { }, className: "homepage-sidebar-item service-sidebar-item", }, -// { -// type: "ref", -// id: "meilisearch/overview", -// label: "Meilisearch", -// customProps: { -// sidebar_icon: "meilisearch", -// }, -// className: "homepage-sidebar-item service-sidebar-item", -// }, -// { -// type: "ref", -// id: "qdrant/overview", -// label: "Qdrant", -// customProps: { -// sidebar_icon: "qdrant", -// }, -// className: "homepage-sidebar-item service-sidebar-item", -// }, + { + type: "ref", + id: "qdrant/overview", + label: "Qdrant", + customProps: { + sidebar_icon: "qdrant", + }, + className: "homepage-sidebar-item service-sidebar-item", + }, // { // type: "ref", // id: "valkey/overview", From 1a03ffcd515173ff153fee2f7fe6acc89a27bd42 Mon Sep 17 00:00:00 2001 From: vankovap Date: Tue, 18 Feb 2025 10:02:25 +0100 Subject: [PATCH 11/59] api basic (#198) --- apps/docs/content/references/api.mdx | 111 ++++++++++++++++++ apps/docs/sidebars.js | 9 ++ .../docs/src/theme/Icon/CurlyBraces/index.tsx | 27 +++++ apps/docs/src/theme/Icon/index.tsx | 4 +- 4 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/references/api.mdx create mode 100644 apps/docs/src/theme/Icon/CurlyBraces/index.tsx diff --git a/apps/docs/content/references/api.mdx b/apps/docs/content/references/api.mdx new file mode 100644 index 00000000..38d98009 --- /dev/null +++ b/apps/docs/content/references/api.mdx @@ -0,0 +1,111 @@ +--- +title: REST API Reference +desc: Overview of Zerops REST API endpoints and authentication, designed to help you integrate with Zerops programmatically +--- + +The Zerops REST API allows you to programmatically interact with Zerops platform by providing access to resources like projects, services, users, billing, and configurations. + +## Base URL + +All API requests should be made to: +``` +https://api.app-prg1.zerops.io/api/rest/public +``` + +## Authentication + +The API uses Bearer token authentication. You can obtain your Personal access token from the **Access Token management** section in the Zerops GUI. + +Include the token in the Authorization header: +``` +Authorization: Bearer +``` + +## API Resources + +:::note +Some resource groups have non-obvious naming: +- `/service-stack` endpoints handle services management +- `/user-data` endpoints handle environment variables management +::: + +View the [full Swagger documentation](https://api.app-prg1.zerops.io/api/rest/public/swagger) or jump to a specific resource group: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupDescription
/app-versionManage application versions, builds, and deployments
/authAuthentication and token management
/billingBilling operations and payment management
/clientClient account management
/client-userUser management within client accounts
/githubGitHub repository connections and authorization
/gitlabGitLab repository connections and authorization
/projectProject management operations
/project-envProject environment variables management
/public-http-routingHTTP routing configuration
/public-port-routingPort routing and firewall rules configuration
/service-stackService stack operations and configuration
/settingsSystem settings and configurations
/userUser account management
/user-dataEnvironment variables management
/user-notificationUser notifications management
/user-tokenPersonal access tokens management
\ No newline at end of file diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index 329d802d..291e32b5 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -643,6 +643,15 @@ module.exports = { }, className: 'homepage-sidebar-item', }, + { + type: 'doc', + id: 'references/api', + label: 'API', + customProps: { + sidebar_icon: 'curly-braces', + }, + className: 'homepage-sidebar-item', + }, { type: 'html', value: 'Help', diff --git a/apps/docs/src/theme/Icon/CurlyBraces/index.tsx b/apps/docs/src/theme/Icon/CurlyBraces/index.tsx new file mode 100644 index 00000000..e82c9481 --- /dev/null +++ b/apps/docs/src/theme/Icon/CurlyBraces/index.tsx @@ -0,0 +1,27 @@ +import { IconProps } from '@medusajs/icons/dist/types'; +import clsx from 'clsx'; +import React from 'react'; + +const IconCurlyBraces = (props: IconProps) => { + return ( + + + + ); +}; + +export default IconCurlyBraces; diff --git a/apps/docs/src/theme/Icon/index.tsx b/apps/docs/src/theme/Icon/index.tsx index bfb33572..9c56bd56 100644 --- a/apps/docs/src/theme/Icon/index.tsx +++ b/apps/docs/src/theme/Icon/index.tsx @@ -41,6 +41,7 @@ import { ComputerDesktopSolid, CreditCardSolid, CubeSolid, + CurlyBraces, CurrencyDollar, CurrencyDollarSolid, Discord, @@ -150,7 +151,7 @@ import IconCloudOk from './CloudOk'; import IconGitlab from './Gitlab'; import IconTypesense from './Typesense'; import IconDocker from './Docker'; - +import IconCurlyBraces from './CurlyBraces'; export default { 'academic-cap-solid': AcademicCapSolid, @@ -306,4 +307,5 @@ export default { database: IconDatabase, cloudok: IconCloudOk, typesense: IconTypesense, + 'curly-braces': IconCurlyBraces, }; From 96a800c4ad8f9bf3429ca64e453a0e4f7b90f66a Mon Sep 17 00:00:00 2001 From: vankovap Date: Fri, 21 Feb 2025 10:29:30 +0100 Subject: [PATCH 12/59] minVCpu -> minCpu (#199) --- apps/docs/content/references/import.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/docs/content/references/import.mdx b/apps/docs/content/references/import.mdx index 8f62af0b..7ffad003 100644 --- a/apps/docs/content/references/import.mdx +++ b/apps/docs/content/references/import.mdx @@ -60,8 +60,8 @@ services: priority: 1 # Vertical autoscaling configuration object verticalAutoscaling: - minVCpu: 1 - maxVCpu: 5 + minCpu: 1 + maxCpu: 5 # Choose SHARED or DEDICATED cpuMode: DEDICATED minRam: 1 @@ -367,12 +367,12 @@ The vertical autoscaling configuration is used to define the vertical autoscalin - minVCpu + minCpu integer Minimum number of virtual CPUs - maxVCpu + maxCpu integer Maximum number of virtual CPUs @@ -456,8 +456,8 @@ services: buildFromGit: https://github.com/example/app enableSubdomainAccess: true verticalAutoscaling: - minVCpu: 1 - maxVCpu: 5 + minCpu: 1 + maxCpu: 5 # Choose SHARED or DEDICATED cpuMode: DEDICATED minRam: 1 @@ -477,7 +477,7 @@ This yaml will create a service with the hostname `app` with `php-nginx@8.4` run - RAM: `1-32 GB` - Disk Space: `1-100 GB` -The `VerticalAutoscaling` map allows you to define the vertical autoscaling settings for the service with parameters like `minVCpu`, `maxVCpu`, `cpuMode`, `minRam`, `maxRam`, `minDisk`, `maxDisk`, `startCpuCoreCount`, `minFreeCpuCores`, `minFreeCpuPercent`, `minFreeRamGB`, `minFreeRamPercent`. +The `VerticalAutoscaling` map allows you to define the vertical autoscaling settings for the service with parameters like `minCpu`, `maxCpu`, `cpuMode`, `minRam`, `maxRam`, `minDisk`, `maxDisk`, `startCpuCoreCount`, `minFreeCpuCores`, `minFreeCpuPercent`, `minFreeRamGB`, `minFreeRamPercent`. ### Horizontal Autoscaling Configuration From 97f554dc7298e7f076573d08be3147d5ca14cae9 Mon Sep 17 00:00:00 2001 From: vankovap Date: Fri, 21 Feb 2025 14:59:47 +0100 Subject: [PATCH 13/59] resources update (#200) --- apps/docs/content/bun/how-to/create.mdx | 7 +-- apps/docs/content/bun/how-to/scaling.mdx | 9 ++-- apps/docs/content/deno/how-to/create.mdx | 7 +-- apps/docs/content/deno/how-to/scaling.mdx | 9 ++-- apps/docs/content/dotnet/how-to/create.mdx | 28 +--------- apps/docs/content/dotnet/how-to/scaling.mdx | 31 ++--------- apps/docs/content/elixir/how-to/create.mdx | 7 +-- apps/docs/content/elixir/how-to/scaling.mdx | 9 ++-- apps/docs/content/frameworks/laravel.mdx | 2 +- apps/docs/content/gleam/how-to/create.mdx | 7 +-- apps/docs/content/gleam/how-to/scaling.mdx | 9 ++-- apps/docs/content/go/how-to/create.mdx | 28 +--------- apps/docs/content/go/how-to/scaling.mdx | 31 ++--------- apps/docs/content/homepage.mdx | 2 +- apps/docs/content/java/how-to/create.mdx | 29 +---------- apps/docs/content/java/how-to/scaling.mdx | 31 ++--------- apps/docs/content/keydb/how-to/create.mdx | 29 +---------- apps/docs/content/keydb/how-to/scale.mdx | 33 ++---------- apps/docs/content/mariadb/how-to/create.mdx | 7 +++ apps/docs/content/mariadb/how-to/scale.mdx | 15 +++--- apps/docs/content/nginx/how-to/create.mdx | 29 +---------- apps/docs/content/nginx/how-to/scaling.mdx | 33 ++---------- apps/docs/content/nodejs/how-to/create.mdx | 28 +--------- apps/docs/content/nodejs/how-to/scaling.mdx | 31 ++--------- apps/docs/content/php/how-to/create.mdx | 29 +---------- apps/docs/content/php/how-to/scaling.mdx | 31 ++--------- .../docs/content/postgresql/how-to/create.mdx | 11 ++-- apps/docs/content/postgresql/how-to/scale.mdx | 15 +++--- apps/docs/content/python/how-to/create.mdx | 28 +--------- apps/docs/content/python/how-to/scaling.mdx | 31 ++--------- apps/docs/content/rust/how-to/create.mdx | 29 +---------- apps/docs/content/rust/how-to/scaling.mdx | 31 ++--------- .../src/components/ResourceTable/index.tsx | 51 +++++++++++++++++++ 33 files changed, 149 insertions(+), 558 deletions(-) create mode 100644 apps/docs/src/components/ResourceTable/index.tsx diff --git a/apps/docs/content/bun/how-to/create.mdx b/apps/docs/content/bun/how-to/create.mdx index f5e37ca0..a7dba69d 100644 --- a/apps/docs/content/bun/how-to/create.mdx +++ b/apps/docs/content/bun/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a powerful Bun runtime service with extensive build support. The Bun runtime is highly scalable and customizable to suit your development and production needs. With just a few clicks or commands, you can have a production-ready Bun environment up and running in no time. @@ -86,11 +87,7 @@ You can choose the CPU mode when starting a new service or change it later. The Vertical auto scaling has the following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Bun services always start with the minimal resources. diff --git a/apps/docs/content/bun/how-to/scaling.mdx b/apps/docs/content/bun/how-to/scaling.mdx index ea6b0106..52d2f8aa 100644 --- a/apps/docs/content/bun/how-to/scaling.mdx +++ b/apps/docs/content/bun/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your node.js service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,11 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Bun service always starts with the minimal resources. @@ -185,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/deno/how-to/create.mdx b/apps/docs/content/deno/how-to/create.mdx index 40204db2..a9b882f2 100644 --- a/apps/docs/content/deno/how-to/create.mdx +++ b/apps/docs/content/deno/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a powerful Deno runtime service with extensive build support. The Deno runtime is highly scalable and customizable to suit your development and production needs. With just a few clicks or commands, you can have a production-ready Deno environment up and running in no time. @@ -81,11 +82,7 @@ You can choose the CPU mode when starting a new service or change it later. The Vertical auto scaling has the following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Deno services always start with the minimal resources. diff --git a/apps/docs/content/deno/how-to/scaling.mdx b/apps/docs/content/deno/how-to/scaling.mdx index d038e1ba..352f0966 100644 --- a/apps/docs/content/deno/how-to/scaling.mdx +++ b/apps/docs/content/deno/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your deno service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,11 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Deno service always starts with the minimal resources. @@ -185,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/dotnet/how-to/create.mdx b/apps/docs/content/dotnet/how-to/create.mdx index 5507f634..9d6dcc2c 100644 --- a/apps/docs/content/dotnet/how-to/create.mdx +++ b/apps/docs/content/dotnet/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a .NET runtime service with extensive build support. .NET runtime is highly scalable and customisable to suit both development and production. @@ -81,32 +82,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
+ .NET service always starts with the minimal resources. diff --git a/apps/docs/content/dotnet/how-to/scaling.mdx b/apps/docs/content/dotnet/how-to/scaling.mdx index c9374dfb..cf7bb3f1 100644 --- a/apps/docs/content/dotnet/how-to/scaling.mdx +++ b/apps/docs/content/dotnet/how-to/scaling.mdx @@ -4,7 +4,7 @@ description: Get to know how Zerops scales your dotnet service. --- import Image from '/src/components/Image'; - +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -68,32 +68,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
+ .NET service always starts with the minimal resources. @@ -208,7 +183,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/elixir/how-to/create.mdx b/apps/docs/content/elixir/how-to/create.mdx index 810a3b2e..70223f4f 100644 --- a/apps/docs/content/elixir/how-to/create.mdx +++ b/apps/docs/content/elixir/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a powerful Elixir runtime service with extensive build support. The Elixir runtime is highly scalable and customizable to suit your development and production needs. With just a few clicks or commands, you can have a production-ready Elixir environment up and running in no time. @@ -81,11 +82,7 @@ You can choose the CPU mode when starting a new service or change it later. The Vertical auto scaling has the following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Elixir services always start with the minimal resources. diff --git a/apps/docs/content/elixir/how-to/scaling.mdx b/apps/docs/content/elixir/how-to/scaling.mdx index 369a12a4..0087c20f 100644 --- a/apps/docs/content/elixir/how-to/scaling.mdx +++ b/apps/docs/content/elixir/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your Elixir service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,11 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Elixir service always starts with the minimal resources. @@ -185,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/frameworks/laravel.mdx b/apps/docs/content/frameworks/laravel.mdx index f07f123d..dd446290 100644 --- a/apps/docs/content/frameworks/laravel.mdx +++ b/apps/docs/content/frameworks/laravel.mdx @@ -14,7 +14,7 @@ import IconTwill from '@theme/Icon/Twill'; Zerops implements what we call "transparent infrastructure" - you get enterprise-grade capabilities with development-friendly ergonomics. This means: - **Full system access** across all environments -- **Granular resource control** starting at 0.25GB RAM +- **Granular resource control** starting at 0.125GB RAM - **True environment parity** from local to production - **Zero-downtime deployments** by default diff --git a/apps/docs/content/gleam/how-to/create.mdx b/apps/docs/content/gleam/how-to/create.mdx index 8cca87d4..aeb4a4d4 100644 --- a/apps/docs/content/gleam/how-to/create.mdx +++ b/apps/docs/content/gleam/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a powerful Gleam runtime service with extensive build support. The Gleam runtime is highly scalable and customizable to suit your development and production needs. With just a few clicks or commands, you can have a production-ready Gleam environment up and running in no time. @@ -82,11 +83,7 @@ You can choose the CPU mode when starting a new service or change it later. The Vertical auto scaling has the following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Gleam services always start with the minimal resources. diff --git a/apps/docs/content/gleam/how-to/scaling.mdx b/apps/docs/content/gleam/how-to/scaling.mdx index f2a369b5..c4e197f4 100644 --- a/apps/docs/content/gleam/how-to/scaling.mdx +++ b/apps/docs/content/gleam/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your Gleam service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,11 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + Gleam service always starts with the minimal resources. @@ -185,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/go/how-to/create.mdx b/apps/docs/content/go/how-to/create.mdx index e28a1956..25bd55e7 100644 --- a/apps/docs/content/go/how-to/create.mdx +++ b/apps/docs/content/go/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a Go runtime service with extensive build support. Go runtime is highly scalable and customisable to suit both development and production. @@ -81,32 +82,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
+ Go service always starts with the minimal resources. diff --git a/apps/docs/content/go/how-to/scaling.mdx b/apps/docs/content/go/how-to/scaling.mdx index e614ef80..ebcb9401 100644 --- a/apps/docs/content/go/how-to/scaling.mdx +++ b/apps/docs/content/go/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your go service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,33 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Go service always starts with the minimal resources. @@ -207,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/homepage.mdx b/apps/docs/content/homepage.mdx index af64c8d0..5ab99bc3 100644 --- a/apps/docs/content/homepage.mdx +++ b/apps/docs/content/homepage.mdx @@ -164,7 +164,7 @@ You get a fully managed, professional infrastructure setup that will scale no ma ### ➡️ Granular resource configuration, autoscaling and high availability of services -Zerops has fully automatic horizontal and vertical scaling with configuration steps as small as 0.25 MB RAM and 1 CPU core. Your runtime services can go from a single container with 0.25 RAM and 1 CPU core to 10 containers each with 32 GB RAM and 10 CPU cores and then back in a matter of minutes. At the same time, all database and storage services are offered in well-crafted setups that go through performance optimizations while scaling and are available in both non-HA (single container) and high availability (multiple containers and balancers) modes. +Zerops has fully automatic horizontal and vertical scaling with configuration steps as small as 0.125 GB RAM and 1 CPU core. Your runtime services can go from a single container with 0.25 RAM and 1 CPU core to 10 containers each with 32 GB RAM and 10 CPU cores and then back in a matter of minutes. At the same time, all database and storage services are offered in well-crafted setups that go through performance optimizations while scaling and are available in both non-HA (single container) and high availability (multiple containers and balancers) modes. :::tip[**What does this mean for you?**] diff --git a/apps/docs/content/java/how-to/create.mdx b/apps/docs/content/java/how-to/create.mdx index c31928ad..283d7e9e 100644 --- a/apps/docs/content/java/how-to/create.mdx +++ b/apps/docs/content/java/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a Java runtime service with extensive build support. Java runtime is highly scalable and customisable to suit both development and production. @@ -81,33 +82,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Java service always starts with the minimal resources. diff --git a/apps/docs/content/java/how-to/scaling.mdx b/apps/docs/content/java/how-to/scaling.mdx index c46ce620..20393fd3 100644 --- a/apps/docs/content/java/how-to/scaling.mdx +++ b/apps/docs/content/java/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your java service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,33 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Java service always starts with the minimal resources. @@ -207,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/keydb/how-to/create.mdx b/apps/docs/content/keydb/how-to/create.mdx index 3450046c..5fd57eb9 100644 --- a/apps/docs/content/keydb/how-to/create.mdx +++ b/apps/docs/content/keydb/how-to/create.mdx @@ -5,6 +5,7 @@ description: Learn how you can create a keydb service in Zerops. import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; +import ResourceTable from '/src/components/ResourceTable'; [KeyDB ↗](https://docs.keydb.dev/) is a fully open source database, backed by Snap, and a faster drop in alternative to Redis. @@ -101,33 +102,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + For most cases, the default parameters will work without issues. If you need to limit the cost of the KeyDB service, lower the maximal resources. Zerops will never scale above the selected maximums. diff --git a/apps/docs/content/keydb/how-to/scale.mdx b/apps/docs/content/keydb/how-to/scale.mdx index db07359b..843e15ab 100644 --- a/apps/docs/content/keydb/how-to/scale.mdx +++ b/apps/docs/content/keydb/how-to/scale.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your keydb service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your database based on its usage. If the current use of your database does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your database is under heavy load or needs to store more data, then auto scaling increases the resources for the database to make sure it runs smoothly. @@ -38,33 +39,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + For most cases, the default parameters will work without issues. If you need to limit the cost of the KeyDB service, lower the maximal resources. Zerops will never scale above the selected maximums. @@ -128,7 +103,7 @@ Zerops monitors CPU, RAM and Disk usage in all running containers each 10 second The **scale up threshold** is derived from following **minimum free resources**: - 0.1 CPU core -- 0.25 GB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) +- 62.5 MB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) - 0.5 GB disk If the minimum free CPU, RAM or disk usage of a container is lower than the defined scale up threshold, Zerops scales the container up. @@ -138,7 +113,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the database is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/mariadb/how-to/create.mdx b/apps/docs/content/mariadb/how-to/create.mdx index 5f1bdd97..8921bf94 100644 --- a/apps/docs/content/mariadb/how-to/create.mdx +++ b/apps/docs/content/mariadb/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import Video from '@site/src/components/Video'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; +import ResourceTable from '/src/components/ResourceTable'; MariaDB is the open source relational database loved by developers all over the world. Created by MySQL’s original developers, MariaDB is compatible with MySQL and guaranteed to stay open source forever. @@ -109,6 +110,12 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: + + diff --git a/apps/docs/content/mariadb/how-to/scale.mdx b/apps/docs/content/mariadb/how-to/scale.mdx index aa305403..38d962bc 100644 --- a/apps/docs/content/mariadb/how-to/scale.mdx +++ b/apps/docs/content/mariadb/how-to/scale.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your mariadb service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your database based on its usage. If the current use of your database does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your database is under heavy load or needs to store more data, then auto scaling increases the resources for the database to make sure it runs smoothly. @@ -38,11 +39,11 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.5 GB | 32 GB | -| **Disk** | 1 GB | 100 GB | + For most cases, the default parameters will work without issues. If you need to limit the cost of the MariaDB service, lower the maximal resources. Zerops will never scale above the selected maximums. @@ -106,7 +107,7 @@ Zerops monitors CPU, RAM and Disk usage in all running containers each 10 second The **scale up threshold** is derived from following **minimum free resources**: - 0.1 CPU core -- 0.25 GB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) +- 0.125 GB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) - 0.5 GB disk If the minimum free CPU, RAM or disk usage of a container is lower than the defined scale up threshold, Zerops scales the container up. @@ -116,7 +117,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the database is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/nginx/how-to/create.mdx b/apps/docs/content/nginx/how-to/create.mdx index fcd27efe..bc9a04ca 100644 --- a/apps/docs/content/nginx/how-to/create.mdx +++ b/apps/docs/content/nginx/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; The Nginx static service contains the Nginx web server optimized for your static content. Nginx static service is highly scalable and customisable to suit both development and production. @@ -81,33 +82,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: -
- - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Nginx static service always starts with the minimal resources. diff --git a/apps/docs/content/nginx/how-to/scaling.mdx b/apps/docs/content/nginx/how-to/scaling.mdx index ef431f77..34c81c58 100644 --- a/apps/docs/content/nginx/how-to/scaling.mdx +++ b/apps/docs/content/nginx/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your nginx service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,33 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Nginx static service always starts with the minimal resources. @@ -197,7 +172,7 @@ Zerops monitors CPU, RAM and Disk usage in all running containers each 10 second The **scale up threshold** is derived from following **minimum free resources**: - 0.1 CPU core -- 0.125 GB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) +- 62.5 MB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) - 0.5 GB disk If the minimum free CPU, RAM or disk usage of a container is lower than the defined scale up threshold, Zerops scales the container up. @@ -207,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/nodejs/how-to/create.mdx b/apps/docs/content/nodejs/how-to/create.mdx index f5124b95..13c2e1e4 100644 --- a/apps/docs/content/nodejs/how-to/create.mdx +++ b/apps/docs/content/nodejs/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a powerful Node.js runtime service with extensive build support. The Node.js runtime is highly scalable and customizable to suit your development and production needs. With just a few clicks or commands, you can have a production-ready Node.js environment up and running in no time. @@ -81,32 +82,7 @@ You can choose the CPU mode when starting a new service or change it later. The Vertical auto scaling has the following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
+ Node.js services always start with the minimal resources. diff --git a/apps/docs/content/nodejs/how-to/scaling.mdx b/apps/docs/content/nodejs/how-to/scaling.mdx index 9cb57429..6b4278af 100644 --- a/apps/docs/content/nodejs/how-to/scaling.mdx +++ b/apps/docs/content/nodejs/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your node.js service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,33 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Node.js service always starts with the minimal resources. @@ -207,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/php/how-to/create.mdx b/apps/docs/content/php/how-to/create.mdx index 7fc7143b..7ccffc14 100644 --- a/apps/docs/content/php/how-to/create.mdx +++ b/apps/docs/content/php/how-to/create.mdx @@ -6,6 +6,7 @@ description: Learn how you can create a php service in Zerops. import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides 2 PHP services with an included web server: **PHP+Nginx** and **PHP+Apache**. PHP runtime is highly scalable and customisable to suit both development and production. @@ -77,33 +78,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + PHP service always starts with the minimal resources. diff --git a/apps/docs/content/php/how-to/scaling.mdx b/apps/docs/content/php/how-to/scaling.mdx index 965dbb1a..ab6c55f0 100644 --- a/apps/docs/content/php/how-to/scaling.mdx +++ b/apps/docs/content/php/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your php service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,33 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + PHP service always starts with the minimal resources. @@ -207,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/postgresql/how-to/create.mdx b/apps/docs/content/postgresql/how-to/create.mdx index 595c6725..73497a11 100644 --- a/apps/docs/content/postgresql/how-to/create.mdx +++ b/apps/docs/content/postgresql/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; ## Create PostgreSQL using Zerops GUI @@ -106,11 +107,11 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto-scaling has the following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 8 GB | -| **Disk** | 1 GB | 2.5 GB | + For most cases, the default parameters will work without issues. If you need to limit the cost of the PostgreSQL service, lower the maximal resources. Zerops will never scale above the selected maximums. diff --git a/apps/docs/content/postgresql/how-to/scale.mdx b/apps/docs/content/postgresql/how-to/scale.mdx index 53d3325e..c8bcd9a8 100644 --- a/apps/docs/content/postgresql/how-to/scale.mdx +++ b/apps/docs/content/postgresql/how-to/scale.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your postgresql service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your database based on its usage. If the current use of your database does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your database is under heavy load or needs to store more data, then auto scaling increases the resources for the database to make sure it runs smoothly. @@ -38,11 +39,11 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: -|   | Minimum resource | Maximum resource | -| ------------- | ---------------- | ---------------- | -| **CPU cores** | 1 | 5 | -| **RAM** | 0.25 GB | 8 GB | -| **Disk** | 1 GB | 2.5 GB | + For most cases, the default parameters will work without issues. If you need to limit the cost of the PostgreSQL service, lower the maximal resources. Zerops will never scale above the selected maximums. @@ -106,7 +107,7 @@ Zerops monitors CPU, RAM and Disk usage in all running containers each 10 second The **scale up threshold** is derived from following **minimum free resources**: - 0.1 CPU core -- 0.25 GB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) +- 0.125 GB RAM (You can [fine tune](#fine-tune-the-auto-scaling) this setting) - 0.5 GB disk If the minimum free CPU, RAM or disk usage of a container is lower than the defined scale up threshold, Zerops scales the container up. @@ -116,7 +117,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the database is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/python/how-to/create.mdx b/apps/docs/content/python/how-to/create.mdx index a0ce080a..c5840aa0 100644 --- a/apps/docs/content/python/how-to/create.mdx +++ b/apps/docs/content/python/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a Python runtime service with extensive build support. Python runtime is highly scalable and customisable to suit both development and production. @@ -81,32 +82,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk5 GB100 GB
+ Python service always starts with the minimal resources. diff --git a/apps/docs/content/python/how-to/scaling.mdx b/apps/docs/content/python/how-to/scaling.mdx index 49def995..9b7a9dcc 100644 --- a/apps/docs/content/python/how-to/scaling.mdx +++ b/apps/docs/content/python/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your python service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,33 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Python service always starts with the minimal resources. @@ -207,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/content/rust/how-to/create.mdx b/apps/docs/content/rust/how-to/create.mdx index ee1887d8..7f93c9ec 100644 --- a/apps/docs/content/rust/how-to/create.mdx +++ b/apps/docs/content/rust/how-to/create.mdx @@ -7,6 +7,7 @@ import Image from '/src/components/Image'; import data from '@site/static/data.json'; import UnorderedList from '@site/src/components/UnorderedList'; import Video from '@site/src/components/Video'; +import ResourceTable from '/src/components/ResourceTable'; Zerops provides a Rust runtime service with extensive build support. Rust runtime is highly scalable and customisable to suit both development and production. @@ -81,33 +82,7 @@ Choose the CPU mode when starting a new service or change it later. The CPU mode Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Rust service always starts with the minimal resources. diff --git a/apps/docs/content/rust/how-to/scaling.mdx b/apps/docs/content/rust/how-to/scaling.mdx index 7ca92820..3b528d48 100644 --- a/apps/docs/content/rust/how-to/scaling.mdx +++ b/apps/docs/content/rust/how-to/scaling.mdx @@ -4,6 +4,7 @@ description: Get to know how Zerops scales your rust service. --- import Image from '/src/components/Image'; +import ResourceTable from '/src/components/ResourceTable'; Zerops performs an automated scaling of hardware resources required to run your runtime application based on its usage. If the current use of your application does not require as much performance or disk space the auto scaling reduces the resources and thus reduces the costs. If your application is under heavy load or needs to store more data, then auto scaling increases the resources to make sure it runs smoothly. @@ -66,33 +67,7 @@ The CPU mode doesn't change automatically. Vertical auto scaling has following default configuration: - - - - - - - - - - - - - - - - - - - - - - - - - -
Resources TypeMinimum resourceMaximum resource
CPU cores15
RAM0.25 GB32 GB
Disk1 GB100 GB
- + Rust service always starts with the minimal resources. @@ -207,7 +182,7 @@ The scale up of RAM or disk is immediate. The scale up of CPU is configured to b The **minimum step** for the vertical scaling is - 1 CPU core -- 0.25 GB RAM +- 0.125 GB RAM - 0.5 GB disk When the application is under a heavy load and needs to scale up faster, the scaling step will increase automatically. diff --git a/apps/docs/src/components/ResourceTable/index.tsx b/apps/docs/src/components/ResourceTable/index.tsx new file mode 100644 index 00000000..ff5e82b2 --- /dev/null +++ b/apps/docs/src/components/ResourceTable/index.tsx @@ -0,0 +1,51 @@ +import React from 'react'; + +const DEFAULT_RESOURCES = { + cpu: { + name: 'CPU cores', + min: '1', + max: '5' + }, + ram: { + name: 'RAM', + min: '0.125 GB', + max: '32 GB' + }, + disk: { + name: 'Disk', + min: '1 GB', + max: '100 GB' + } +}; + +const ResourceTable = ({ resources = {} }) => { + // Merge provided resources with defaults + const finalResources = { + cpu: { ...DEFAULT_RESOURCES.cpu, ...resources.cpu }, + ram: { ...DEFAULT_RESOURCES.ram, ...resources.ram }, + disk: { ...DEFAULT_RESOURCES.disk, ...resources.disk } + }; + + return ( + + + + + + + + + + {Object.values(finalResources).map((resource, index) => ( + + + + + + ))} + +
 MinimumMaximum
{resource.name}{resource.min}{resource.max}
+ ); +}; + +export default ResourceTable; \ No newline at end of file From a7b9ae034106aee2af73b5090c63bf99dbd7eea6 Mon Sep 17 00:00:00 2001 From: vankovap Date: Sat, 22 Feb 2025 18:45:17 +0100 Subject: [PATCH 14/59] egress pricing update (#201) --- apps/docs/content/features/pricing.mdx | 2 +- apps/docs/src/components/PricingCalculator/index.tsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/docs/content/features/pricing.mdx b/apps/docs/content/features/pricing.mdx index 8bc8f90f..40e9a9b5 100644 --- a/apps/docs/content/features/pricing.mdx +++ b/apps/docs/content/features/pricing.mdx @@ -125,7 +125,7 @@ The following costs apply when you exceed the plan limits of a project: Egress Traffic - $0.10 per 1 GB + $0.02 per 1 GB diff --git a/apps/docs/src/components/PricingCalculator/index.tsx b/apps/docs/src/components/PricingCalculator/index.tsx index cdef267b..6d57bec7 100644 --- a/apps/docs/src/components/PricingCalculator/index.tsx +++ b/apps/docs/src/components/PricingCalculator/index.tsx @@ -100,7 +100,7 @@ function PricingCalculatorContent() { ipv4_addr: 3, backup: 0.1, buildTime: 0.033, - egress: 0.1, + egress: 0.02, core: resources.core === 'lightweight' ? 0.0 : 10.0, }; @@ -386,7 +386,7 @@ function PricingCalculatorContent() { if (resources.egress > 0) { addText('Egress Traffic:', margin, y, { color: colors.gray }); - addText(`${resources.egress}GB ($0.10 per 1GB)`, pageWidth - margin - 80, y, { align: 'right', color: colors.darkText }); + addText(`${resources.egress}GB ($0.02 per 1GB)`, pageWidth - margin - 80, y, { align: 'right', color: colors.darkText }); y += lineHeight; } y += sectionSpacing - lineHeight; @@ -763,7 +763,7 @@ function PricingCalculatorContent() {
Egress Traffic (GB) - $0.10 per 1GB + $0.02 per 1GB
- +
Nodes
- - handleServiceInputChange(service.id, 'nodes', e.target.value)} min={1} step={1} /> -
-
- - handleServiceInputChange(service.id, 'cpu', e.target.value)} min={1} step={1} /> -
- - handleServiceInputChange(service.id, 'ram', e.target.value)} - min={0.25} - step={0.25} + min={0.125} + step={0.125} /> -
- - handleServiceInputChange(service.id, 'disk', e.target.value)} min={1} step={0.5} /> -
))} - + ))} +
+
+ + {activeTabData.code} + +
+
+ ); +}; + +export default TabbedCodeBlocks; \ No newline at end of file diff --git a/apps/docs/src/components/TabbedCodeBlock/styles.module.css b/apps/docs/src/components/TabbedCodeBlock/styles.module.css new file mode 100644 index 00000000..2b40ccc4 --- /dev/null +++ b/apps/docs/src/components/TabbedCodeBlock/styles.module.css @@ -0,0 +1,69 @@ +/* styles.module.css */ +.tabbedCodeContainer { + border-radius: 8px; +} + +.tabsHeader { + display: flex; + background-color: var(--ifm-color-emphasis-200); + border-top-left-radius: 8px; + border-top-right-radius: 8px; + overflow-x: auto; + scrollbar-width: thin; +} + +.tabButton { + padding: 0.75rem 1.25rem; + font-size: 0.9rem; + font-weight: 500; + font-family: 'Inter', sans-serif; + background: none; + border: none; + cursor: pointer; + transition: background-color 0.2s, color 0.2s; + color: var(--ifm-color-emphasis-700); + white-space: nowrap; +} + +.tabButton:hover { + background-color: var(--ifm-color-emphasis-300); + color: var(--ifm-color-emphasis-900); +} + +.activeTab { + color: var(--ifm-color-primary); + background-color: var(--ifm-color-emphasis-100); + border-bottom: 2px solid var(--ifm-color-primary); +} + +.codeBlockWrapper { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.loadingMessage, .errorMessage { + padding: 1.5rem; + background-color: var(--ifm-pre-background); + color: var(--ifm-color-emphasis-800); +} + +.errorMessage { + color: var(--ifm-color-danger); +} + +.codeHeader { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; +} + +.githubLink { + font-size: 0.8rem; + color: var(--ifm-color-primary); + text-decoration: none; +} + +.githubLink:hover { + text-decoration: underline; +} \ No newline at end of file From 5757c505251eb45a77b8f8935c999d903c38bfc8 Mon Sep 17 00:00:00 2001 From: vankovap Date: Mon, 3 Mar 2025 10:56:33 +0100 Subject: [PATCH 19/59] code block + typesense persistence (#206) --- apps/docs/content/postgresql/how-to/manage.mdx | 2 -- apps/docs/content/typesense/overview.mdx | 8 ++++++++ apps/docs/src/components/TabbedCodeBlock/index.tsx | 5 ++++- .../src/components/TabbedCodeBlock/styles.module.css | 11 ++++++----- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/apps/docs/content/postgresql/how-to/manage.mdx b/apps/docs/content/postgresql/how-to/manage.mdx index 3ea9201d..5cd02a4c 100644 --- a/apps/docs/content/postgresql/how-to/manage.mdx +++ b/apps/docs/content/postgresql/how-to/manage.mdx @@ -51,7 +51,6 @@ You can install these tools with a simple one-click import in Zerops: { label: 'AdminerEvo', language: 'yaml', - title: 'Import AdminerEvo to Zerops', code: `services: - hostname: adminerevo type: php-apache@8.3 @@ -61,7 +60,6 @@ You can install these tools with a simple one-click import in Zerops: { label: 'phpMyAdmin', language: 'yaml', - title: 'Import phpMyAdmin to Zerops', code: `services: - hostname: phpmyadmin type: php-apache@8.1+2.4 diff --git a/apps/docs/content/typesense/overview.mdx b/apps/docs/content/typesense/overview.mdx index dda104a4..ea0d9cc7 100644 --- a/apps/docs/content/typesense/overview.mdx +++ b/apps/docs/content/typesense/overview.mdx @@ -28,6 +28,14 @@ num-collections-parallel-load: 8 These defaults are optimized for most common use cases and managed by the platform. If you need to adjust these settings, please contact us through our [support channels](#support). +### Data Persistence + +Typesense data is automatically persisted to disk at `/var/lib/typesense`. + +This ensures that data remains intact during service restarts (Typesense automatically reloads the persisted data into memory upon startup). + +This persistence mechanism works in both HA and non-HA deployment modes, though with different reliability guarantees as detailed below. + ### Deployment Modes :::warning diff --git a/apps/docs/src/components/TabbedCodeBlock/index.tsx b/apps/docs/src/components/TabbedCodeBlock/index.tsx index 8d33390a..d05163f3 100644 --- a/apps/docs/src/components/TabbedCodeBlock/index.tsx +++ b/apps/docs/src/components/TabbedCodeBlock/index.tsx @@ -19,6 +19,9 @@ const TabbedCodeBlocks = ({ tabs, defaultTab }) => { // Find the currently active tab object const activeTabData = tabs.find(tab => tab.label === activeTab) || tabs[0]; + // Determine title - only use title if it's non-empty + const codeTitle = activeTabData.title ? activeTabData.title : null; + return (
@@ -35,7 +38,7 @@ const TabbedCodeBlocks = ({ tabs, defaultTab }) => {
{activeTabData.code} diff --git a/apps/docs/src/components/TabbedCodeBlock/styles.module.css b/apps/docs/src/components/TabbedCodeBlock/styles.module.css index 2b40ccc4..5a83b962 100644 --- a/apps/docs/src/components/TabbedCodeBlock/styles.module.css +++ b/apps/docs/src/components/TabbedCodeBlock/styles.module.css @@ -51,11 +51,12 @@ color: var(--ifm-color-danger); } -.codeHeader { - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; +.tabbedCodeContainer :global(.code-header) { + @apply rounded-tl-none rounded-tr-none border-b-0; +} + +.tabbedCodeContainer :global(.language-yaml) { + @apply rounded-tl-none rounded-tr-none border-b-0; } .githubLink { From 58c34dd027996d07e65d5a38e9d244ed4cb72df2 Mon Sep 17 00:00:00 2001 From: vankovap Date: Tue, 4 Mar 2025 14:09:17 +0100 Subject: [PATCH 20/59] code block + postgresql links (#207) --- .../postgresql/how-to/export-import-data.mdx | 23 ++++-------- apps/docs/content/postgresql/overview.mdx | 4 +- .../TabbedCodeBlock/styles.module.css | 37 ++++++++++++++++--- 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/apps/docs/content/postgresql/how-to/export-import-data.mdx b/apps/docs/content/postgresql/how-to/export-import-data.mdx index 6986f27f..f8ddd71f 100644 --- a/apps/docs/content/postgresql/how-to/export-import-data.mdx +++ b/apps/docs/content/postgresql/how-to/export-import-data.mdx @@ -3,25 +3,18 @@ title: Export or import PostgreSQL data description: Learn how to export or import postgresql data on Zerops. --- -## Use Adminer to export or import data +## Use Adminer or phpMyAdmin to export or import data +* [Adminer ↗](https://www.adminer.org) - an open source full-featured database management tool written in PHP +* [phpMyAdmin ↗](https://www.phpmyadmin.net) - a free software tool written in PHP, intended to handle the administration of PostgreSQL over the Web -[Adminer ↗](https://www.adminer.org) is an open source full-featured database management tool written in PHP. - -1. [Install Adminer to Zerops](/postgresql/how-to/manage#how-to-install-adminer-to-zerops) -2. Use Adminer standard export or import functions - -## Use phpMyAdmin to export or import data - -[phpMyAdmin ↗](https://www.phpmyadmin.net) is a free software tool written in PHP, intended to handle the administration of PostgreSQL over the Web. - -1. [Install phpMyAdmin to Zerops](/postgresql/how-to/manage#how-to-install-phpmyadmin-to-zerops) -2. Use phpMyAdmin standard export or import functions +1. [Install the tools to Zerops](/postgresql/how-to/manage#installing-management-tools) +2. Use their standard export or import functions ## Use a database management tool on your workstation to export or import data Do you already use a database management tool that supports PostgreSQL on your workstation? Connect it securely to PostgreSQL from your local workspace via Zerops VPN. -Zerops VPN client is included into zCLI, the Zerops command-line tool. To start the VPN connection, read [how to connect to PostgreSQL remotely](/postgresql/how-to/connect#connect-to-postgresql-in-zerops-remotely). +Zerops VPN client is included into zCLI, the Zerops command-line tool. To start the VPN connection, read [how to connect to PostgreSQL remotely](/postgresql/how-to/connect#connect-remotely). :::caution Do not use SSL/TLS protocols when connecting to PostgreSQL over VPN. Zerops PostgreSQL is not configured to support these protocols. The security is assured by the VPN. ::: @@ -32,9 +25,9 @@ Once the connection to PostgreSQL is established, use the standard export or imp If you are using the [psql ↗](https://www.postgresql.org/docs/current/app-psql.html) command-line client to manage your PostgreSQL on your local workspace, you can connect it securely to PostgreSQL via Zerops VPN. -Zerops VPN client is included into zCLI, the Zerops command-line tool. To start the VPN connection, read [how to connect to PostgreSQL remotely](/postgresql/how-to/connect#connect-to-postgresql-in-zerops-remotely). +Zerops VPN client is included into zCLI, the Zerops command-line tool. To start the VPN connection, read [how to connect to PostgreSQL remotely](/postgresql/how-to/connect#connect-remotely). -Once the VPN session is established, you have the secured connection to the project's private network in Zerops. You can access all project services locally by using their hostname. The only difference is that no [environment variables](/postgresql/how-to/connect#use-postgresql-environment-variables) are available when connected through VPN. To connect to PostgreSQL in Zerops you have to copy the [access details](/postgresql/how-to/connect#connect-to-postgresql-in-zerops-remotely) manually from Zerops GUI. +Once the VPN session is established, you have the secured connection to the project's private network in Zerops. You can access all project services locally by using their hostname. The only difference is that no [environment variables](/postgresql/how-to/connect#method-2-environment-variables-recommended) are available when connected through VPN. To connect to PostgreSQL in Zerops you have to copy the [access details](/postgresql/how-to/connect#connection-details) manually from Zerops GUI. Use [psql ↗](https://www.postgresql.org/docs/current/app-psql.html) command to connect to PostgreSQL in Zerops: diff --git a/apps/docs/content/postgresql/overview.mdx b/apps/docs/content/postgresql/overview.mdx index 8fd11b5d..a0e21daf 100644 --- a/apps/docs/content/postgresql/overview.mdx +++ b/apps/docs/content/postgresql/overview.mdx @@ -61,7 +61,7 @@ import LargeCard from '@site/src/components/LargeCard'; }, { type: 'link', - href: '/postgresql/how-to/connect#connect-to-postgresql-from-runtime-services-of-the-same-project', + href: '/postgresql/how-to/connect#connect-from-services-in-the-same-project', label: 'Connect from the same project', customProps: { icon: Icons['link'], @@ -69,7 +69,7 @@ import LargeCard from '@site/src/components/LargeCard'; }, { type: 'link', - href: '/postgresql/how-to/connect#connect-to-postgresql-in-zerops-remotely', + href: '/postgresql/how-to/connect#connect-remotely', label: 'Connect remotely', customProps: { icon: Icons['globe-europe'], diff --git a/apps/docs/src/components/TabbedCodeBlock/styles.module.css b/apps/docs/src/components/TabbedCodeBlock/styles.module.css index 5a83b962..85c69de6 100644 --- a/apps/docs/src/components/TabbedCodeBlock/styles.module.css +++ b/apps/docs/src/components/TabbedCodeBlock/styles.module.css @@ -1,10 +1,28 @@ /* styles.module.css */ +:root { + --tab-button-bg: var(--ifm-color-emphasis-200); + --tab-button-hover-bg: var(--ifm-color-emphasis-300); + --tab-button-active-bg: var(--ifm-color-emphasis-100); + --tab-button-color: var(--ifm-color-emphasis-900); + --tab-button-hover-color: var(--ifm-color-emphasis-900); + --tab-button-active-color: var(--ifm-color-primary); +} + +[data-theme='dark'] { + --tab-button-bg: var(--ifm-color-emphasis-100); + --tab-button-hover-bg: var(--docs-bg-subtle-pressed); + --tab-button-active-bg: var(--ifm-color-emphasis-200); + --tab-button-color: var(--ifm-color-emphasis-900); + --tab-button-hover-color: var(--ifm-color-emphasis-900); + --tab-button-active-color: var(--ifm-color-primary); +} + .tabbedCodeContainer { border-radius: 8px; } .tabsHeader { - display: flex; + display: inline-flex; background-color: var(--ifm-color-emphasis-200); border-top-left-radius: 8px; border-top-right-radius: 8px; @@ -21,18 +39,25 @@ border: none; cursor: pointer; transition: background-color 0.2s, color 0.2s; - color: var(--ifm-color-emphasis-700); + color: var(--tab-button-color); + background-color: var(--tab-button-bg); white-space: nowrap; } .tabButton:hover { - background-color: var(--ifm-color-emphasis-300); - color: var(--ifm-color-emphasis-900); + background-color: var(--tab-button-hover-bg); + color: var(--tab-button-hover-color); } .activeTab { - color: var(--ifm-color-primary); - background-color: var(--ifm-color-emphasis-100); + color: var(--tab-button-active-color); + background-color: var(--tab-button-active-bg); + border-bottom: 2px solid var(--ifm-color-primary); +} + +.activeTab:hover { + color: var(--tab-button-active-color); + background-color: var(--tab-button-active-bg); border-bottom: 2px solid var(--ifm-color-primary); } From 4067ab51627292d1a3d7699432d7b1ff63f9f5a9 Mon Sep 17 00:00:00 2001 From: vankovap Date: Thu, 6 Mar 2025 17:26:49 +0100 Subject: [PATCH 21/59] core package (#209) --- apps/docs/content/references/import.mdx | 144 +++++++++++------------- 1 file changed, 65 insertions(+), 79 deletions(-) diff --git a/apps/docs/content/references/import.mdx b/apps/docs/content/references/import.mdx index 7ffad003..0bcefed5 100644 --- a/apps/docs/content/references/import.mdx +++ b/apps/docs/content/references/import.mdx @@ -29,6 +29,8 @@ project: name: project0 # Project description description: "This project is an example only" + # Project core package - LIGHT/SERIOUS + corePackage: SERIOUS # List of project tags for filtering tags: - test @@ -121,8 +123,8 @@ services: -:::warning -This is a general guideline; not all keys are valid for every service type. For technology-specific details, refer to the **Create service** page in the **How To** section of the Zerops documentation. +:::note +The example above is a general guideline; not all keys are valid for every service type. For technology-specific details, refer to the **Create service** page in the **How To** section of the Zerops documentation. ::: --- @@ -137,9 +139,6 @@ The project configuration is used to define the project you want to import. #### Usage - - - @@ -150,38 +149,38 @@ The project configuration is used to define the project you want to import. - + - + - + - + - - - + + + + + + + + - + - +
projectproject object - _REQUIRED, if a whole project is imported_ - Only one project can be defined. - _REQUIRED, if a whole project is imported_
Only one project can be defined.
namename string, REQUIRED - The name of the new project. Duplicates are allowed. - The name of the new project. Duplicates are allowed.
descriptionstring - Description of the new project. - descriptionstringDescription of the new project.
corePackagestringCore package of the new project.
Values: LIGHT/SERIOUS (default LIGHT)
tagstags list of strings - One or more string tags. Tags do not have a functional meaning, they only provide better orientation in projects. - One or more string tags.
Tags do not have a functional meaning, they only provide better orientation in projects.
-
-
+ +:::warning +The `corePackage` value can't be changed later. Make sure to choose a suitable core package for your project. +::: + +This example will create a project named `project0` with [serious core](/features/infrastructure#serious-core) package and the description `This project is an example only`. The project will have two tags: `test` and `dev`: ```yml # ==== Define a project to import ==== @@ -190,16 +189,14 @@ project: name: project0 # Project description description: "This project is an example only" + # Project core package + corePackage: SERIOUS # List of project tags for filtering tags: - test - dev ``` -This will create a project with the name `project0` and the description `This project is an example only`. The project will have two tags: `test` and `dev`. - -The `project` object requires only the `name` parameter - both `description` and `tags` are optional. - ### Service Configuration The service configuration is used to define the services, environment variables, and other settings you want to import into the project(You require at least one service and you need to have a project to import into or define the project in the yaml). @@ -207,7 +204,7 @@ The service configuration is used to define the services, environment variables, #### Usage - + @@ -219,14 +216,12 @@ The service configuration is used to define the services, environment variables, - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
servicesservices list of objects, REQUIRED - At least one service is required. - At least one service is required.
hostnamehostname string, REQUIRED The unique service identifier. @@ -236,36 +231,27 @@ The service configuration is used to define the services, environment variables,
typetype enum, REQUIRED - Specifies the service type and version. See [supported types](/references/importyml/type-list). - Specifies the service type and version. See [supported types](/references/importyml/type-list).
modemode enum - Values: **HA / NON_HA** (default NON_HA) - Defines the operation mode of the service. - Values: HA / NON_HA (default NON_HA)
Defines the operation mode of the service.
envSecretsenvSecrets map[string]string - Environment variables that are blurred by default in Zerops GUI. Can be edited or deleted in Zerops GUI. - Environment variables that are blurred by default in Zerops GUI. Can be edited or deleted in Zerops GUI.
objectStorageSizeobjectStorageSize integer - Object storage size in GB. - Object storage size in GB.
objectStoragePolicyobjectStoragePolicy enum Values: **private / public-read / public-objects-read / public-write / public-read-write / custom** @@ -273,7 +259,7 @@ The service configuration is used to define the services, environment variables,
objectStorageRawPolicyobjectStorageRawPolicy json Define your own AWS S3 bucket access policy. See [AWS docs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html) for details. @@ -281,14 +267,14 @@ The service configuration is used to define the services, environment variables,
buildFromGitbuildFromGit string (URL) A URL of a Github or Gitlab repository used for a one-time build of your service.
enableSubdomainAccessenableSubdomainAccess boolean Default: false @@ -296,7 +282,7 @@ The service configuration is used to define the services, environment variables,
prioritypriority integer Services are sorted before creation by priority in descending order, i.e. the higher the priority the sooner the service is created. @@ -355,7 +341,7 @@ The vertical autoscaling configuration is used to define the vertical autoscalin #### Usage - + @@ -367,78 +353,78 @@ The vertical autoscaling configuration is used to define the vertical autoscalin - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -558,7 +544,7 @@ services: - teststorage1 ``` -The `mount: |-` parameter allows you to mount a shared storage(should be created inside the project) to the service. +The `mount: |-` parameter allows you to mount a shared storage (should be created inside the project) to the service. ### Using Nginx Configuration @@ -577,7 +563,7 @@ The nginx configuration is used to define the nginx settings for the service. - + @@ -628,7 +614,7 @@ This shows you how you can use the `zeropsSetup` parameter as a way to insert a - + From ca3038971f00ae65f124e87123a61987526b37b2 Mon Sep 17 00:00:00 2001 From: vankovap Date: Thu, 6 Mar 2025 17:40:25 +0100 Subject: [PATCH 22/59] categories (#210) --- apps/docs/sidebars.js | 3332 +++++++++++++++++++++-------------------- 1 file changed, 1694 insertions(+), 1638 deletions(-) diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index ac45afc4..679afc0c 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -745,11 +745,10 @@ module.exports = { }, { type: 'category', - label: 'How-to', + label: 'Management', collapsible: false, customProps: { sidebar_is_group_headline: true, - sidebar_icon: 'academic-cap-solid', }, items: [ { @@ -757,6 +756,31 @@ module.exports = { id: 'nodejs/how-to/create', label: 'Create Node.js service', }, + { + type: 'doc', + id: 'nodejs/how-to/upgrade', + label: 'Upgrade Node.js service', + }, + { + type: 'doc', + id: 'nodejs/how-to/delete', + label: 'Delete Node.js service', + }, + { + type: 'doc', + id: 'nodejs/how-to/controls', + label: 'Stop & start Node.js runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'nodejs/how-to/env-variables', @@ -764,9 +788,19 @@ module.exports = { }, { type: 'doc', - id: 'nodejs/how-to/upgrade', - label: 'Upgrade Node.js service', + id: 'nodejs/how-to/customize-runtime', + label: 'Customize NodeJS runtime', }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'nodejs/how-to/build-pipeline', @@ -787,11 +821,16 @@ module.exports = { id: 'nodejs/how-to/deploy-process', label: 'Deploy process', }, - { - type: 'doc', - id: 'nodejs/how-to/customize-runtime', - label: 'Customize NodeJS runtime', - }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'nodejs/how-to/logs', @@ -812,32 +851,13 @@ module.exports = { id: 'nodejs/how-to/scaling', label: 'Scale Node.js runtime service', }, - { - type: 'doc', - id: 'nodejs/how-to/controls', - label: 'Stop & start Node.js runtime service', - }, { type: 'doc', id: 'nodejs/how-to/shared-storage', label: 'Connect / disconnect shared storage', }, - { - type: 'doc', - id: 'nodejs/how-to/delete', - label: 'Delete Node.js service', - }, ], }, - // { - // type: 'doc', - // id: 'nodejs/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, ], php: [ { @@ -860,7 +880,7 @@ module.exports = { }, { type: 'category', - label: 'How-to', + label: 'Management', collapsible: false, customProps: { sidebar_is_group_headline: true, @@ -871,6 +891,31 @@ module.exports = { id: 'php/how-to/create', label: 'Create PHP service', }, + { + type: 'doc', + id: 'php/how-to/upgrade', + label: 'Upgrade PHP service', + }, + { + type: 'doc', + id: 'php/how-to/delete', + label: 'Delete PHP service', + }, + { + type: 'doc', + id: 'php/how-to/controls', + label: 'Stop & start PHP runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'php/how-to/env-variables', @@ -878,9 +923,24 @@ module.exports = { }, { type: 'doc', - id: 'php/how-to/upgrade', - label: 'Upgrade PHP service', + id: 'php/how-to/customize-runtime', + label: 'Customize PHP runtime', + }, + { + type: 'doc', + id: 'php/how-to/customize-web-server', + label: 'Customize web server', }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'php/how-to/build-pipeline', @@ -901,16 +961,16 @@ module.exports = { id: 'php/how-to/deploy-process', label: 'Deploy process', }, - { - type: 'doc', - id: 'php/how-to/customize-runtime', - label: 'Customize PHP runtime', - }, - { - type: 'doc', - id: 'php/how-to/customize-web-server', - label: 'Customize web server', - }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'php/how-to/logs', @@ -931,32 +991,13 @@ module.exports = { id: 'php/how-to/scaling', label: 'Scale PHP runtime service', }, - { - type: 'doc', - id: 'php/how-to/controls', - label: 'Stop & start PHP runtime service', - }, { type: 'doc', id: 'php/how-to/shared-storage', label: 'Connect / disconnect shared storage', }, - { - type: 'doc', - id: 'php/how-to/delete', - label: 'Delete PHP service', - }, ], }, - // { - // type: 'doc', - // id: 'php/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, ], python: [ { @@ -979,7 +1020,7 @@ module.exports = { }, { type: 'category', - label: 'How-to', + label: 'Management', collapsible: false, customProps: { sidebar_is_group_headline: true, @@ -990,6 +1031,31 @@ module.exports = { id: 'python/how-to/create', label: 'Create Python service', }, + { + type: 'doc', + id: 'python/how-to/upgrade', + label: 'Upgrade Python service', + }, + { + type: 'doc', + id: 'python/how-to/delete', + label: 'Delete Python service', + }, + { + type: 'doc', + id: 'python/how-to/controls', + label: 'Stop & start Python runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'python/how-to/env-variables', @@ -997,9 +1063,19 @@ module.exports = { }, { type: 'doc', - id: 'python/how-to/upgrade', - label: 'Upgrade Python service', + id: 'python/how-to/customize-runtime', + label: 'Customize Python runtime', }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'python/how-to/build-pipeline', @@ -1020,11 +1096,16 @@ module.exports = { id: 'python/how-to/deploy-process', label: 'Deploy process', }, - { - type: 'doc', - id: 'python/how-to/customize-runtime', - label: 'Customize Python runtime', - }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', id: 'python/how-to/logs', @@ -1045,1107 +1126,730 @@ module.exports = { id: 'python/how-to/scaling', label: 'Scale Python runtime service', }, - { - type: 'doc', - id: 'python/how-to/controls', - label: 'Stop & start Python runtime service', - }, { type: 'doc', id: 'python/how-to/shared-storage', label: 'Connect / disconnect shared storage', }, - { - type: 'doc', - id: 'python/how-to/delete', - label: 'Delete Python service', - }, ], }, - // { - // type: 'doc', - // id: 'python/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, ], go: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'go/overview', - label: 'Go', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'go', + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, + { + type: 'doc', + id: 'go/overview', + label: 'Go', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'go', + }, }, - items: [ - { - type: 'doc', - id: 'go/how-to/create', - label: 'Create Go service', + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/env-variables', - label: 'Manage environment variables', + items: [ + { + type: 'doc', + id: 'go/how-to/create', + label: 'Create Go service', + }, + { + type: 'doc', + id: 'go/how-to/upgrade', + label: 'Upgrade Go service', + }, + { + type: 'doc', + id: 'go/how-to/delete', + label: 'Delete Go service', + }, + { + type: 'doc', + id: 'go/how-to/controls', + label: 'Stop & start Go runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/upgrade', - label: 'Upgrade Go service', + items: [ + { + type: 'doc', + id: 'go/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'go/how-to/customize-runtime', + label: 'Customize Go runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', + items: [ + { + type: 'doc', + id: 'go/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'go/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'go/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'go/how-to/deploy-process', + label: 'Deploy process', + }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/trigger-pipeline', - label: 'Trigger build pipeline', + items: [ + { + type: 'doc', + id: 'go/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'go/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'go/how-to/access', + label: 'Access Go runtime service', + }, + { + type: 'doc', + id: 'go/how-to/scaling', + label: 'Scale Go runtime service', + }, + { + type: 'doc', + id: 'go/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + ], + rust: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', }, - { - type: 'doc', - id: 'go/how-to/build-process', - label: 'Build process', + }, + { + type: 'doc', + id: 'rust/overview', + label: 'Rust', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'rust', }, - { - type: 'doc', - id: 'go/how-to/deploy-process', - label: 'Deploy process', + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/customize-runtime', - label: 'Customize Go runtime', + items: [ + { + type: 'doc', + id: 'rust/how-to/create', + label: 'Create Rust service', + }, + { + type: 'doc', + id: 'rust/how-to/upgrade', + label: 'Upgrade Rust service', + }, + { + type: 'doc', + id: 'rust/how-to/delete', + label: 'Delete Rust service', + }, + { + type: 'doc', + id: 'rust/how-to/controls', + label: 'Stop & start Rust runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/logs', - label: 'Setup & access logs', + items: [ + { + type: 'doc', + id: 'rust/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'rust/how-to/customize-runtime', + label: 'Customize Rust runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/filebrowser', - label: 'Browse container files', + items: [ + { + type: 'doc', + id: 'rust/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'rust/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'rust/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'rust/how-to/deploy-process', + label: 'Deploy process', + }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/access', - label: 'Access Go runtime service', + items: [ + { + type: 'doc', + id: 'rust/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'rust/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'rust/how-to/access', + label: 'Access Rust runtime service', + }, + { + type: 'doc', + id: 'rust/how-to/scaling', + label: 'Scale Rust runtime service', + }, + { + type: 'doc', + id: 'rust/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + ], + dotnet: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', }, - { - type: 'doc', - id: 'go/how-to/scaling', - label: 'Scale Go runtime service', + }, + { + type: 'doc', + id: 'dotnet/overview', + label: '.NET', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'dotnet', }, - { - type: 'doc', - id: 'go/how-to/controls', - label: 'Stop & start Go runtime service', + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/shared-storage', - label: 'Connect / disconnect shared storage', + items: [ + { + type: 'doc', + id: 'dotnet/how-to/create', + label: 'Create .NET service', + }, + { + type: 'doc', + id: 'dotnet/how-to/upgrade', + label: 'Upgrade .NET service', + }, + { + type: 'doc', + id: 'dotnet/how-to/delete', + label: 'Delete .NET service', + }, + { + type: 'doc', + id: 'dotnet/how-to/controls', + label: 'Stop & start .NET runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'go/how-to/delete', - label: 'Delete Go service', + items: [ + { + type: 'doc', + id: 'dotnet/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'dotnet/how-to/customize-runtime', + label: 'Customize .NET runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - ], - }, - // { - // type: 'doc', - // id: 'go/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, - ], - rust: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', + items: [ + { + type: 'doc', + id: 'dotnet/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'dotnet/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'dotnet/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'dotnet/how-to/deploy-process', + label: 'Deploy process', + }, + ], }, - }, - { - type: 'doc', - id: 'rust/overview', - label: 'Rust', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'rust', + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'dotnet/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'dotnet/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'dotnet/how-to/access', + label: 'Access .NET runtime service', + }, + { + type: 'doc', + id: 'dotnet/how-to/scaling', + label: 'Scale .NET runtime service', + }, + { + type: 'doc', + id: 'dotnet/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, + ], + java: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, }, - items: [ - { - type: 'doc', - id: 'rust/how-to/create', - label: 'Create Rust service', + { + type: 'doc', + id: 'java/overview', + label: 'Java', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'java', }, - { - type: 'doc', - id: 'rust/how-to/env-variables', - label: 'Manage environment variables', + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'rust/how-to/upgrade', - label: 'Upgrade Rust service', + items: [ + { + type: 'doc', + id: 'java/how-to/create', + label: 'Create Java service', + }, + { + type: 'doc', + id: 'java/how-to/upgrade', + label: 'Upgrade Java service', + }, + { + type: 'doc', + id: 'java/how-to/delete', + label: 'Delete Java service', + }, + { + type: 'doc', + id: 'java/how-to/controls', + label: 'Stop & start Java runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'rust/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', + items: [ + { + type: 'doc', + id: 'java/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'java/how-to/customize-runtime', + label: 'Customize Java runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'rust/how-to/trigger-pipeline', - label: 'Trigger build pipeline', + items: [ + { + type: 'doc', + id: 'java/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'java/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'java/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'java/how-to/deploy-process', + label: 'Deploy process', + }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'rust/how-to/build-process', - label: 'Build process', + items: [ + { + type: 'doc', + id: 'java/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'java/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'java/how-to/access', + label: 'Access Java runtime service', + }, + { + type: 'doc', + id: 'java/how-to/scaling', + label: 'Scale Java runtime service', + }, + { + type: 'doc', + id: 'java/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + ], + nginx: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', }, - { - type: 'doc', - id: 'rust/how-to/deploy-process', - label: 'Deploy process', + }, + { + type: 'doc', + id: 'nginx/overview', + label: 'Nginx Static', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'nginx', }, - { + }, + { + type: 'category', + label: 'Dive-in', + collapsible: false, + link: { type: 'doc', - id: 'rust/how-to/customize-runtime', - label: 'Customize Rust runtime', + id: 'nginx/getting-started', }, - { - type: 'doc', - id: 'rust/how-to/logs', - label: 'Setup & access logs', + customProps: { + sidebar_icon: 'rocket-launch', }, - { - type: 'doc', - id: 'rust/how-to/filebrowser', - label: 'Browse container files', + className: 'homepage-sidebar-item', + items: [ + { + type: 'doc', + id: 'nginx/tutorial/quickstart', + label: 'Quickstart', + customProps: { + exclude_from_doc_list: false, + }, + }, + { + type: 'doc', + id: 'nginx/tutorial/step-by-step', + label: 'Step-by-step tutorial', + customProps: { + exclude_from_doc_list: false, + }, + }, + ], + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'rust/how-to/access', - label: 'Access Rust runtime service', + items: [ + { + type: 'doc', + id: 'nginx/how-to/create', + label: 'Create Nginx static service', + }, + { + type: 'doc', + id: 'nginx/how-to/upgrade', + label: 'Upgrade Nginx service', + }, + { + type: 'doc', + id: 'nginx/how-to/delete', + label: 'Delete Nginx static service', + }, + { + type: 'doc', + id: 'nginx/how-to/controls', + label: 'Stop & start Nginx static service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'rust/how-to/scaling', - label: 'Scale Rust runtime service', + items: [ + { + type: 'doc', + id: 'nginx/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'nginx/how-to/customize-runtime', + label: 'Customize Nginx static runtime', + }, + { + type: 'doc', + id: 'nginx/how-to/customize-web-server', + label: 'Customize web server', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'rust/how-to/controls', - label: 'Stop & start Rust runtime service', - }, - { - type: 'doc', - id: 'rust/how-to/shared-storage', - label: 'Connect / disconnect shared storage', - }, - { - type: 'doc', - id: 'rust/how-to/delete', - label: 'Delete Rust service', - }, - ], - }, - // { - // type: 'doc', - // id: 'rust/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, - ], - dotnet: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'dotnet/overview', - label: '.NET', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'dotnet', - }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - }, - items: [ - { - type: 'doc', - id: 'dotnet/how-to/create', - label: 'Create .NET service', - }, - { - type: 'doc', - id: 'dotnet/how-to/env-variables', - label: 'Manage environment variables', - }, - { - type: 'doc', - id: 'dotnet/how-to/upgrade', - label: 'Upgrade .NET service', - }, - { - type: 'doc', - id: 'dotnet/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', - }, - { - type: 'doc', - id: 'dotnet/how-to/trigger-pipeline', - label: 'Trigger build pipeline', - }, - { - type: 'doc', - id: 'dotnet/how-to/build-process', - label: 'Build process', - }, - { - type: 'doc', - id: 'dotnet/how-to/deploy-process', - label: 'Deploy process', - }, - { - type: 'doc', - id: 'dotnet/how-to/customize-runtime', - label: 'Customize .NET runtime', - }, - { - type: 'doc', - id: 'dotnet/how-to/logs', - label: 'Setup & access logs', - }, - { - type: 'doc', - id: 'dotnet/how-to/filebrowser', - label: 'Browse container files', - }, - { - type: 'doc', - id: 'dotnet/how-to/access', - label: 'Access .NET runtime service', - }, - { - type: 'doc', - id: 'dotnet/how-to/scaling', - label: 'Scale .NET runtime service', - }, - { - type: 'doc', - id: 'dotnet/how-to/controls', - label: 'Stop & start .NET runtime service', - }, - { - type: 'doc', - id: 'dotnet/how-to/shared-storage', - label: 'Connect / disconnect shared storage', - }, - { - type: 'doc', - id: 'dotnet/how-to/delete', - label: 'Delete .NET service', - }, - ], - }, - // { - // type: 'doc', - // id: 'dotnet/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, - ], - java: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'java/overview', - label: 'Java', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'java', - }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - }, - items: [ - { - type: 'doc', - id: 'java/how-to/create', - label: 'Create Java service', - }, - { - type: 'doc', - id: 'java/how-to/env-variables', - label: 'Manage environment variables', - }, - { - type: 'doc', - id: 'java/how-to/upgrade', - label: 'Upgrade Java service', - }, - { - type: 'doc', - id: 'java/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', - }, - { - type: 'doc', - id: 'java/how-to/trigger-pipeline', - label: 'Trigger build pipeline', - }, - { - type: 'doc', - id: 'java/how-to/build-process', - label: 'Build process', - }, - { - type: 'doc', - id: 'java/how-to/deploy-process', - label: 'Deploy process', - }, - { - type: 'doc', - id: 'java/how-to/customize-runtime', - label: 'Customize Java runtime', - }, - { - type: 'doc', - id: 'java/how-to/logs', - label: 'Setup & access logs', - }, - { - type: 'doc', - id: 'java/how-to/filebrowser', - label: 'Browse container files', - }, - { - type: 'doc', - id: 'java/how-to/access', - label: 'Access Java runtime service', - }, - { - type: 'doc', - id: 'java/how-to/scaling', - label: 'Scale Java runtime service', - }, - { - type: 'doc', - id: 'java/how-to/controls', - label: 'Stop & start Java runtime service', - }, - { - type: 'doc', - id: 'java/how-to/shared-storage', - label: 'Connect / disconnect shared storage', - }, - { - type: 'doc', - id: 'java/how-to/delete', - label: 'Delete Java service', - }, - ], - }, - // { - // type: 'doc', - // id: 'java/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, - ], - nginx: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'nginx/overview', - label: 'Nginx Static', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'nginx', - }, - }, - { - type: 'category', - label: 'Dive-in', - collapsible: false, - link: { - type: 'doc', - id: 'nginx/getting-started', - }, - customProps: { - sidebar_icon: 'rocket-launch', - }, - className: 'homepage-sidebar-item', - items: [ - { - type: 'doc', - id: 'nginx/tutorial/quickstart', - label: 'Quickstart', - customProps: { - exclude_from_doc_list: false, + items: [ + { + type: 'doc', + id: 'nginx/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', }, - }, - { - type: 'doc', - id: 'nginx/tutorial/step-by-step', - label: 'Step-by-step tutorial', - customProps: { - exclude_from_doc_list: false, + { + type: 'doc', + id: 'nginx/how-to/trigger-pipeline', + label: 'Trigger build pipeline', }, - }, - ], - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, + { + type: 'doc', + id: 'nginx/how-to/deploy-process', + label: 'Deploy process', + }, + ], }, - items: [ - { - type: 'doc', - id: 'nginx/how-to/create', - label: 'Create Nginx static service', - }, - { - type: 'doc', - id: 'nginx/how-to/env-variables', - label: 'Manage environment variables', - }, - { - type: 'doc', - id: 'nginx/how-to/upgrade', - label: 'Upgrade Nginx service', - }, - { - type: 'doc', - id: 'nginx/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'nginx/how-to/trigger-pipeline', - label: 'Trigger build pipeline', - }, - { - type: 'doc', - id: 'nginx/how-to/deploy-process', - label: 'Deploy process', - }, - { - type: 'doc', - id: 'nginx/how-to/customize-runtime', - label: 'Customize Nginx static runtime', - }, - { - type: 'doc', - id: 'nginx/how-to/customize-web-server', - label: 'Customize web server', - }, - { - type: 'doc', - id: 'nginx/how-to/logs', - label: 'Setup & access logs', - }, - { - type: 'doc', - id: 'nginx/how-to/filebrowser', - label: 'Browse container files', - }, - { - type: 'doc', - id: 'nginx/how-to/access', - label: 'Access Nginx runtime service', - }, - { - type: 'doc', - id: 'nginx/how-to/scaling', - label: 'Scale Nginx static service', - }, - { - type: 'doc', - id: 'nginx/how-to/controls', - label: 'Stop & start Nginx static service', - }, - { - type: 'doc', - id: 'nginx/how-to/shared-storage', - label: 'Connect / disconnect shared storage', - }, - { - type: 'doc', - id: 'nginx/how-to/delete', - label: 'Delete Nginx static service', - }, - ], - }, - { - type: 'doc', - id: 'nginx/faq', - label: 'FAQ', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'chat-bubble-left-right', - }, - }, - ], - static: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'static/overview', - label: 'Static Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'computer-desktop', - }, - }, - ], - docker: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'docker/overview', - label: 'Docker Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'docker', - }, - }, - ], - mariadb: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'mariadb/overview', - label: 'Zerops MariaDB Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'mariadb', - }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - }, - items: [ - { - type: 'doc', - id: 'mariadb/how-to/create', - label: 'Create MariaDB service', - }, - { - type: 'doc', - id: 'mariadb/how-to/connect', - label: 'Connect to MariaDB', - }, - { - type: 'doc', - id: 'mariadb/how-to/manage', - label: 'Manage users and databases', - }, - { - type: 'doc', - id: 'mariadb/how-to/export-import-data', - label: 'Export and import data', - }, - { - type: 'doc', - id: 'mariadb/how-to/backup', - label: 'Backup data', - }, - { - type: 'doc', - id: 'mariadb/how-to/scale', - label: 'Scale MariaDB service', - }, - { - type: 'doc', - id: 'mariadb/how-to/control', - label: 'Stop and start MariaDB service', - }, - { - type: 'doc', - id: 'mariadb/how-to/delete', - label: 'Delete MariaDB service', - }, - ], - }, - { - type: 'category', - label: 'Technical details', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - }, - items: [ - { - type: 'doc', - id: 'mariadb/tech-details/cluster', - label: 'MariaDB cluster asynchronous behaviour', - }, - { - type: 'doc', - id: 'mariadb/tech-details/limitations', - label: 'Technical limitations of MariaDB cluster', - }, - ], - }, - // { - // type: 'doc', - // id: 'mariadb/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, - ], - postgresql: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'postgresql/overview', - label: 'Zerops PostgreSQL Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'postgresql', - }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - }, - items: [ - { - type: 'doc', - id: 'postgresql/how-to/create', - label: 'Create PostgreSQL service', - }, - { - type: 'doc', - id: 'postgresql/how-to/connect', - label: 'Connect to PostgreSQL', - }, - { - type: 'doc', - id: 'postgresql/how-to/manage', - label: 'Manage users, databases & plugins', - }, - { - type: 'doc', - id: 'postgresql/how-to/export-import-data', - label: 'Export and import data', - }, - { - type: 'doc', - id: 'postgresql/how-to/scale', - label: 'Scale PostgreSQL service', - }, - { - type: 'doc', - id: 'postgresql/how-to/control', - label: 'Stop and start PostgreSQL service', - }, - { - type: 'doc', - id: 'postgresql/how-to/delete', - label: 'Delete PostgreSQL service', - }, - ], - }, - // { - // type: "category", - // label: "Technical details", - // collapsible: false, - // customProps: { - // sidebar_is_group_headline: true, - // }, - // items: [ - // { - // type: "doc", - // id: "postgresql/tech-details/cluster", - // label: "PostgreSQL cluster asynchronous behaviour", - // }, - // { - // type: "doc", - // id: "postgresql/tech-details/limitations", - // label: "Technical limitations of PostgreSQL cluster", - // }, - // ], - // }, - { - type: 'doc', - id: 'postgresql/faq', - label: 'FAQ', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'chat-bubble-left-right', - }, - }, - ], -// mongodb: [ -// { -// type: 'ref', -// id: 'homepage', -// label: 'Back to home', -// customProps: { -// sidebar_is_back_link: true, -// sidebar_icon: 'back-arrow', -// }, -// }, - // { - // type: 'doc', - // id: 'mongodb/overview', - // label: 'Zerops MongoDB Service', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'mongodb', - // }, - // }, -// ], - elasticsearch: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'elasticsearch/overview', - label: 'Zerops Elasticsearch Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'elasticsearch', - }, - }, - ], - keydb: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'keydb/overview', - label: 'Zerops KeyDB Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'keydb', - }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - }, - items: [ - { - type: 'doc', - id: 'keydb/how-to/create', - label: 'Create KeyDB service', - }, - { - type: 'doc', - id: 'keydb/how-to/connect', - label: 'Connect to KeyDB', - }, - { - type: 'doc', - id: 'keydb/how-to/manage', - label: 'Manage users and databases', - }, - { - type: 'doc', - id: 'keydb/how-to/export-import-data', - label: 'Export and import data', - }, - { - type: 'doc', - id: 'keydb/how-to/scale', - label: 'Scale KeyDB service', - }, - { - type: 'doc', - id: 'keydb/how-to/control', - label: 'Stop and start KeyDB service', - }, - { - type: 'doc', - id: 'keydb/how-to/delete', - label: 'Delete KeyDB service', - }, - ], - }, - // { - // type: 'doc', - // id: 'keydb/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, - ], - typesense: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'typesense/overview', - label: 'Zerops Typesense Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'typesense', - }, - }, - ], - meilisearch: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'meilisearch/overview', - label: 'Zerops Meilisearch Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'meilisearch', - }, - }, - ], - qdrant: [ - { - type: 'ref', - id: 'homepage', - label: 'Back to home', - customProps: { - sidebar_is_back_link: true, - sidebar_icon: 'back-arrow', - }, - }, - { - type: 'doc', - id: 'qdrant/overview', - label: 'Zerops Qdrant Service', - customProps: { - sidebar_is_title: true, - sidebar_icon: 'qdrant', - }, - }, - ], - // rabbitmq: [ - // { - // type: "ref", - // id: "homepage", - // label: "Back to home", - // customProps: { - // sidebar_is_back_link: true, - // sidebar_icon: "back-arrow", - // }, - // }, - // { - // type: "doc", - // id: "rabbitmq/overview", - // label: "Zerops RabbitMQ Service", - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: "rabbitmq", - // }, - // }, - // { - // type: "category", - // label: "How-to", - // collapsible: false, - // customProps: { - // sidebar_is_group_headline: true, - // }, - // items: [ - // { - // type: "doc", - // id: "rabbitmq/how-to/create", - // label: "Create RabbitMQ service", - // }, - // { - // type: "doc", - // id: "rabbitmq/how-to/connect", - // label: "Connect to RabbitMQ", - // }, - // { - // type: "doc", - // id: "rabbitmq/how-to/manage", - // label: "Manage users and databases", - // }, - // { - // type: "doc", - // id: "rabbitmq/how-to/export-import-data", - // label: "Export and import data", - // }, - // { - // type: "doc", - // id: "rabbitmq/how-to/scale", - // label: "Scale RabbitMQ service", - // }, - // { - // type: "doc", - // id: "rabbitmq/how-to/control", - // label: "Stop and start RabbitMQ service", - // }, - // { - // type: "doc", - // id: "rabbitmq/how-to/delete", - // label: "Delete RabbitMQ service", - // }, - // ], - // }, - // ], - sharedstorage: [ + items: [ + { + type: 'doc', + id: 'nginx/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'nginx/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'nginx/how-to/access', + label: 'Access Nginx runtime service', + }, + { + type: 'doc', + id: 'nginx/how-to/scaling', + label: 'Scale Nginx static service', + }, + { + type: 'doc', + id: 'nginx/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + { + type: 'doc', + id: 'nginx/faq', + label: 'FAQ', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'chat-bubble-left-right', + }, + }, + ], + static: [ { type: 'ref', id: 'homepage', @@ -2157,51 +1861,15 @@ module.exports = { }, { type: 'doc', - id: 'shared-storage/overview', - label: 'Shared storage overview', + id: 'static/overview', + label: 'Static Service', customProps: { sidebar_is_title: true, - sidebar_icon: 'server', - }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - sidebar_icon: 'academic-cap-solid', + sidebar_icon: 'computer-desktop', }, - items: [ - { - type: 'doc', - id: 'shared-storage/how-to/create', - label: 'Create shared storage', - }, - { - type: 'doc', - id: 'shared-storage/how-to/connect', - label: 'Connect shared storage', - }, - { - type: 'doc', - id: 'shared-storage/how-to/access', - label: 'Use shared storage', - }, - { - type: 'doc', - id: 'shared-storage/how-to/backup', - label: 'Backup shared storage', - }, - { - type: 'doc', - id: 'shared-storage/how-to/delete', - label: 'Delete shared storage service', - }, - ], }, ], - objectstorage: [ + docker: [ { type: 'ref', id: 'homepage', @@ -2213,51 +1881,15 @@ module.exports = { }, { type: 'doc', - id: 'object-storage/overview', - label: 'Object Storage Overview', + id: 'docker/overview', + label: 'Docker Service', customProps: { sidebar_is_title: true, - sidebar_icon: 'server', - }, - }, - { - type: 'category', - label: 'How-to', - collapsible: false, - customProps: { - sidebar_is_group_headline: true, - sidebar_icon: 'academic-cap-solid', + sidebar_icon: 'docker', }, - items: [ - { - type: 'doc', - id: 'object-storage/how-to/create', - label: 'Create object storage service', - }, - { - type: 'doc', - id: 'object-storage/how-to/update-bucket', - label: 'Change bucket size or access policy', - }, - { - type: 'doc', - id: 'object-storage/how-to/access', - label: 'Access object storage service', - }, - { - type: 'doc', - id: 'object-storage/how-to/delete', - label: 'Delete object storage service', - }, - { - type: 'doc', - id: 'object-storage/how-to/curl-file', - label: 'Download file from a private bucket', - }, - ], }, ], - deno: [ + mariadb: [ { type: 'ref', id: 'homepage', @@ -2269,11 +1901,11 @@ module.exports = { }, { type: 'doc', - id: 'deno/overview', - label: 'Getting Started', + id: 'mariadb/overview', + label: 'Zerops MariaDB Service', customProps: { sidebar_is_title: true, - sidebar_icon: 'deno', + sidebar_icon: 'mariadb', }, }, { @@ -2282,89 +1914,73 @@ module.exports = { collapsible: false, customProps: { sidebar_is_group_headline: true, - sidebar_icon: 'academic-cap-solid', }, items: [ { type: 'doc', - id: 'deno/how-to/create', - label: 'Create Deno service', - }, - { - type: 'doc', - id: 'deno/how-to/env-variables', - label: 'Manage environment variables', - }, - { - type: 'doc', - id: 'deno/how-to/upgrade', - label: 'Upgrade Deno service', - }, - { - type: 'doc', - id: 'deno/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', - }, - { - type: 'doc', - id: 'deno/how-to/trigger-pipeline', - label: 'Trigger build pipeline', - }, - { - type: 'doc', - id: 'deno/how-to/build-process', - label: 'Build process', + id: 'mariadb/how-to/create', + label: 'Create MariaDB service', }, { type: 'doc', - id: 'deno/how-to/deploy-process', - label: 'Deploy process', + id: 'mariadb/how-to/connect', + label: 'Connect to MariaDB', }, { type: 'doc', - id: 'deno/how-to/customize-runtime', - label: 'Customize Deno runtime', + id: 'mariadb/how-to/manage', + label: 'Manage users and databases', }, { type: 'doc', - id: 'deno/how-to/logs', - label: 'Setup & access logs', + id: 'mariadb/how-to/export-import-data', + label: 'Export and import data', }, { type: 'doc', - id: 'deno/how-to/filebrowser', - label: 'Browse container files', + id: 'mariadb/how-to/backup', + label: 'Backup data', }, { type: 'doc', - id: 'deno/how-to/access', - label: 'Access Bun runtime service', + id: 'mariadb/how-to/scale', + label: 'Scale MariaDB service', }, { type: 'doc', - id: 'deno/how-to/scaling', - label: 'Scale Deno runtime service', + id: 'mariadb/how-to/control', + label: 'Stop and start MariaDB service', }, { type: 'doc', - id: 'deno/how-to/controls', - label: 'Stop & start Deno runtime service', + id: 'mariadb/how-to/delete', + label: 'Delete MariaDB service', }, + ], + }, + { + type: 'category', + label: 'Technical details', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ { type: 'doc', - id: 'deno/how-to/shared-storage', - label: 'Connect / disconnect shared storage', + id: 'mariadb/tech-details/cluster', + label: 'MariaDB cluster asynchronous behaviour', }, { type: 'doc', - id: 'deno/how-to/delete', - label: 'Delete Deno service', + id: 'mariadb/tech-details/limitations', + label: 'Technical limitations of MariaDB cluster', }, ], }, // { // type: 'doc', - // id: 'deno/faq', + // id: 'mariadb/faq', // label: 'FAQ', // customProps: { // sidebar_is_title: true, @@ -2372,7 +1988,7 @@ module.exports = { // }, // }, ], - bun: [ + postgresql: [ { type: 'ref', id: 'homepage', @@ -2384,11 +2000,11 @@ module.exports = { }, { type: 'doc', - id: 'bun/overview', - label: 'Getting Started', + id: 'postgresql/overview', + label: 'Zerops PostgreSQL Service', customProps: { sidebar_is_title: true, - sidebar_icon: 'bun', + sidebar_icon: 'postgresql', }, }, { @@ -2401,92 +2017,112 @@ module.exports = { items: [ { type: 'doc', - id: 'bun/how-to/create', - label: 'Create Bun service', - }, - { - type: 'doc', - id: 'bun/how-to/env-variables', - label: 'Manage environment variables', - }, - { - type: 'doc', - id: 'bun/how-to/upgrade', - label: 'Upgrade Bun service', - }, - { - type: 'doc', - id: 'bun/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', - }, - { - type: 'doc', - id: 'bun/how-to/trigger-pipeline', - label: 'Trigger build pipeline', - }, - { - type: 'doc', - id: 'bun/how-to/build-process', - label: 'Build process', - }, - { - type: 'doc', - id: 'bun/how-to/deploy-process', - label: 'Deploy process', - }, - { - type: 'doc', - id: 'bun/how-to/customize-runtime', - label: 'Customize Bun runtime', - }, - { - type: 'doc', - id: 'bun/how-to/logs', - label: 'Setup & access logs', + id: 'postgresql/how-to/create', + label: 'Create PostgreSQL service', }, { type: 'doc', - id: 'bun/how-to/filebrowser', - label: 'Browse container files', + id: 'postgresql/how-to/connect', + label: 'Connect to PostgreSQL', }, { type: 'doc', - id: 'bun/how-to/access', - label: 'Access Bun runtime service', + id: 'postgresql/how-to/manage', + label: 'Manage users, databases & plugins', }, { type: 'doc', - id: 'bun/how-to/scaling', - label: 'Scale Bun runtime service', + id: 'postgresql/how-to/export-import-data', + label: 'Export and import data', }, { type: 'doc', - id: 'bun/how-to/controls', - label: 'Stop & start Bun runtime service', + id: 'postgresql/how-to/scale', + label: 'Scale PostgreSQL service', }, { type: 'doc', - id: 'bun/how-to/shared-storage', - label: 'Connect / disconnect shared storage', + id: 'postgresql/how-to/control', + label: 'Stop and start PostgreSQL service', }, { type: 'doc', - id: 'bun/how-to/delete', - label: 'Delete Bun service', + id: 'postgresql/how-to/delete', + label: 'Delete PostgreSQL service', }, ], }, - // { - // type: 'doc', - // id: 'bun/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, + // { + // type: "category", + // label: "Technical details", + // collapsible: false, + // customProps: { + // sidebar_is_group_headline: true, + // }, + // items: [ + // { + // type: "doc", + // id: "postgresql/tech-details/cluster", + // label: "PostgreSQL cluster asynchronous behaviour", + // }, + // { + // type: "doc", + // id: "postgresql/tech-details/limitations", + // label: "Technical limitations of PostgreSQL cluster", + // }, + // ], + // }, + { + type: 'doc', + id: 'postgresql/faq', + label: 'FAQ', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'chat-bubble-left-right', + }, + }, + ], +// mongodb: [ +// { +// type: 'ref', +// id: 'homepage', +// label: 'Back to home', +// customProps: { +// sidebar_is_back_link: true, +// sidebar_icon: 'back-arrow', +// }, +// }, + // { + // type: 'doc', + // id: 'mongodb/overview', + // label: 'Zerops MongoDB Service', + // customProps: { + // sidebar_is_title: true, + // sidebar_icon: 'mongodb', + // }, + // }, +// ], + elasticsearch: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'elasticsearch/overview', + label: 'Zerops Elasticsearch Service', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'elasticsearch', + }, + }, ], - gleam: [ + keydb: [ { type: 'ref', id: 'homepage', @@ -2498,11 +2134,11 @@ module.exports = { }, { type: 'doc', - id: 'gleam/overview', - label: 'Getting Started', + id: 'keydb/overview', + label: 'Zerops KeyDB Service', customProps: { sidebar_is_title: true, - sidebar_icon: 'gleam', + sidebar_icon: 'keydb', }, }, { @@ -2515,84 +2151,44 @@ module.exports = { items: [ { type: 'doc', - id: 'gleam/how-to/create', - label: 'Create Gleam service', - }, - { - type: 'doc', - id: 'gleam/how-to/env-variables', - label: 'Manage environment variables', - }, - { - type: 'doc', - id: 'gleam/how-to/upgrade', - label: 'Upgrade Gleam service', - }, - { - type: 'doc', - id: 'gleam/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', - }, - { - type: 'doc', - id: 'gleam/how-to/trigger-pipeline', - label: 'Trigger build pipeline', - }, - { - type: 'doc', - id: 'gleam/how-to/build-process', - label: 'Build process', - }, - { - type: 'doc', - id: 'gleam/how-to/deploy-process', - label: 'Deploy process', - }, - { - type: 'doc', - id: 'gleam/how-to/customize-runtime', - label: 'Customize Gleam runtime', - }, - { - type: 'doc', - id: 'gleam/how-to/logs', - label: 'Setup & access logs', + id: 'keydb/how-to/create', + label: 'Create KeyDB service', }, { type: 'doc', - id: 'gleam/how-to/filebrowser', - label: 'Browse container files', + id: 'keydb/how-to/connect', + label: 'Connect to KeyDB', }, { type: 'doc', - id: 'gleam/how-to/access', - label: 'Access Gleam runtime service', + id: 'keydb/how-to/manage', + label: 'Manage users and databases', }, { type: 'doc', - id: 'gleam/how-to/scaling', - label: 'Scale Gleam runtime service', + id: 'keydb/how-to/export-import-data', + label: 'Export and import data', }, { type: 'doc', - id: 'gleam/how-to/controls', - label: 'Stop & start Gleam runtime service', + id: 'keydb/how-to/scale', + label: 'Scale KeyDB service', }, { type: 'doc', - id: 'gleam/how-to/shared-storage', - label: 'Connect / disconnect shared storage', + id: 'keydb/how-to/control', + label: 'Stop and start KeyDB service', }, { type: 'doc', - id: 'gleam/how-to/delete', - label: 'Delete Gleam service', + id: 'keydb/how-to/delete', + label: 'Delete KeyDB service', }, ], }, // { // type: 'doc', - // id: 'gleam/faq', + // id: 'keydb/faq', // label: 'FAQ', // customProps: { // sidebar_is_title: true, @@ -2600,7 +2196,132 @@ module.exports = { // }, // }, ], - elixir: [ + typesense: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'typesense/overview', + label: 'Zerops Typesense Service', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'typesense', + }, + }, + ], + meilisearch: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'meilisearch/overview', + label: 'Zerops Meilisearch Service', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'meilisearch', + }, + }, + ], + qdrant: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'qdrant/overview', + label: 'Zerops Qdrant Service', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'qdrant', + }, + }, + ], + // rabbitmq: [ + // { + // type: "ref", + // id: "homepage", + // label: "Back to home", + // customProps: { + // sidebar_is_back_link: true, + // sidebar_icon: "back-arrow", + // }, + // }, + // { + // type: "doc", + // id: "rabbitmq/overview", + // label: "Zerops RabbitMQ Service", + // customProps: { + // sidebar_is_title: true, + // sidebar_icon: "rabbitmq", + // }, + // }, + // { + // type: "category", + // label: "How-to", + // collapsible: false, + // customProps: { + // sidebar_is_group_headline: true, + // }, + // items: [ + // { + // type: "doc", + // id: "rabbitmq/how-to/create", + // label: "Create RabbitMQ service", + // }, + // { + // type: "doc", + // id: "rabbitmq/how-to/connect", + // label: "Connect to RabbitMQ", + // }, + // { + // type: "doc", + // id: "rabbitmq/how-to/manage", + // label: "Manage users and databases", + // }, + // { + // type: "doc", + // id: "rabbitmq/how-to/export-import-data", + // label: "Export and import data", + // }, + // { + // type: "doc", + // id: "rabbitmq/how-to/scale", + // label: "Scale RabbitMQ service", + // }, + // { + // type: "doc", + // id: "rabbitmq/how-to/control", + // label: "Stop and start RabbitMQ service", + // }, + // { + // type: "doc", + // id: "rabbitmq/how-to/delete", + // label: "Delete RabbitMQ service", + // }, + // ], + // }, + // ], + sharedstorage: [ { type: 'ref', id: 'homepage', @@ -2612,11 +2333,11 @@ module.exports = { }, { type: 'doc', - id: 'elixir/overview', - label: 'Getting Started', + id: 'shared-storage/overview', + label: 'Shared storage overview', customProps: { sidebar_is_title: true, - sidebar_icon: 'elixir', + sidebar_icon: 'server', }, }, { @@ -2625,95 +2346,633 @@ module.exports = { collapsible: false, customProps: { sidebar_is_group_headline: true, + sidebar_icon: 'academic-cap-solid', }, items: [ { type: 'doc', - id: 'elixir/how-to/create', - label: 'Create Gleam service', + id: 'shared-storage/how-to/create', + label: 'Create shared storage', }, { type: 'doc', - id: 'elixir/how-to/env-variables', - label: 'Manage environment variables', + id: 'shared-storage/how-to/connect', + label: 'Connect shared storage', }, { type: 'doc', - id: 'elixir/how-to/upgrade', - label: 'Upgrade Gleam service', + id: 'shared-storage/how-to/access', + label: 'Use shared storage', }, { type: 'doc', - id: 'elixir/how-to/build-pipeline', - label: 'Configure build & deploy pipeline', + id: 'shared-storage/how-to/backup', + label: 'Backup shared storage', }, { type: 'doc', - id: 'elixir/how-to/trigger-pipeline', - label: 'Trigger build pipeline', + id: 'shared-storage/how-to/delete', + label: 'Delete shared storage service', }, + ], + }, + ], + objectstorage: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'object-storage/overview', + label: 'Object Storage Overview', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'server', + }, + }, + { + type: 'category', + label: 'How-to', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + sidebar_icon: 'academic-cap-solid', + }, + items: [ { type: 'doc', - id: 'elixir/how-to/build-process', - label: 'Build process', + id: 'object-storage/how-to/create', + label: 'Create object storage service', }, { type: 'doc', - id: 'elixir/how-to/deploy-process', - label: 'Deploy process', + id: 'object-storage/how-to/update-bucket', + label: 'Change bucket size or access policy', }, { type: 'doc', - id: 'elixir/how-to/customize-runtime', - label: 'Customize Gleam runtime', + id: 'object-storage/how-to/access', + label: 'Access object storage service', }, { type: 'doc', - id: 'elixir/how-to/logs', - label: 'Setup & access logs', + id: 'object-storage/how-to/delete', + label: 'Delete object storage service', }, { type: 'doc', - id: 'elixir/how-to/filebrowser', - label: 'Browse container files', + id: 'object-storage/how-to/curl-file', + label: 'Download file from a private bucket', }, - { - type: 'doc', - id: 'elixir/how-to/access', - label: 'Access Gleam runtime service', + ], + }, + ], + deno: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', }, - { - type: 'doc', - id: 'elixir/how-to/scaling', - label: 'Scale Gleam runtime service', + }, + { + type: 'doc', + id: 'deno/overview', + label: 'Getting Started', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'deno', }, - { - type: 'doc', - id: 'elixir/how-to/controls', - label: 'Stop & start Gleam runtime service', + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'elixir/how-to/shared-storage', - label: 'Connect / disconnect shared storage', + items: [ + { + type: 'doc', + id: 'deno/how-to/create', + label: 'Create Deno service', + }, + { + type: 'doc', + id: 'deno/how-to/upgrade', + label: 'Upgrade Deno service', + }, + { + type: 'doc', + id: 'deno/how-to/delete', + label: 'Delete Deno service', + }, + { + type: 'doc', + id: 'deno/how-to/controls', + label: 'Stop & start Deno runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - { - type: 'doc', - id: 'elixir/how-to/delete', - label: 'Delete Gleam service', + items: [ + { + type: 'doc', + id: 'deno/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'deno/how-to/customize-runtime', + label: 'Customize Deno runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, }, - ], - }, - // { - // type: 'doc', - // id: 'elixir/faq', - // label: 'FAQ', - // customProps: { - // sidebar_is_title: true, - // sidebar_icon: 'chat-bubble-left-right', - // }, - // }, - ], + items: [ + { + type: 'doc', + id: 'deno/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'deno/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'deno/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'deno/how-to/deploy-process', + label: 'Deploy process', + }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'deno/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'deno/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'deno/how-to/access', + label: 'Access Bun runtime service', + }, + { + type: 'doc', + id: 'deno/how-to/scaling', + label: 'Scale Deno runtime service', + }, + { + type: 'doc', + id: 'deno/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + ], + bun: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'bun/overview', + label: 'Getting Started', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'bun', + }, + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'bun/how-to/create', + label: 'Create Bun service', + }, + { + type: 'doc', + id: 'bun/how-to/upgrade', + label: 'Upgrade Bun service', + }, + { + type: 'doc', + id: 'bun/how-to/delete', + label: 'Delete Bun service', + }, + { + type: 'doc', + id: 'bun/how-to/controls', + label: 'Stop & start Bun runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'bun/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'bun/how-to/customize-runtime', + label: 'Customize Bun runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'bun/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'bun/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'bun/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'bun/how-to/deploy-process', + label: 'Deploy process', + }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'bun/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'bun/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'bun/how-to/access', + label: 'Access Bun runtime service', + }, + { + type: 'doc', + id: 'bun/how-to/scaling', + label: 'Scale Bun runtime service', + }, + { + type: 'doc', + id: 'bun/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + ], + gleam: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'gleam/overview', + label: 'Getting Started', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'gleam', + }, + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'gleam/how-to/create', + label: 'Create Gleam service', + }, + { + type: 'doc', + id: 'gleam/how-to/upgrade', + label: 'Upgrade Gleam service', + }, + { + type: 'doc', + id: 'gleam/how-to/delete', + label: 'Delete Gleam service', + }, + { + type: 'doc', + id: 'gleam/how-to/controls', + label: 'Stop & start Gleam runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'gleam/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'gleam/how-to/customize-runtime', + label: 'Customize Gleam runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'gleam/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'gleam/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'gleam/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'gleam/how-to/deploy-process', + label: 'Deploy process', + }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'gleam/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'gleam/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'gleam/how-to/access', + label: 'Access Gleam runtime service', + }, + { + type: 'doc', + id: 'gleam/how-to/scaling', + label: 'Scale Gleam runtime service', + }, + { + type: 'doc', + id: 'gleam/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + ], + elixir: [ + { + type: 'ref', + id: 'homepage', + label: 'Back to home', + customProps: { + sidebar_is_back_link: true, + sidebar_icon: 'back-arrow', + }, + }, + { + type: 'doc', + id: 'elixir/overview', + label: 'Getting Started', + customProps: { + sidebar_is_title: true, + sidebar_icon: 'elixir', + }, + }, + { + type: 'category', + label: 'Management', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'elixir/how-to/create', + label: 'Create Elixir service', + }, + { + type: 'doc', + id: 'elixir/how-to/upgrade', + label: 'Upgrade Elixir service', + }, + { + type: 'doc', + id: 'elixir/how-to/delete', + label: 'Delete Elixir service', + }, + { + type: 'doc', + id: 'elixir/how-to/controls', + label: 'Stop & start Elixir runtime service', + }, + ], + }, + { + type: 'category', + label: 'Configuration & Environment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'elixir/how-to/env-variables', + label: 'Manage environment variables', + }, + { + type: 'doc', + id: 'elixir/how-to/customize-runtime', + label: 'Customize Elixir runtime', + }, + ], + }, + { + type: 'category', + label: 'Build & Deployment', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'elixir/how-to/build-pipeline', + label: 'Configure build & deploy pipeline', + }, + { + type: 'doc', + id: 'elixir/how-to/trigger-pipeline', + label: 'Trigger build pipeline', + }, + { + type: 'doc', + id: 'elixir/how-to/build-process', + label: 'Build process', + }, + { + type: 'doc', + id: 'elixir/how-to/deploy-process', + label: 'Deploy process', + }, + ], + }, + { + type: 'category', + label: 'Maintenance & Monitoring', + collapsible: false, + customProps: { + sidebar_is_group_headline: true, + }, + items: [ + { + type: 'doc', + id: 'elixir/how-to/logs', + label: 'Setup & access logs', + }, + { + type: 'doc', + id: 'elixir/how-to/filebrowser', + label: 'Browse container files', + }, + { + type: 'doc', + id: 'elixir/how-to/access', + label: 'Access Elixir runtime service', + }, + { + type: 'doc', + id: 'elixir/how-to/scaling', + label: 'Scale Elixir runtime service', + }, + { + type: 'doc', + id: 'elixir/how-to/shared-storage', + label: 'Connect / disconnect shared storage', + }, + ], + }, + ], laravel: [ { type: 'ref', @@ -2905,206 +3164,3 @@ module.exports = { }, ], }; - - - - - - - - - - - - - - - - - - - - - - - - -// { -// type: "category", -// label: "Nest.js", -// link: { -// type: "doc", -// id: "frameworks/nestjs/index", -// }, -// customProps: { -// sidebar_icon: "nestjs", -// }, -// className: "homepage-sidebar-item", -// items: [ -// { -// type: "doc", -// id: "frameworks/nestjs/index", -// label: "Overview & quickstart", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/log", -// label: "Setup & access logs", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/template", -// label: "Create templates with import & seed", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/env-variables", -// label: "Utilize environment variables", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/migration", -// label: "Migration & upgrades", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/backups", -// label: "Backups", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/scaling", -// label: "Optimize scaling", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/scaling", -// label: "High availability, when, how, why", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/cron", -// label: "CRON / Scheduled jobs", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/mails", -// label: "SMTP & sending emails", -// }, -// { -// type: "doc", -// id: "frameworks/nestjs/routing", -// label: "Public access from domain, IP, subdomain", -// }, -// ], -// }, -// { -// type: "category", -// label: "Laravel", -// link: { -// type: "doc", -// id: "frameworks/laravel/index", -// }, -// customProps: { -// sidebar_icon: "laravel", -// }, -// className: "homepage-sidebar-item", -// items: [ -// { -// type: "doc", -// id: "frameworks/laravel/examples", -// label: "Examples", -// customProps: { -// exclude_from_doc_list: false, -// }, -// }, -// ], -// }, -// { -// type: "category", -// label: "Gingonic", -// link: { -// type: "doc", -// id: "frameworks/gingonic/index", -// }, -// customProps: { -// sidebar_icon: "gingonic", -// }, -// className: "homepage-sidebar-item", -// items: [ -// { -// type: "doc", -// id: "frameworks/gingonic/examples", -// label: "Examples", -// customProps: { -// exclude_from_doc_list: false, -// }, -// }, -// ], -// }, -// { -// type: "category", -// label: "Nette", -// link: { -// type: "doc", -// id: "frameworks/nette/index", -// }, -// customProps: { -// sidebar_icon: "nette", -// }, -// className: "homepage-sidebar-item", -// items: [ -// { -// type: "doc", -// id: "frameworks/nette/examples", -// label: "Examples", -// customProps: { -// exclude_from_doc_list: false, -// }, -// }, -// ], -// }, -// { -// type: "category", -// label: "Strapi", -// link: { -// type: "doc", -// id: "frameworks/strapi/index", -// }, -// customProps: { -// sidebar_icon: "strapi", -// }, -// className: "homepage-sidebar-item", -// items: [ -// { -// type: "doc", -// id: "frameworks/strapi/examples", -// label: "Examples", -// customProps: { -// exclude_from_doc_list: false, -// }, -// }, -// ], -// }, -// { -// type: "category", -// label: "Medusa", -// link: { -// type: "doc", -// id: "frameworks/medusa/index", -// }, -// customProps: { -// sidebar_icon: "medusa", -// }, -// className: "homepage-sidebar-item", -// items: [ -// { -// type: "doc", -// id: "frameworks/medusa/examples", -// label: "Examples", -// customProps: { -// exclude_from_doc_list: false, -// }, -// }, -// ], -// }, From 0db2edcafe12850c364d766651cbca5149253d4e Mon Sep 17 00:00:00 2001 From: vankovap Date: Fri, 7 Mar 2025 09:27:35 +0100 Subject: [PATCH 23/59] delete empty pages (#211) --- .../content/frameworks/laravel/local-development.mdx | 0 apps/docs/content/go/how-to/repo-connect.mdx | 0 apps/docs/content/keydb/faq.mdx | 10 ---------- apps/docs/content/keydb/how-to/export-import-data.mdx | 0 apps/docs/content/keydb/reference/cli.mdx | 0 apps/docs/content/keydb/reference/import.mdx | 0 apps/docs/sidebars.js | 5 ----- 7 files changed, 15 deletions(-) delete mode 100644 apps/docs/content/frameworks/laravel/local-development.mdx delete mode 100644 apps/docs/content/go/how-to/repo-connect.mdx delete mode 100644 apps/docs/content/keydb/faq.mdx delete mode 100644 apps/docs/content/keydb/how-to/export-import-data.mdx delete mode 100644 apps/docs/content/keydb/reference/cli.mdx delete mode 100644 apps/docs/content/keydb/reference/import.mdx diff --git a/apps/docs/content/frameworks/laravel/local-development.mdx b/apps/docs/content/frameworks/laravel/local-development.mdx deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/docs/content/go/how-to/repo-connect.mdx b/apps/docs/content/go/how-to/repo-connect.mdx deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/docs/content/keydb/faq.mdx b/apps/docs/content/keydb/faq.mdx deleted file mode 100644 index 13f869f8..00000000 --- a/apps/docs/content/keydb/faq.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Frequently Asked Questions -description: Get quick answers to your related questions about Keydb from frequently asked questions by people at Zerops. ---- - -import { FAQ, FAQItem } from '/src/components/Faq'; - - - sample answer - diff --git a/apps/docs/content/keydb/how-to/export-import-data.mdx b/apps/docs/content/keydb/how-to/export-import-data.mdx deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/docs/content/keydb/reference/cli.mdx b/apps/docs/content/keydb/reference/cli.mdx deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/docs/content/keydb/reference/import.mdx b/apps/docs/content/keydb/reference/import.mdx deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index 679afc0c..0aceba8e 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -2164,11 +2164,6 @@ module.exports = { id: 'keydb/how-to/manage', label: 'Manage users and databases', }, - { - type: 'doc', - id: 'keydb/how-to/export-import-data', - label: 'Export and import data', - }, { type: 'doc', id: 'keydb/how-to/scale', From d9e59a0b76609d5fbd27d04fcab4a154f6671995 Mon Sep 17 00:00:00 2001 From: vankovap Date: Sun, 9 Mar 2025 21:58:13 +0100 Subject: [PATCH 24/59] docker envs (#212) --- apps/docs/content/docker/overview.mdx | 50 +++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/apps/docs/content/docker/overview.mdx b/apps/docs/content/docker/overview.mdx index 50eb33f0..715775f3 100644 --- a/apps/docs/content/docker/overview.mdx +++ b/apps/docs/content/docker/overview.mdx @@ -1,6 +1,6 @@ --- title: Docker Service -desc: +desc: Comprehensive guide to using Docker on Zerops with VM-based environments. Includes configuration examples and best practices. --- import UnorderedCodeList from '@site/src/components/UnorderedCodeList'; @@ -91,6 +91,52 @@ For projects using Docker Compose, additional configuration is required: network_mode: host ``` +3. **Start Command**: + ```yaml title="zerops.yml" + run: + start: docker compose up --force-recreate + ``` + +### Environment Variables + +When using Docker services, there's an additional layer to consider since environment variables defined in Zerops must be explicitly passed to your Docker containers. + +#### 1. Defining Variables in Zerops + +Define your environment variables in the `run.envVariables` section of your `zerops.yml` (example uses [referenced](/features/env-variables#referencing-variables) variables): + +```yaml title="zerops.yml" +zerops: + - setup: app + run: + envVariables: + DB_HOST: ${db_hostname} + DB_PORT: ${db_port} +``` + +#### 2. Passing Variables to Docker Containers + +For single containers, pass variables using the `-e` flag: + +```yaml title="zerops.yml" +run: + prepareCommands: + - docker image pull my-application:latest + start: docker run -e DB_HOST -e DB_PORT --network=host my-application:latest +``` + +For Docker Compose setups, pass environment variables in your `docker-compose.yml`: + +```yaml title="docker-compose.yml" +services: + api: + image: my-application:latest + network_mode: host + environment: + - DB_HOST + - DB_PORT +``` + ## Implementation Examples ### Single Container @@ -187,4 +233,4 @@ Docker services on Zerops have specific scaling characteristics that differ from - Still supports multiple containers through `minContainers` and `maxContainers` - Consider breaking large services into smaller components - Implement proper health checks for reliable scaling -- Use horizontal scaling when possible to avoid VM restarts +- Use horizontal scaling when possible to avoid VM restarts \ No newline at end of file From 25c6db52fbcbeabbf311c67866dd2100839cb66b Mon Sep 17 00:00:00 2001 From: vankovap Date: Thu, 13 Mar 2025 17:04:58 +0100 Subject: [PATCH 25/59] shared storage (#213) --- apps/docs/content/features/backup.mdx | 96 ++++- apps/docs/content/mariadb/how-to/create.mdx | 2 +- apps/docs/content/mariadb/how-to/scale.mdx | 2 +- .../docs/content/postgresql/how-to/create.mdx | 2 +- apps/docs/content/postgresql/how-to/scale.mdx | 2 +- apps/docs/content/references/zsc.mdx | 389 +++++++++++++----- .../content/shared-storage/how-to/access.mdx | 26 -- .../content/shared-storage/how-to/backup.mdx | 70 +--- .../content/shared-storage/how-to/connect.mdx | 32 +- .../content/shared-storage/how-to/create.mdx | 85 ++-- .../content/shared-storage/how-to/delete.mdx | 40 -- .../content/shared-storage/how-to/manage.mdx | 51 +++ .../content/shared-storage/how-to/use.mdx | 49 +++ apps/docs/content/shared-storage/overview.mdx | 68 ++- .../content/shared-storage/tech-details.mdx | 103 +++++ apps/docs/sidebars.js | 21 +- apps/docs/src/theme/Icon/index.tsx | 4 + 17 files changed, 689 insertions(+), 353 deletions(-) delete mode 100644 apps/docs/content/shared-storage/how-to/access.mdx delete mode 100644 apps/docs/content/shared-storage/how-to/delete.mdx create mode 100644 apps/docs/content/shared-storage/how-to/manage.mdx create mode 100644 apps/docs/content/shared-storage/how-to/use.mdx create mode 100644 apps/docs/content/shared-storage/tech-details.mdx diff --git a/apps/docs/content/features/backup.mdx b/apps/docs/content/features/backup.mdx index f3e3c562..efb28755 100644 --- a/apps/docs/content/features/backup.mdx +++ b/apps/docs/content/features/backup.mdx @@ -8,18 +8,90 @@ Whether a service supports backups is specified on the documentation page of eac ## Frequency and volume -By default, your data is backed up automatically **every day** between 00:00:00 UTC and 01:00:00 UTC, unless you update your settings: - -### In GUI - -Following changes are available in Zerops GUI. Go to the service detail and choose **Backups List & Configuration** section in the left menu. - -- do a one-time backup of your data -- change time of your automatic backup -- turn off backing up your data completely -- view all of your backups -- download a backup -- delete a backup +By default, your data is backed up automatically **every day** between 00:00:00 UTC and 01:00:00 UTC, unless you update your settings. + +### Managing Backups in GUI + +To manage backups, go to the service detail and choose **Backups List & Configuration** section in the left menu. + +#### Configure Backup Settings + +From this section, you can: +- Do a one-time backup of your data +- Change the frequency of your automatic backups +- Turn off backing up your data completely + +

+ Backup frequency configuration +

+ +#### Backup Frequency Options + +You can configure backups with several preset schedules: +- **No backups**: Disable automatic backups (not recommended) +- **Once a day**: Daily backups at the specified time +- **Once a week**: Weekly backups on the specified day and time +- **Once a month**: Monthly backups on the specified day and time +- **Custom CRON**: Define a custom schedule using CRON syntax + +For the Custom CRON option, you can use the following syntax: + +
minCpuminCpu integer Minimum number of virtual CPUs
maxCpumaxCpu integer Maximum number of virtual CPUs
cpuModecpuMode enum Values: **SHARED / DEDICATED**
minRamminRam float Minimum RAM in GB that each container of the service can scale down to.
maxRammaxRam float Maximum RAM in GB that each container of the service can scale up to.
minDiskminDisk float Minimum disk space in GB that each container of the service can scale down to.
maxDiskmaxDisk float Maximum disk space in GB that each container of the service can scale up to.
startCpuCoreCountstartCpuCoreCount integer Number of CPU cores with which each container starts.
minFreeCpuCoresminFreeCpuCores float Minimum number of unused CPU cores before a container starts scaling.
minFreeCpuPercentminFreeCpuPercent float Minimum percentage of unused CPU cores before a container starts scaling.
minFreeRamGBminFreeRamGB float Minimum unused memory in GB before a container starts scaling.
minFreeRamPercentminFreeRamPercent float Minimum percentage of unused memory before a container starts scaling. @@ -486,7 +472,7 @@ The horizontal autoscaling configuration is used to define the horizontal autosc #### Usage - + @@ -497,14 +483,14 @@ The horizontal autoscaling configuration is used to define the horizontal autosc - + - + - + - +
minContainersminContainers integerDefault: 1, maximum value: 6 - Minimum number of containers of the service.Minimum number of containers of the service.
Default: 1, maximum value: 6
maxContainersmaxContainers integerMaximum value: 6 - Maximum number of containers of the service.Maximum number of containers of the service.
Maximum value: 6
@@ -541,7 +527,7 @@ The mount shared storage configuration is used to define the shared storage to m
mountmount list of strings Mount shared storage to the service. `buildFromGit` must be filled.
nginxConfignginxConfig string (multiline) Insert full nginx config.
zeropsSetupzeropsSetup string or object Provide the name of the service from your zerops.yml (find it under `-setup: {name}`) or insert full [zerops.yml configuration file](/zerops-yml/specification).
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Field nameAllowed values
Minute0-59
Hour0-23
Day1-31
Month1-12
Week Day0–7; both 0 and 7 represent Sunday
+ +Examples: +- `0 2 * * *` - Every day at 2:00 AM +- `0 4 * * 0` - Every Sunday at 4:00 AM +- `0 0 1 * *` - First day of every month at midnight + +#### View and Manage Backup Files + +In the same section, you can: +- View all of your backups +- Download a backup +- Delete a backup + +

+ List of backups +

### Limits diff --git a/apps/docs/content/mariadb/how-to/create.mdx b/apps/docs/content/mariadb/how-to/create.mdx index 8921bf94..9b62eede 100644 --- a/apps/docs/content/mariadb/how-to/create.mdx +++ b/apps/docs/content/mariadb/how-to/create.mdx @@ -112,7 +112,7 @@ Vertical auto scaling has following default configuration: diff --git a/apps/docs/content/mariadb/how-to/scale.mdx b/apps/docs/content/mariadb/how-to/scale.mdx index 38d962bc..6ba09e5d 100644 --- a/apps/docs/content/mariadb/how-to/scale.mdx +++ b/apps/docs/content/mariadb/how-to/scale.mdx @@ -41,7 +41,7 @@ Vertical auto scaling has following default configuration: diff --git a/apps/docs/content/postgresql/how-to/create.mdx b/apps/docs/content/postgresql/how-to/create.mdx index 73497a11..c4cac9a5 100644 --- a/apps/docs/content/postgresql/how-to/create.mdx +++ b/apps/docs/content/postgresql/how-to/create.mdx @@ -109,7 +109,7 @@ Vertical auto-scaling has the following default configuration: diff --git a/apps/docs/content/postgresql/how-to/scale.mdx b/apps/docs/content/postgresql/how-to/scale.mdx index c8bcd9a8..1c907af5 100644 --- a/apps/docs/content/postgresql/how-to/scale.mdx +++ b/apps/docs/content/postgresql/how-to/scale.mdx @@ -41,7 +41,7 @@ Vertical auto scaling has following default configuration: diff --git a/apps/docs/content/references/zsc.mdx b/apps/docs/content/references/zsc.mdx index b6c67878..38e095b3 100644 --- a/apps/docs/content/references/zsc.mdx +++ b/apps/docs/content/references/zsc.mdx @@ -5,202 +5,397 @@ description: Interacting with zerops containers by connecting to the project net import Image from '/src/components/Image'; -Zerops Setup Control (zsc) is a cli tool / helper installed to all containers, runtime and build, -which allows some direct modifications, like triggering scaling from inside the container, -adding new technologies, making sure that commands (like migration) run only once (even when -staring some high available setup with 3 containers) +Zerops Setup Control (zsc) is a command-line utility automatically installed in all Zerops containers enabling developers to manage and control container environments directly from within both runtime and build contexts. -:::info -Zsc is automatically installed in all containers and is available both in runtime and build environments. -::: +Zerops Setup Control provides essential capabilities for container management, including resource scaling, technology installation, and environment configuration. + +Zerops Setup Control commands can be executed in two ways: + +- **Manual execution**: + - From the web terminal interface in Zerops GUI + - Using SSH connections to your containers +- **Automated execution**: + - As part of your `zerops.yml` configuration file -## Command Overview +## Usage ```sh +zsc [flags] +``` + +## Commands + +--- + +### help + +This command lists available commands and flags on a command by placing `help`, `-h` or `--help` flag after the command. + +```sh +zsc help +# or zsc --help -Zerops SetupControl CLI +# or +zsc -h +``` -Usage: - zsc [command] +--- -Available Commands: - action Perform specific predefined actions within the container - backup-create creates a new backup of the specified stack - backup-current Create a new backup of the current stack - completion Generate the autocompletion script for the specified shell - connectSharedStorage Connect shared storage to the container - crontab Perform crontab actions defined in zerops.yml - execOnce Execute a command once for the provided key - fail-me Fail current container - help Help about any command - install Run install commands for the specified base - noop Infinitely blocking command that does nothing - scale Scale container CPU or memory instantly* - setSecretEnv Set an secret environment variable in the current stack context - test Run various tests - version application version +### completion -Flags: - -h, --help help for zsc +Generate the autocompletion script for zsc for the specified shell. -Use "zsc [command] --help" for more information about a command. +```sh +zsc completion [command] ``` -## Available Commands +#### Available sub-commands +- `bash`: Generate the autocompletion script for bash +- `fish`: Generate the autocompletion script for fish +- `powershell`: Generate the autocompletion script for powershell +- `zsh`: Generate the autocompletion script for zsh -### backup-create and backup-current +#### Available flags +- `-h, --help`: Help for the completion command -The `backup-create` command lets you create a backup of any specified stack in your project, while `backup-current` command creates a backup of the stack you're currently working in. +--- + +### backup-create + +Creates a backup of any specified stack in your project. ```sh -# Create backup of a specified stack -zsc backup-create +zsc backup-create +``` -# Create backup of the current stack you're working in -zsc backup-current +#### Required parameters +- `stackName`: Name of the stack to backup + +#### Available flags +- `-h, --help`: Help for the backup-create command + +#### Example +```sh +zsc backup-create db ``` -:::info -Backups include all the data and configurations of the stack at the time of backup creation. These can be used for recovery or creating duplicate environments. -::: +--- ### connectSharedStorage -This command lets you connect a shared storage volume to your service for persistent data storage. +Connects a shared storage volume to your service for persistent data storage. ```sh -zsc connectSharedStorage +zsc connectSharedStorage [...name] ``` +#### Parameters +- `name`: Optional name(s) of the shared storage to connect + +#### Available flags +- `-h, --help`: Help for the connectSharedStorage command + +#### Examples +```sh +zsc connectSharedStorage sharedstorage0 +zsc connectSharedStorage sharedDisk secondDisk +``` + +--- + ### crontab -This command lets you manage scheduled tasks that are defined in your zerops.yml configuration. + +Manages scheduled tasks that are defined in your zerops.yml configuration. ```sh -zsc crontab +zsc crontab [command] ``` +#### Available sub-commands +- `list`: List all crontabs defined in zerops.yml +- `run`: Execute crontab command defined in zerops.yml + +#### Available flags +- `-h, --help`: Help for the crontab command + +--- + ### execOnce -:::info -This command is particularly useful in high-availability setups to ensure commands (like database migrations) run only once, even when starting multiple containers. -::: +Execute a command exactly once across all containers in a service, preventing duplicate execution in high-availability setups. + +```sh +zsc execOnce [flags] -- [args...] +``` + +#### Required parameters +* ``: A unique identifier for the execution +* `--`: Standard separator indicating the end of options and beginning of the command +* ` [args...]`: The actual command to execute and its arguments -This command lets you execute a command exactly once across all containers in a service. Useful for database migrations in high-availability setups. +#### Available flags +- `-r, --retryUntilSuccessful`: Retry command until it succeeds +- `-v, --verbose`: Verbose output +- `-h, --help`: Help for the execOnce command +#### Behavior +- **On success**: All containers proceed with their tasks +- **On failure**: All containers report the command as failed +- **With --retryUntilSuccessful**: The command is retried on a different container until it succeeds + +#### Examples ```sh -zsc execOnce "db-migration" "php artisan migrate" +# Execute a command once for the entire service stack +zsc execOnce someStaticKey -- /var/www/myBinary some initial command --flag="value" --flag2="value2" + +# Run migrations for each new app version deployed to Zerops +zsc execOnce ${ZEROPS_appVersionId} -- php /var/bin/console migrations:continue ``` +:::info +This command is ideal for database migrations, initialization scripts, and other operations that should only run once in clustered environments. +::: + +--- + ### fail-me -This command lets you deliberately fail the current container for testing purposes. + +Deliberately fails the current container for testing purposes. ```sh zsc fail-me ``` +#### Available flags +- `-h, --help`: Help for the fail-me command + +--- + ### install -You can install additional base technologies in your runtime container that weren't specified in the initial configuration. -:::info -The `install` command allows you to add technologies that weren't specified in the initial base configuration. -::: +Run install commands for the specified base technology in your runtime container. -Example usage in `zerops.yml`: +```sh +zsc install [flags] +``` + +#### Required parameters +- `baseName`: The technology and version to install - see the full list of supported [base environments](/zerops-yml/base-list). + +#### Available flags +- `--buildBase `: Build base (default "php@8.4") +- `--buildOs `: Build os (default "alpine") +- `-m, --mode `: Mode (default "RUNTIME") +- `--runBase `: Run base (default "php-nginx@8.4") +- `--runOs `: Run os (default "alpine") +- `-h, --help`: Help for the install command + +#### Examples +```sh +zsc install rust@1.78 +zsc install dotnet@8 +zsc install nginx@1.22 +``` + +#### Example usage in `zerops.yml` ```yaml zerops: - setup: nodejsapp build: os: ubuntu - base: + base: - nodejs@22 - - python@3.7 - run: + - python@3.11 + run: os: ubuntu base: nodejs@22 prepareCommands: - - zsc install python@3.7 + - zsc install python@3.11 ``` +--- + ### noop -An infinitely blocking command that does nothing and keeps the container alive so that it doesn't end because of an error. The command runs indefinitely until it receives a SIGTERM signal. + +Keep a container alive indefinitely with a non-terminating process. + +```sh +zsc noop [flags] +``` + +#### Available flags +- `-s, --silent`: Disables output to StdOut +- `-h, --help`: Help for the noop command + +#### Examples +```sh +zsc noop +zsc noop --silent +``` :::info -The `noop` command is particularly useful for debugging build failures by keeping the container alive for investigation. +The `noop` command is especially useful for: +- Debugging build failures by keeping containers alive for investigation +- Supporting applications that run as background daemons +- Keeping service containers active when your app doesn't have a foreground process +- As a start command in zerops.yml for services that don't have a natural blocking command ::: +#### Usage in zerops.yml +```yaml +zerops: + - setup: myapp + run: + start: zsc noop + ports: + - port: 8080 + http: true +``` + +--- + +### resources + +Displays the current resource scaling configuration for the container. + ```sh -zsc noop [--silent] +zsc resources +``` + +#### Available flags +- `-h, --help`: Help for the resources command + +#### Example output +```json +{ + "cpuCoreCount": 1, + "memoryGBytes": 0.25, + "diskGBytes": 1 +} ``` -The `--silent` flag suppresses any output from the command. +#### Related commands +- `zsc scale`: Dynamically adjust resource allocations + +--- ### scale -This command dynamically adjusts CPU or memory resources for the current container. -:::caution -If there aren't enough resources available on the current node, using `scale` may trigger a container move to another node. This will reset the scale duration. -::: +Dynamically adjust CPU or memory resources for the current container for a specified duration. ```sh -# Scale CPU -zsc scale cpu auto # Reset to automatic scaling -zsc scale cpu 5 1h # Scale to 5 CPU cores for 1 hour -zsc scale cpu +2 30m # Add 2 CPU cores for 30 minutes +zsc scale {cpu|ram} { |auto} +``` + +#### Required parameters +- `cpu|ram`: Resource type to scale (either CPU cores or RAM) +- ` ` or `auto`: Scale value and duration, or "auto" to disable custom scaling + +#### Available flags +- `-h, --help`: Help for the scale command -# Scale Memory -zsc scale memory auto # Reset to automatic scaling -zsc scale memory 5GB 1h # Scale to 5GB RAM for 1 hour -zsc scale memory +2.5GB 600s # Add 2.5GB RAM for 600 seconds +#### Supported values +- **For RAM**: Value must be suffixed by a unit (KiB, MiB, GiB); number may be a float. +- **For CPU**: Value must not be suffixed; number must be an integer. +- **"auto"**: Disables any custom scaling set via this command and must be used without the duration parameter. +- **"min"** and **"max"**: Set the container to its CURRENT min and max values. +- Numeric values can be prefixed with **"+"** for relative scaling, adding the requested value to currently used resources. +- Duration must be suffixed by a unit (s = seconds, m = minutes, h = hours, d = days) and cannot be less than 10 minutes. + +#### Examples +```sh +zsc scale cpu auto +zsc scale cpu 5 1h +zsc scale cpu +2 30m +zsc scale cpu min 10m +zsc scale ram auto +zsc scale ram 5GB 1h +zsc scale ram +2.5GB 600s +zsc scale ram max 10m ``` :::info -- Scaling takes effect within ~10 seconds -- Duration must be at least 10 minutes -- Supported values: "auto", "min", "max", or numeric values -- RAM values require units (KiB, MiB, GiB) -- CPU values must be integers without units -- Use "+" prefix for relative scaling +- Resource adjustments take effect within approximately 10 seconds +- The container cannot be scaled above or below its max/min resources set in the vertical autoscaling configuration +- If you scale to a value that exceeds the maximum set limit (e.g., 10GB RAM when max is 5GB), the container will only receive the maximum allowed resources +- If service limits are changed while custom scaling is active, the container will automatically adjust to the new boundaries +- If the service auto-scaling configuration is updated, you must call the scale command again to apply custom scaling ::: -### test tcp -This command verifies TCP connectivity to a specified host and port. +:::caution +If there are insufficient resources on the current server, the container might be moved to another node with available resources, which will reset the scale duration. +The container will scale down automatically if resources are not utilized, or if the scale command duration expires. +::: + +--- + +### test + +Run diagnostic tests to verify connectivity and service availability. ```sh -zsc test tcp : [--timeout ] [--dialTimeout ] [-4] [-6] +zsc test tcp : [flags] ``` -- **``**: Server address to connect to -- **``**: Port number to connect to -- **`--timeout `**: Maximum test duration (default: 30s) -- **`--dialTimeout `**: Single attempt timeout (default: 2s) -- **`-4`**: Force IPv4 -- **`-6`**: Force IPv6 +#### Required parameters +- `:`: Host and port to test connectivity to + +#### Available flags +- `--timeout `: Maximum test duration (default: 30s) +- `--dialTimeout `: Single attempt timeout (default: 2s) +- `-4`: Force IPv4 +- `-6`: Force IPv6 +- `-h, --help`: Help for the test tcp command -Example: +#### Example ```sh +# Test TCP connection to a host +zsc test tcp api.zerops:80 zsc test tcp database:5432 --timeout 1m ``` +--- + ### setSecretEnv -This command sets a secret environment variable in the current stack context. + +Securely update environment variables containing sensitive information. ```sh -zsc setSecretEnv [key] [content] [flags] +zsc setSecretEnv ``` -Examples: +#### Arguments +- `key`: The name of the environment variable to set +- `content`: The new value for the variable, or `-` to read from stdin + +#### Available flags +- `-h, --help`: Help for the setSecretEnv command + +#### Examples ```sh -# Direct value +# Set a secret environment variable directly zsc setSecretEnv SECRET_KEY "new_value" -# From stdin +# Set a secret environment variable from stdin (useful for multi-line values or piping) echo "new_value" | zsc setSecretEnv SECRET_KEY - + +# Set a secret API key from a file +cat api_key.txt | zsc setSecretEnv API_KEY - ``` +:::info +Secret environment variables are encrypted at rest and securely distributed to your containers. Use this command for storing sensitive configuration like API keys, tokens, and passwords. +::: + +--- + ### version -This command displays the current version of Zsc CLI. + +Displays the current version of Zsc CLI. ```sh zsc version ``` +#### Available flags +- `-h, --help`: Help for the version command \ No newline at end of file diff --git a/apps/docs/content/shared-storage/how-to/access.mdx b/apps/docs/content/shared-storage/how-to/access.mdx deleted file mode 100644 index ad2815dd..00000000 --- a/apps/docs/content/shared-storage/how-to/access.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Use shared storage -description: Learn how to use shared storage on Zerops. ---- - -Once a shared storage is [connected](/shared-storage/how-to/connect) to a runtime service, Zerops will create a new folder `/mnt/[shared storage name]` in the runtime root folder. - -E.g. `/mnt/teststorage` for a `teststorage` shared storage: - -

- image -

- -:::note -The content of this folder is shared among all containers of the connected runtime service. - -If you connect multiple runtimes, the content of the folder will be shared among all containers of these services. -::: - -#### Example -To make sure your file e.g. `config.txt` is persisted, connect your runtime service to shared storage and save the file anywhere in the `/mnt/[shared storage name]` folder, e.g. `/mnt/[shared storage name]/config/config.txt`. diff --git a/apps/docs/content/shared-storage/how-to/backup.mdx b/apps/docs/content/shared-storage/how-to/backup.mdx index d1d7f6ca..d32533ad 100644 --- a/apps/docs/content/shared-storage/how-to/backup.mdx +++ b/apps/docs/content/shared-storage/how-to/backup.mdx @@ -1,65 +1,17 @@ --- -title: Backup shared storage -description: Learn how to nackup shared storage data on Zerops. +title: Backup Shared Storage +description: Learn how to backup and restore your Shared Storage data on Zerops. --- -Backups of shared storage data are saved in `.tar.gz` format and contain the entire contents of the shared storage directory. +Zerops provides built-in backup functionality for your Shared Storage service. For general information about configuring backups, viewing backup files, limits, and security, please refer to the [general backup documentation](/features/backup). -To retrieve backups of your shared storage, go to the shared storage service detail and select **Backups List & Configuration**. All backups are listed under **List of backups**. +Shared Storage backups on Zerops: +- Are stored as tarballs containing the entire contents of the shared storage directory (`/mnt/`) +- Can be managed through the Shared Storage service detail page under **Backups List & Configuration** -

- image -

+### Storage Optimization -### Configuration -Backup of your shared storage data is set by default. To adjust, disable or create an instant one-time backup, go to the shared storage service detail and select **Backups List & Configuration**. - -

- image -

- - -Allowed values of the **Custom CRON** option: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Field nameAllowed values
Minute0-59
Hour0-23
Day1-31
Month1-12
Week Day0–7; both 0 and 7 represent Sunday
- -{/* add link to backup page if exists, at least mention zcli backup command */} \ No newline at end of file +For large Shared Storage volumes: +- Be mindful of the [project backup limits](/features/backup#limits) (25 GiB total backup volume per project) +- Consider adjusting your backup frequency for optimal storage usage +- Regularly clean up unnecessary files from your Shared Storage to reduce backup size \ No newline at end of file diff --git a/apps/docs/content/shared-storage/how-to/connect.mdx b/apps/docs/content/shared-storage/how-to/connect.mdx index 390f47d3..f309f4e5 100644 --- a/apps/docs/content/shared-storage/how-to/connect.mdx +++ b/apps/docs/content/shared-storage/how-to/connect.mdx @@ -5,30 +5,38 @@ description: Learn how to connect shared storage to other services in Zerops. import GroupCards from '@site/src/components/GroupCards'; -## Connect shared storage in Zerops GUI +This page covers how to connect an existing shared storage to runtime services and how to disconnect services when needed. -### New shared storage +## In Zerops GUI -Connect your runtime service directly when creating a new shared storage service. Just select your runtime service in the **Share with Services** block on the **Add new shared storage service** page. +### Connect a new shared storage + +When creating a new shared storage service, you can directly select which runtime services it should be connected to. See [Create Shared Storage](/shared-storage/how-to/create) for details about the creation process. + +### Connect an existing shared storage + +For existing storage, go to the shared storage service detail page and select **Shared storage connections**. Toggle ON any runtime services you wish to connect to this storage.

image

-### Existing shared storage -To connect the existing shared storage to a runtime service, go to the shared storage service detail and select **Shared storage connections**. A list of all your current runtime services will be shown. Select a runtime service and the shared storage will be connected to the selected runtime. - ## Disconnect a shared storage in Zerops GUI -Go to the shared storage service detail and select **Shared storage connections**. A list of all your current runtime services will be shown. Switch off the toggle to disconnect the shared storage from the selected runtime. +To disconnect storage, access the shared storage service detail page, select **Shared storage connections**, and toggle OFF the desired runtime service. + +## Connect using zsc + +Connect shared storage from the command line with the `zsc connectSharedStorage` command. Specify one or more storage names as parameters: -:::caution -Your runtime service will be automatically restarted when a shared storage is disconnected. -::: +```sh +zsc connectSharedStorage sharedstorage0 +zsc connectSharedStorage sharedDisk secondDisk +``` -{/* ## Connect using zsc */} +Run this command from within your runtime container via web terminal, SSH, or in your `zerops.yml` file. For more details, see the [Zerops Setup Control documentation](/references/zsc). \ No newline at end of file diff --git a/apps/docs/content/shared-storage/how-to/create.mdx b/apps/docs/content/shared-storage/how-to/create.mdx index c0598907..a1130015 100644 --- a/apps/docs/content/shared-storage/how-to/create.mdx +++ b/apps/docs/content/shared-storage/how-to/create.mdx @@ -1,36 +1,36 @@ --- -title: Create Shared storage service in Zerops +title: Create Shared Storage service description: Learn how to create shared storage which you can use with your other services on Zerops. --- import GroupCards from '@site/src/components/GroupCards'; import Video from '@site/src/components/Video'; -Zerops provides a Shared storage service to share files between all containers of the same service or even among containers of different runtime services. Shared storage is a secure file system storage built on [SeaweedFS ↗](https://github.com/seaweedfs/seaweedfs) that suits both for development and production. +Shared Storage provides persistent file storage that can be mounted as a POSIX-compatible filesystem to your runtime services. Built on [SeaweedFS ↗](https://github.com/seaweedfs/seaweedfs), it enables reliable data persistence and sharing across services in your infrastructure. -## Create Shared storage service using Zerops GUI +## Create Using Zerops GUI -First, set up a project in Zerops GUI and add a runtime service. Then go to the project dashboard page and choose **Add new service** in the left menu in the **Services** block. Then add a new Shared storage service: +First, set up a project in Zerops GUI and add a runtime service. Then go to the project dashboard page and choose **Add new service** in the left menu in the **Services** block. Then add a new Shared Storage service:
-At least one service in `services:` section is required. You can create a project with multiple services. The example above contains .NET and PostgreSQL services but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains .NET and PostgreSQL services but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -309,7 +309,7 @@ At least one service in `services:` section is required. You can create a projec @@ -373,9 +373,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version. - See what [.NET service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [.NET service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -388,11 +388,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -408,7 +408,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -438,9 +438,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -454,4 +454,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/dotnet/how-to/customize-runtime.mdx b/apps/docs/content/dotnet/how-to/customize-runtime.mdx index 583aa1ce..b43c2cc9 100644 --- a/apps/docs/content/dotnet/how-to/customize-runtime.mdx +++ b/apps/docs/content/dotnet/how-to/customize-runtime.mdx @@ -24,9 +24,9 @@ The default .NET runtime environment contains: - ASP .NET and Git :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: ## Runtime Flow diff --git a/apps/docs/content/dotnet/how-to/deploy-process.mdx b/apps/docs/content/dotnet/how-to/deploy-process.mdx index 50000412..b0d5a0e8 100644 --- a/apps/docs/content/dotnet/how-to/deploy-process.mdx +++ b/apps/docs/content/dotnet/how-to/deploy-process.mdx @@ -42,7 +42,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/dotnet/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/dotnet/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -60,7 +60,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/dotnet/how-to/build-pipeline#start), configure a [readiness check](/dotnet/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/dotnet/how-to/build-pipeline#start), configure a [readiness check](/dotnet/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -96,7 +96,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/dotnet/how-to/env-variables.mdx b/apps/docs/content/dotnet/how-to/env-variables.mdx index 85ff53c9..1febed0e 100644 --- a/apps/docs/content/dotnet/how-to/env-variables.mdx +++ b/apps/docs/content/dotnet/how-to/env-variables.mdx @@ -25,12 +25,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -42,13 +42,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/dotnet/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/dotnet/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/dotnet/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/dotnet/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/dotnet/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/dotnet/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/dotnet/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/dotnet/how-to/upgrade.mdx b/apps/docs/content/dotnet/how-to/upgrade.mdx index 62912337..b0280676 100644 --- a/apps/docs/content/dotnet/how-to/upgrade.mdx +++ b/apps/docs/content/dotnet/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the .NET version description: Learn how to upgrade your dotnet service's version --- -You can upgrade or downgrade your .NET service to a different major .NET version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/dotnet/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required .NET version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current .NET version for your runtime. +You can upgrade or downgrade your .NET service to a different major .NET version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/dotnet/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required .NET version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current .NET version for your runtime. -If you want to build your application with a different major .NET version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major .NET version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/dotnet/overview.mdx b/apps/docs/content/dotnet/overview.mdx index fb0ef635..5dfdd33e 100644 --- a/apps/docs/content/dotnet/overview.mdx +++ b/apps/docs/content/dotnet/overview.mdx @@ -23,9 +23,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-dotnet-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-dotnet-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: @@ -95,12 +95,12 @@ Do you have any questions? Check the step-by-step tutorial, browse the documenta }, { type: 'link', - href: '/dotnet/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/dotnet/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/elixir/how-to/build-pipeline.mdx b/apps/docs/content/elixir/how-to/build-pipeline.mdx index adf89714..dd26d7a4 100644 --- a/apps/docs/content/elixir/how-to/build-pipeline.mdx +++ b/apps/docs/content/elixir/how-to/build-pipeline.mdx @@ -9,11 +9,11 @@ import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; Zerops provides a customizable build and runtime environment for your Elixir application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -76,9 +76,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -103,7 +103,7 @@ Following options are available for Elixir builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -120,12 +120,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -139,7 +139,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customise your build environment use the [prepareCommands](/elixir/how-to/build-pipeline#preparecommands) attribute. @@ -184,7 +184,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -225,7 +225,7 @@ You can configure your prepare commands to be run in a single shell instance or _REQUIRED._ Defines build commands. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -253,7 +253,7 @@ Before the build commands are triggered the build container contains: Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. -```yml +```yaml buildCommands: - | npm i @@ -264,7 +264,7 @@ buildCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. -```yml +```yaml buildCommands: - npm i - npm run build @@ -274,7 +274,7 @@ buildCommands: If any command fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/elixir/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the --verbose option. -```yml +```yaml buildCommands: - npm i --verbose - npm run build @@ -286,7 +286,7 @@ If the command ends successfully, it returns the exit code 0 and Zerops triggers _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -297,7 +297,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -305,7 +305,7 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - dist - package.json @@ -313,13 +313,13 @@ deployFiles: Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -331,19 +331,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` @@ -362,7 +362,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -389,7 +389,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -407,7 +407,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -438,7 +438,7 @@ Following options are available for Elixir builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -461,12 +461,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -486,7 +486,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customise your build environment use the `prepareCommands` attribute. @@ -536,7 +536,7 @@ _OPTIONAL._ Customises the Elixir runtime environment by installing additional d additional packages or tools add one or more prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -590,14 +590,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -609,13 +609,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -655,7 +655,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -676,7 +676,7 @@ Read more about [environment variables](/elixir/how-to/env-variables) in Zerops. _REQUIRED._ Defines the start command for your Elixir application. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -712,7 +712,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -745,7 +745,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -774,7 +774,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -813,7 +813,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -846,7 +846,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/elixir/how-to/build-process.mdx b/apps/docs/content/elixir/how-to/build-process.mdx index 1389bd7b..642cec0f 100644 --- a/apps/docs/content/elixir/how-to/build-process.mdx +++ b/apps/docs/content/elixir/how-to/build-process.mdx @@ -54,11 +54,11 @@ The build cancellation is available before the build pipeline is finished. When The default Elixir build environment contains: - {data.alpine.default} -- selected version of Elixir defined in `zerops.yml` [build.base](/elixir/how-to/build-pipeline#base) parameter +- selected version of Elixir defined in `zerops.yaml` [build.base](/elixir/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - `npm`, `yarn`, `git` and `npx` tools -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/elixir/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/elixir/how-to/build-pipeline#preparecommands) commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/elixir/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/elixir/how-to/build-pipeline#preparecommands) commands to your `zerops.yaml`. :::info The application code is available in the `/var/www` folder in your build container before the prepare commands are triggered. This allows you to use any file from your application code in your prepare commands (e.g. a configuration file). @@ -104,7 +104,7 @@ This will force Zerops to run the next build clean, including all prepare comman If any [build command](/elixir/how-to/build-pipeline#buildcommands) fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/elixir/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the `--verbose` option. -```yml +```yaml buildCommands: - npm i --verbose - npm run build diff --git a/apps/docs/content/elixir/how-to/create.mdx b/apps/docs/content/elixir/how-to/create.mdx index 70223f4f..9b1e52e2 100644 --- a/apps/docs/content/elixir/how-to/create.mdx +++ b/apps/docs/content/elixir/how-to/create.mdx @@ -157,7 +157,7 @@ Zerops uses a YAML format to describe the project infrastructure. #### Basic example: -Create a directory called `my-project`. Inside the `my-project` directory, create a `description.yml` file with the following content: +Create a directory called `my-project`. Inside the `my-project` directory, create a `description.yaml` file with the following content: ```yaml # basic project data project: @@ -179,7 +179,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Elixir version 20 service with default [auto scaling](/elixir/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/elixir/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Elixir version 20 service with default [auto scaling](/elixir/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/elixir/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -188,7 +188,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -237,7 +237,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a Elixir service and a [PostgreSQL](/postgresql/overview) service. -Elixir service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yml](/elixir/how-to/build-pipeline#ports). Elixir service will run on version 20 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +Elixir service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yaml](/elixir/how-to/build-pipeline#ports). Elixir service will run on version 20 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -246,7 +246,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -256,7 +256,7 @@ The `project:` section is required. Only one project can be defined. | **description** | **Optional.** Description of the new project. | Maximum 255 characters. | | **tags** | **Optional.** One or more string tags. Tags do not have a functional meaning, they only provide better orientation in projects. | -At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Elixir and PostgreSQL services but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Elixir and PostgreSQL services but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -286,7 +286,7 @@ At least one service in `services:` section is required. You can create a projec @@ -368,9 +368,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version.
- See what [Elixir service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [Elixir service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -383,11 +383,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -403,7 +403,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -433,9 +433,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -449,4 +449,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/elixir/how-to/customize-runtime.mdx b/apps/docs/content/elixir/how-to/customize-runtime.mdx index 822c3152..cf9c8a59 100644 --- a/apps/docs/content/elixir/how-to/customize-runtime.mdx +++ b/apps/docs/content/elixir/how-to/customize-runtime.mdx @@ -24,7 +24,7 @@ The default Elixir runtime environment contains: , Zerops command line tool - `npm`, `yarn`, `git` and `npx` tools -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/elixir/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more `run.prepareCommands` commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/elixir/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more `run.prepareCommands` commands to your `zerops.yaml`. When the first deploy with a defined `prepareCommands` attribute is triggered, Zerops will diff --git a/apps/docs/content/elixir/how-to/deploy-process.mdx b/apps/docs/content/elixir/how-to/deploy-process.mdx index 9050241b..7636ed47 100644 --- a/apps/docs/content/elixir/how-to/deploy-process.mdx +++ b/apps/docs/content/elixir/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/elixir/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/elixir/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/elixir/how-to/build-pipeline#start), configure a [readiness check](/elixir/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/elixir/how-to/build-pipeline#start), configure a [readiness check](/elixir/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/elixir/how-to/env-variables.mdx b/apps/docs/content/elixir/how-to/env-variables.mdx index f2858e23..35e570a0 100644 --- a/apps/docs/content/elixir/how-to/env-variables.mdx +++ b/apps/docs/content/elixir/how-to/env-variables.mdx @@ -13,19 +13,19 @@ There are 3 different sets of env variables in Zerops: | environment | type | defined in | | ----------- | ------ | --------------------------------------------------------------------------------- | -| build | basic | [zerops.yml](/elixir/how-to/build-pipeline#envvariables) | -| runtime | basic | [zerops.yml](/elixir/how-to/build-pipeline#envvariables-1) | +| build | basic | [zerops.yaml](/elixir/how-to/build-pipeline#envvariables) | +| runtime | basic | [zerops.yaml](/elixir/how-to/build-pipeline#envvariables-1) | | runtime | secret | [Zerops GUI](#set-secret-env-variables-in-zerops-gui) | Use the [secret env variables](/elixir/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/elixir/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/elixir/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/elixir/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/elixir/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/elixir/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/elixir/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/elixir/how-to/upgrade.mdx b/apps/docs/content/elixir/how-to/upgrade.mdx index e3d568c7..e1b2790e 100644 --- a/apps/docs/content/elixir/how-to/upgrade.mdx +++ b/apps/docs/content/elixir/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the Elixir version description: Learn how to upgrade your Elixir service's version --- -You can upgrade or downgrade your Elixir service to a different major Elixir version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/elixir/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Elixir version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Elixir version for your runtime. +You can upgrade or downgrade your Elixir service to a different major Elixir version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/elixir/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Elixir version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Elixir version for your runtime. -If you want to build your application with a different major Elixir version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major Elixir version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/elixir/overview.mdx b/apps/docs/content/elixir/overview.mdx index 8f828b97..0cdcbf75 100644 --- a/apps/docs/content/elixir/overview.mdx +++ b/apps/docs/content/elixir/overview.mdx @@ -25,9 +25,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-elixir/blob/main/zerops-project-import.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-elixir/blob/main/zerops-project-import.yaml)): -```yml +```yaml project: name: recipe-elixir tags: @@ -116,12 +116,12 @@ It doesn't matter whether it's your first curious introduction to Zerops, you ha }, { type: 'link', - href: '/elixir/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'Zerops.yml', + href: '/elixir/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'Zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/features/access.mdx b/apps/docs/content/features/access.mdx index 0b53d980..7591dd60 100644 --- a/apps/docs/content/features/access.mdx +++ b/apps/docs/content/features/access.mdx @@ -51,7 +51,7 @@ For development and testing purposes, Zerops offers a quick way to make your app />

-Once enabled, Zerops assigns a unique subdomain for your application. If you've defined multiple [internal ports](/zerops-yml/specification#ports-) with HTTP support in your `zerops.yml`, each port receives its own unique `.zerops.app` subdomain. +Once enabled, Zerops assigns a unique subdomain for your application. If you've defined multiple [internal ports](/zerops-yaml/specification#ports-) with HTTP support in your `zerops.yaml`, each port receives its own unique `.zerops.app` subdomain. diff --git a/apps/docs/content/features/build-cache.mdx b/apps/docs/content/features/build-cache.mdx index 626b189e..72818103 100644 --- a/apps/docs/content/features/build-cache.mdx +++ b/apps/docs/content/features/build-cache.mdx @@ -26,9 +26,9 @@ See detailed [build process lifecycle](#build-process-lifecycle). ## Configuration Guide -### Essential zerops.yml Fields +### Essential zerops.yaml Fields -The following fields in `zerops.yml` affect build cache behavior: +The following fields in `zerops.yaml` affect build cache behavior: **Direct Cache Configuration**: - `build.cache`: Explicitly defines what should be cached through paths or patterns diff --git a/apps/docs/content/features/env-variables.mdx b/apps/docs/content/features/env-variables.mdx index 8f011c90..5b6976ea 100644 --- a/apps/docs/content/features/env-variables.mdx +++ b/apps/docs/content/features/env-variables.mdx @@ -17,9 +17,9 @@ You can define service-level variables in two ways: #### 1. Build & Runtime Variables -These variables are defined with `envVariables` attribute in the `build` or `run` section of your [zerops.yml](/zerops-yml/specification) file and are accessible within their respective containers. +These variables are defined with `envVariables` attribute in the `build` or `run` section of your [zerops.yaml](/zerops-yaml/specification) file and are accessible within their respective containers. -```yml title="zerops.yml" +```yaml title="zerops.yaml" ... build: envVariables: @@ -39,7 +39,7 @@ These variables are defined with `envVariables` attribute in the `build` or `run See how to [reference variables](#referencing-variables) between services and between build and runtime environments. :::note -Your application must be redeployed when updating environmental variables in `zerops.yml`. +Your application must be redeployed when updating environmental variables in `zerops.yaml`. ::: #### 2. Secret Variables @@ -65,9 +65,9 @@ Navigate to service details and find **Environment variables** in the menu. You ##### Import Configuration -Create secret variables for a service with `envSecrets` attribute. See the complete [import.yml structure](/reference/import). +Create secret variables for a service with `envSecrets` attribute. See the complete [import.yaml structure](/reference/import). -```yml title="import.yml" +```yaml title="import.yaml" services: ... envSecrets: @@ -85,7 +85,7 @@ These variables can also be [referenced](#referencing-variables). ## Project Variables -Variables that apply across all services within a [project](/features/infrastructure#project). These provide a way to share common configuration across services. +Variables that apply across all services within a [project](/features/infrastructure#projects). These provide a way to share common configuration across services. They work similarly to service secret variables but at project scope - they're managed through the GUI and can be updated without redeployment (though services need to be restarted). @@ -102,9 +102,9 @@ Access **Project environment variables** in your project detail to: #### Import Configuration -Create project variables with `envVariables` attribute. See the complete [import.yml structure](/reference/import). +Create project variables with `envVariables` attribute. See the complete [import.yaml structure](/reference/import). -```yml title="import.yml" +```yaml title="import.yaml" project: ... envVariables: @@ -145,7 +145,7 @@ When the same environment variable key exists in multiple places, Zerops follows You can reference other variables using the `${variable_name}` syntax: #### Within Same Service -```yml +```yaml envVariables: id: 42069 hostname: app @@ -154,7 +154,7 @@ envVariables: #### Across Services Prefix variables with their respective service name: -```yml +```yaml setup: dbtest run: envVariables: @@ -174,9 +174,9 @@ To share variables between environments, you need to use specific prefixes: - Use `RUNTIME_` prefix to access runtime variables during build - Use `BUILD_` prefix to access build variables during runtime -Here's an example of `zerops.yml` file showing how to reference a runtime variable during build: +Here's an example of `zerops.yaml` file showing how to reference a runtime variable during build: -```yml title="zerops.yml" +```yaml title="zerops.yaml" build: envVariables: API_KEY: ${RUNTIME_API_KEY} # Using runtime variable during build @@ -187,14 +187,14 @@ run: #### Project Variables No prefix needed when referencing project variables: -```yml title="import.yml" +```yaml title="import.yaml" project: ... envVariables: projectName: devel ``` -```yml title="zerops.yml" +```yaml title="zerops.yaml" envVariables: id: 42069 hostname: app diff --git a/apps/docs/content/features/infrastructure.mdx b/apps/docs/content/features/infrastructure.mdx index 66f1775a..9955970d 100644 --- a/apps/docs/content/features/infrastructure.mdx +++ b/apps/docs/content/features/infrastructure.mdx @@ -3,67 +3,133 @@ title: Project & Services Structure description: Explore Project & Services Structure on Zerops. --- import Image from '/src/components/Image'; +import { CheckCircleSolid } from "@medusajs/icons"; +import { Dropdown, DropdownItem } from '/src/components/Dropdown'; -Zerops structure has three levels - **projects**, **services** and **containers**. +Zerops organizes your infrastructure into three hierarchical levels: **projects**, **services**, and **containers**. -## Project +## Projects -The **project** is the top-level entity, encompassing various **services**. It requires a functioning **core**, which includes: +A project is the top-level entity in Zerops, functioning as a private network where services can communicate internally and share environment variables. Each project provides essential infrastructure including load balancing, routing, and container orchestration. -- Logger and statistics services -- HTTP routing (with SSL certificates) -- IP routing (with built-in firewall) +:::tip +Consider your project organization strategy carefully. You can create separate projects for different environments or consolidate multiple applications in a single project to optimize resource usage. +::: -The core activates when the first user service is deployed and incurs a fixed monthly fee. +### Key Project Features -### Lightweight Core +Projects provide several important capabilities: +- **Private Networking**: All services within a project share a secure network +- **Environment Variables**: Services can access shared environment variables +- **IPv6/IPv4 Addressing**: Each project receives an IPv6 address, with optional IPv4 addressing + +### Project Core +When you create a project, it requires a functioning **core** that includes: +- Logger and statistics services +- HTTP routing with automatic SSL certificate management +- IP routing with integrated firewall + +Zerops offers two core types to match different needs and budgets: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeaturesLightweight CoreSerious Core
Best ForDevelopment, testing, smaller workloadsProduction, high-reliability workloads
InfrastructureSingle container (limited redundancy)Multi-container (highly available)
SSL Termination
Automatic Certificate Generation
Proxy / Load Balancer
IPv6 Address
Build Time15 hours150 hours
Backup Space5 GB25 GB
Egress100 GB3 TB
Failover ProtectionLimitedComprehensive
+ + + +### Lightweight Core Lightweight Core - -Single-container infrastructure with L3 balancer, firewall, logger, and statistics service. Includes HTTP routing with SSL termination, automatic certificate generation, and load balancers. Comes with 15 hours of build time, 5 GB backup space, and 100 GB egress traffic. Ideal for development and smaller production workloads. - ### Serious Core - Serious Core + + -Highly available infrastructure with redundant core services, advanced load balancing, and SSL management. Features 150 hours of build time, 25 GB backup space, and 3 TB egress traffic. Built for production workloads requiring high reliability and scalability. - -For detailed information about both core types and their resource limits, visit our [pricing page](/features/pricing#project-plans). - -### Key Features - -- **Private Network**: All services in a project share a dedicated network and have access to each other's environment variables. -- **IPv6/IPv4**: Each project automatically gets an IPv6 address. An IPv4 address can be added at an extra cost. - -:::tip -Create separate projects for different environments (e.g., development, staging, production) or use one project shared among developers to save costs. -::: - -## Services & Containers +For detailed pricing information on both core types, visit our [pricing page](/features/pricing#project-core-plans). -### Services +## Services -Services are responsible for encapsulating your containers. -A project can host unlimited **services**, which can be: +Services encapsulate your containers and provide specific functionality. A project can contain unlimited services, each with its own purpose. -- **Fully managed**: Includes automatic scaling, routing, and repairs. -- **Partially managed**: Some management aspects are handled manually. +Services in Zerops can be: +- **Fully managed**: Zerops handles scaling, routing, and repairs automatically +- **Partially managed**: You maintain control over certain management aspects -### Containers +## Containers -Each service consists of one or more **containers**. Containers may vary by function or type, such as in **HA (High Availability) mode**, where a fully managed MariaDB service might have 5 containers (3 for databases, 2 for proxies). +Containers are the most granular level of the Zerops architecture. Each service consists of one or more containers that work together to deliver functionality. -- **Predefined Images**: Containers use Zerops' predefined images, ranging from **fully managed** (e.g., databases) to **customizable** (e.g., Ubuntu). -- **Public Accessibility**: Services can be exposed via Zerops subdomains, custom domains, or public ports on IPv6/IPv4 addresses. +In High Availability (HA) mode, a service may utilize multiple containers with different roles. For example, a fully managed MariaDB service might use 5 containers: 3 for the database and 2 for proxies. -**Refer to the technology section for detailed setup instructions.** +Containers in Zerops: +- Use predefined images ranging from fully managed databases to customizable Ubuntu environments +- Can be exposed to the public via Zerops subdomains, custom domains, or public ports (for applicable service types only) +- Operate within the service's resource constraints \ No newline at end of file diff --git a/apps/docs/content/features/payment.mdx b/apps/docs/content/features/payment.mdx new file mode 100644 index 00000000..5dd98410 --- /dev/null +++ b/apps/docs/content/features/payment.mdx @@ -0,0 +1,102 @@ +--- +title: Top-up & Billing +description: Understanding credits, payment methods, and automatic top-ups on Zerops. +--- + +import { Dropdown, DropdownItem } from '/src/components/Dropdown'; + +Zerops provides a transparent credit-based payment system that makes managing your account finances straightforward. You can easily add funds to your account through manual or automatic top-ups, track all your transactions, and download invoices for your records. + +This page explains how to manage your account balance, set up payment preferences, and access your complete billing history to help you maintain uninterrupted service while keeping your finances organized. + +## Manual Top-up + +Manual top-ups give you direct control over your account funding. To add credits to your account immediately: + +1. Navigate to **Credit & Spend Overview** in the Organization section of the main menu +2. Click on **Top up credit** and fill in the [billing information](#billing-information) +3. Enter your desired top-up amount (minimum $10 VAT excl.) +3. Complete payment using your saved or new payment method + +## Automatic Top-ups + +:::caution Beta version +Available only for customers who have previously made a manual top-up, have a saved payment method, and have provided billing information. +::: + +Automatic top-up ensures your projects continue running without interruption by replenishing your credits when they run low. + +### How Automatic Top-ups Work + +When enabled, Zerops monitors your credit balance and consumption rate to determine when and how much to top up, always respecting your configured limits. +Zerops initiates an automatic payment when: + +- Your remaining credits are sufficient for **less than 10 days** of operation at your **current consumption rate** +- You have automatic top-ups enabled +- Your [settings](#billing-information) allow for the payment amount + +:::note Important notes +- The charge amount is estimated based on your actual usage patterns, not maximum possible amounts +- Negative balances are included in the next auto top-up (within your maximum charge limit) +- The system checks your balance immediately after enabling auto top-ups, potentially triggering an immediate payment +- Auto top-up limits don't affect manual payments — add any amount manually regardless of automatic settings +::: + +### Configuration Options + +#### Period +The timeframe for which the maximum configured auto-charge amount is checked. Can be set to either: + +- **Weekly**: Maximum charge amount applies to a 7-day rolling window +- **Monthly**: Maximum charge amount applies to a 30-day rolling window + +#### Maximum Charge Amount +The maximum amount that can be auto-charged in the given period. This serves as a safeguard against unexpected costs due to traffic spikes or other unforeseen circumstances. + +- Minimum setting: $10 (matches the minimum manual payment) + + + +**Scenario:** Application with $20 weekly operating costs and initial manual top-up of $100 + +**Your Settings:** +- Period = Weekly +- Maximum charge amount = $150 + +**Expected behavior:** +- System adds approximately $20-30 when less than 10 days of credits remain (around day 35) +- Payments continue in small increments aligned with your usage patterns +- During traffic spikes, payments adjust to match higher consumption (up to $150 weekly limit) +- Payment amounts return to normal when usage decreases +
+
+
+ +## Billing Information + +You are required to enter billing details for all transactions (manual and automatic top-ups), with one exception: + +- EU-based users who are not VAT payers with transactions under $350 + +You can save your billing details by navigating to **Invoices & Billing Settings** in the Organization section of the main menu. + +## Invoices + +Zerops provides easy access to all invoices generated for manual and automatic top-ups within your organization. + +To view and manage your invoices navigate to **Invoices & Billing Settings** in the Organization section of the main menu. + +## Export Credit Consumption Records + +Zerops allows you to download monthly reports of your credit consumption history for analysis and record-keeping. + +1. Navigate to **Credit & Spend Overview** in the Organization section +2. Find the **Export Credit Consumption Records** section +3. Click on any month button to download that period's report + +Reports are available for the past 12 months in TXT format and include: +- Client information and reporting period +- Starting and ending balances +- Itemized resource charges by project and service +- Credit transactions (top-ups, refunds, promotional credits) +- Clear distinction between common (paid) and promotional credits \ No newline at end of file diff --git a/apps/docs/content/features/pipeline.mdx b/apps/docs/content/features/pipeline.mdx index 110998e0..bf8c9110 100644 --- a/apps/docs/content/features/pipeline.mdx +++ b/apps/docs/content/features/pipeline.mdx @@ -48,11 +48,11 @@ export const customizeRuntime = [ ## Configure the pipeline Zerops provides a customizable build and runtime environment for your application. -Start by adding a [zerops.yml](/zerops-yml/specification) file to the **root of your repository** and modify it to fit your application. +Start by adding a [zerops.yaml](/zerops-yaml/specification) file to the **root of your repository** and modify it to fit your application. Here is a basic example for a Node.js application: -```yml +```yaml zerops: - setup: api build: @@ -67,7 +67,7 @@ zerops: start: npm start ``` -The zerops.yml in your repository tells Zerops how to build and deploy your application. +The zerops.yaml in your repository tells Zerops how to build and deploy your application. Zerops will follow these instruction when the build & deploy pipeline is triggered for the Node.js service named `api`: @@ -78,9 +78,9 @@ Zerops will follow these instruction when the build & deploy pipeline is trigger 5. Cache the content of the `./node_modules` folder for the next build 6. Start your application using the `npm start` command -Learn more about all `zerops.yml` parameters for your runtime: +Learn more about all `zerops.yaml` parameters for your runtime: - + ## Trigger the pipeline @@ -113,7 +113,7 @@ To start a new build & deploy pipeline manually, use the [Zerops CLI](/reference The [zcli push](/references/cli/commands#push) command uploads your application code, builds and deploys your application in Zerops. -The command triggers the build pipeline defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the `--workingDir` flag. +The command triggers the build pipeline defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the `--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -134,8 +134,8 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` If you just want to [deploy](#deploy-phase) your already built application to Zerops, use the zcli service deploy command instead. @@ -181,8 +181,8 @@ The time limit for the whole build pipeline is **1 hour**. After 1 hour, Zerops ### Customize the build environment -Each runtime service in Zerops has a default build environment with a major version based on the [build.base](/zerops-yml/specification#base-) attribute in `zerops.yml`. -To install additional packages or tools add one or more [build.prepareCommands](/zerops-yml/specification#preparecommands-) commands to your `zerops.yml`. +Each runtime service in Zerops has a default build environment with a major version based on the [build.base](/zerops-yaml/specification#base-) attribute in `zerops.yaml`. +To install additional packages or tools add one or more [build.prepareCommands](/zerops-yaml/specification#preparecommands-) commands to your `zerops.yaml`. Learn more about what is included in the default build environment: @@ -227,7 +227,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/go/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/go/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -245,7 +245,7 @@ The old containers are then removed from the project balancer so they don't rece ### Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/nodejs/how-to/build-pipeline#start), configure a [readiness check](/nodejs/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/nodejs/how-to/build-pipeline#start), configure a [readiness check](/nodejs/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -266,12 +266,12 @@ Read the [runtime log](/nodejs/how-to/logs#runtime-log) to troubleshoot failed r ## Customize the runtime environment -Each runtime service in Zerops has a default runtime environment with a major version based on the [run.base](/zerops-yml/specification#base--1) attribute in `zerops.yml`. -To install additional packages or tools add one or more [run.prepareCommands](/zerops-yml/specification#preparecommands--1) commands to your `zerops.yml`. +Each runtime service in Zerops has a default runtime environment with a major version based on the [run.base](/zerops-yaml/specification#base--1) attribute in `zerops.yaml`. +To install additional packages or tools add one or more [run.prepareCommands](/zerops-yaml/specification#preparecommands--1) commands to your `zerops.yaml`. Learn more about what is included in the default runtime environment: - +

-When the first deploy with a defined [prepareCommands](/zerops-yml/specification#preparecommands--1) attribute is triggered, Zerops will +When the first deploy with a defined [prepareCommands](/zerops-yaml/specification#preparecommands--1) attribute is triggered, Zerops will 1. create a prepare runtime container 2. optionally: [copy selected folders or files from your build container] -3. run the [run.prepareCommands](/zerops-yml/specification#preparecommands--1) commands in the defined order +3. run the [run.prepareCommands](/zerops-yaml/specification#preparecommands--1) commands in the defined order Some packages or tools can take a long time to install. Therefore, Zerops caches your custom runtime environment after the installation of your custom packages or tools is completed. When the second or following deploy is triggered, Zerops will use the custom runtime cache from the previous deploy if following conditions are met: -1. Content of the [build.addToRunPrepare](/zerops-yml/specification#addtorunprepare-) and [run.prepareCommands](/zerops-yml/specification#preparecommands--1) attributes didn't change from the previous deploy +1. Content of the [build.addToRunPrepare](/zerops-yaml/specification#addtorunprepare-) and [run.prepareCommands](/zerops-yaml/specification#preparecommands--1) attributes didn't change from the previous deploy 2. The custom runtime cache wasn't invalidated in the Zerops GUI. When the custom runtime cache is used, Zerops doesn't create a prepare runtime container and executes the deployment of your application directly. @@ -317,8 +317,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -326,16 +326,16 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: ## Manage build and deploys @@ -374,7 +374,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/features/pricing.mdx b/apps/docs/content/features/pricing.mdx index 40e9a9b5..a52e05a3 100644 --- a/apps/docs/content/features/pricing.mdx +++ b/apps/docs/content/features/pricing.mdx @@ -1,197 +1,125 @@ --- -title: Pricing Plans & Usage -description: Detailed pricing description for deployment on zerops. +title: Pricing +description: Zerops pricing plans and resource costs --- -import PricingCalculator from "@site/src/components/PricingCalculator" -import { CheckCircleSolid } from "@medusajs/icons"; +Zerops provides a straightforward pricing structure based on your project type and resource usage. -:::tip Calculate Your Costs -Use our basic [pricing calculator](#pricing-calculator) below to estimate your monthly costs based on your specific needs. -::: +The total cost of deploying an application includes your project's **core package cost** + the **cost of the resources** of the services inside a project. Additional charges may apply for optional features such as dedicated IPv4, extra egress, object storage, extra backup space and extra build time. -## Understanding Projects - -A Zerops project represents a private network where services can communicate internally and share environment variables. You have the flexibility to: -- Host multiple small websites within a single project -- Create separate projects for different environments (production, development, local) of a larger application - -The total cost of deploying an application includes your project's **core package cost** + the **cost of the resources** of the services inside a project **(+ extra costs like Dedicated IPv4, Extra Egress, Object Storage, Backup Space, Build Time, etc)**. - -## Project Plans - -Every deployment on Zerops requires a project, which provides essential infrastructure and functionality. Projects are the foundation of your application, handling core services like load balancing, routing, and container orchestration. - -### Lightweight Plan -- **Cost:** Free -- **Best for:** Development, testing, and small-scale applications -- **Infrastructure:** Single container setup -- **Features Include:** - - Core services (L3 balancer with firewall, logger, statistics service) - - HTTP routing & load balancers with SSL termination and automatic certificate generation - - Proxy / load balancers for managed services - - Unique IPv6 IP address - - 15 hours of build time on performant build containers - - 5 GB space for automatic, encrypted backups - - 100 GB of egress -- **Limitations:** Shared IPv4 address, no high availability - -### Serious Plan -- **Cost:** $10 / 30 days -- **Best for:** Production and high-availability applications -- **Infrastructure:** Multi-container, highly available setup -- **Features Include:** - - Highly available core services (L3 balancer with firewall, logger, statistics service) - - Highly available HTTP routing & load balancer with SSL termination - - Proxy / load balancers for managed services - - Unique IPv6 IP address - - 150 hours of build time on performant build containers - - 25 GB space for automatic, encrypted backups - - 3 TB of egress -- **Benefits:** Ready for production workloads with automatic failover - -:::info Billing -Project costs are calculated based on actual usage. You're only charged for the time your project is active, calculated down to the minute. +:::note Fair Billing Model +Resources are allocated per service and billed by the minute, though credit is deducted hourly based on actual usage. You're only charged for what you use, calculated down to the minute. ::: -### Plan Comparison +Need to add credits to your account? Visit our [Payment & Top-up page](/features/payment) for instructions. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeaturesLightweight (Free)Serious ($10/30d)
Core ServicesSingle containerHighly available
HTTP Routing & Load BalancerSingle containerHighly available
Proxy / Load Balancer
IPv6 Address
Build Time15 hours150 hours
Backup Space5 GB25 GB
Egress100 GB3 TB
+## Project Core Plans + +Zerops offers two core types to match different needs and budgets. For detailed information on both core types, visit our [Project & Services Structure](/features/project-structure#project-core) page. -### Additional Costs +### Lightweight Core - Free +Best for development, testing, and smaller workloads with limited redundancy. -The following costs apply when you exceed the plan limits of a project: +### Serious Core - $10 / 30 days +Optimized for production workloads with high availability and comprehensive failover protection. - +## Resource Pricing + +Services in Zerops require computing resources that are billed separately from your project core. These resources are allocated per service and billed by the minute based on actual usage, with credits deducted hourly. + +
- + + - - + + + + + + + + - - + + + - - + + +
ResourceCostPriceDescription
Backup Space$0.50 per 5 GBShared CPU$0.60 per CPU / 30 daysEconomical option for most workloads with good performance
Dedicated CPU$6.00 per CPU / 30 daysReserved CPU cores for predictable performance
Build Time$0.50 per 15 hoursRAM$0.75 per 0.25 GB / 30 daysMemory allocated to your services
Egress Traffic$0.02 per 1 GBDisk Space$0.05 per 0.5 GB / 30 daysStorage space for your applications and data
+## Additional Services -## Service Resources - -Resources are allocated per service and billed by the minute, though credit is deducted hourly based on actual usage. - -### Resource Pricing +Enhance your deployment with these optional services to meet specific requirements for networking, storage, and data transfer. - +
- - + + + - - + + + - - - - - - - - - - + + +
ResourceCostServicePriceDescription
Shared CPU$0.60 per CPU / 30 daysDedicated IPv4$3.00 per 30 daysExclusive IPv4 address for your project (instead of shared)
Dedicated CPU$6.00 per CPU / 30 days
RAM$0.75 per 0.25 GB / 30 days
Disk space$0.05 per 0.5 GB / 30 daysObject Storage$0.01 per GB / 30 daysScalable storage for files, backups, and static assets
-### Additional Feature Costs +## Overage Costs -The following costs may apply if you opt for additional features: +When you exceed the resources included in your project core plan, the following charges apply: - +
- - + + + + + + + + - - + + + - - + + +
FeatureCostItemPriceDescription
Extra Egress$0.02 per GBData transfer out of your project beyond plan limits
Dedicated IPv4 address$3.00 / 30 daysExtra Backup Space$0.50 per 5 GBAdditional storage for automatic, encrypted backups
Object Storage$0.01 / GB per 30 daysExtra Build Time$0.50 per 15 hoursAdditional time for building and deploying applications
-:::info Object Storage -External storage solution ideal for storing files, backups, and static assets outside your main storage. Perfect for scalable content delivery and backup strategies. -::: - ## Pricing Calculator - +Use our pricing calculator to estimate your monthly costs based on your specific needs: + +import PricingCalculator from "@site/src/components/PricingCalculator" + \ No newline at end of file diff --git a/apps/docs/content/frameworks/laravel.mdx b/apps/docs/content/frameworks/laravel.mdx index dd446290..d3b06792 100644 --- a/apps/docs/content/frameworks/laravel.mdx +++ b/apps/docs/content/frameworks/laravel.mdx @@ -112,7 +112,7 @@ services: ### Zero-Downtime Deployments Deploy with confidence using our battle-tested pipeline: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -167,7 +167,7 @@ zcli vpn up ``` and select your project. Get your database credentials from the service's **Access details** in your project dashboard and update your local `.env`. See PostgreSQL example below: -```yml +```yaml DB_CONNECTION=pgsql DB_HOST=db.zerops # References the service's hostname DB_PORT=5432 diff --git a/apps/docs/content/frameworks/laravel/cron.mdx b/apps/docs/content/frameworks/laravel/cron.mdx index 55e408cf..35701839 100644 --- a/apps/docs/content/frameworks/laravel/cron.mdx +++ b/apps/docs/content/frameworks/laravel/cron.mdx @@ -3,11 +3,11 @@ title: Scheduled Tasks and CRON Jobs description: Learn how to configure and manage scheduled tasks in your Zerops Laravel applications using CRON --- -Zerops provides a convenient way for managing scheduled tasks through CRON jobs, configured directly in your `zerops.yml` file. These tasks can be scheduled to run on single or multiple containers with granular timing control. +Zerops provides a convenient way for managing scheduled tasks through CRON jobs, configured directly in your `zerops.yaml` file. These tasks can be scheduled to run on single or multiple containers with granular timing control. ## Basic Configuration -Cron jobs are defined in the `run.crontab` section of your `zerops.yml`. Each job requires two essential parameters: +Cron jobs are defined in the `run.crontab` section of your `zerops.yaml`. Each job requires two essential parameters: - **command**: The command to execute - **timing**: The CRON schedule expression @@ -21,7 +21,7 @@ run: This example logs the current timestamp every hour. :::tip Detailed Configuration -For comprehensive configuration options and examples, refer to our [CRON configuration guide](/zerops-yml/cron). +For comprehensive configuration options and examples, refer to our [CRON configuration guide](/zerops-yaml/cron). ::: ## Common Implementation Patterns diff --git a/apps/docs/content/frameworks/laravel/env-variables.mdx b/apps/docs/content/frameworks/laravel/env-variables.mdx index 0cc0ccb3..569bda03 100644 --- a/apps/docs/content/frameworks/laravel/env-variables.mdx +++ b/apps/docs/content/frameworks/laravel/env-variables.mdx @@ -18,7 +18,7 @@ Some Laravel variables contain sensitive information that should never be expose * Defining them in a configuration file when importing a project or service (allows [automatic generation](#automatic-generation-during-import)) When importing a project or service, you can define secret variables directly in your import configuration: -```yml +```yaml services: - hostname: app type: php-nginx@8.4 @@ -31,8 +31,8 @@ Secret variables can be updated at any time without requiring application redepl ::: #### Automatic Generation During Import -If you prefer to have certain secrets **generated automatically**, you can use the [yaml preprocessor](/references/importyml/pre-processor). This is optional and only available during import: -```yml +If you prefer to have certain secrets **generated automatically**, you can use the [yaml preprocessor](/references/import-yaml/pre-processor). This is optional and only available during import: +```yaml #yamlPreprocessor=on services: - hostname: app @@ -42,16 +42,16 @@ services: ``` ### Runtime Variables -These variables, defined in `zerops.yml`, are typically environment-specific but not sensitive. +These variables, defined in `zerops.yaml`, are typically environment-specific but not sensitive. :::note Changes to runtime variables require application redeployment to take effect. ::: -Below is a complete working example of `envVariables` in `zerops.yml` (sourced from [Laravel Jetstream recipe](https://github.com/zeropsio/recipe-laravel-jetstream/blob/main/zerops.yml)): +Below is a complete working example of `envVariables` in `zerops.yaml` (sourced from [Laravel Jetstream recipe](https://github.com/zeropsio/recipe-laravel-jetstream/blob/main/zerops.yaml)): -```yml title="zerops.yml" +```yaml title="zerops.yaml" run: envVariables: APP_LOCALE: en @@ -118,7 +118,7 @@ Let's look at variable configurations that may need additional context and where #### Application Configuration Core application settings that define your Laravel app's identity, URL structure, and environment parameters. Reference environment variables from the same service. -```yml +```yaml APP_URL: ${zeropsSubdomain} # zeropsSubdomain variable is system generated ASSET_URL: ${APP_URL} VITE_APP_NAME: ${APP_NAME} # APP_NAME variable was created during import (envSecrets) @@ -129,7 +129,7 @@ Essential database connection parameters that securely reference your PostgreSQL It is safe to store `DB_PASSWORD` in `envVariables` by reference as it does not contain the sensitive value itself. -```yml +```yaml DB_HOST: db DB_PASSWORD: ${db_password} DB_USERNAME: ${db_user} @@ -138,7 +138,7 @@ Read more about [database management](/frameworks/laravel/migrations) for Larave #### Storage Configuration S3-compatible object storage settings that enable efficient file handling and asset management in your Laravel application. Reference variables of Object storage service called `storage`. -```yml +```yaml AWS_ACCESS_KEY_ID: ${storage_accessKeyId} AWS_REGION: us-east-1 AWS_BUCKET: ${storage_bucketName} @@ -172,9 +172,9 @@ REDIS_HOST: valkey Learn how to properly [configure cache, queue & session management](/frameworks/laravel/redis) for Laravel in Zerops. :::tip -For automatic execution with each deploy, add these commands to the `initCommands` section of your `zerops.yml` file. +For automatic execution with each deploy, add these commands to the `initCommands` section of your `zerops.yaml` file. -```yml title="zerops.yml" +```yaml title="zerops.yaml" initCommands: - php artisan view:cache - php artisan config:cache diff --git a/apps/docs/content/frameworks/laravel/faq.mdx b/apps/docs/content/frameworks/laravel/faq.mdx index b0839c08..3990c6b4 100644 --- a/apps/docs/content/frameworks/laravel/faq.mdx +++ b/apps/docs/content/frameworks/laravel/faq.mdx @@ -7,7 +7,7 @@ import { FAQ, FAQItem } from '/src/components/Faq'; - You can set environment variables through the Zerops dashboard or in your `zerops.yml` file under the `run.envVariables` section: + You can set environment variables through the Zerops dashboard or in your `zerops.yaml` file under the `run.envVariables` section: ```yaml zerops: @@ -21,7 +21,7 @@ import { FAQ, FAQItem } from '/src/components/Faq'; - You can run migrations during initialization by adding the command to your `zerops.yml`: + You can run migrations during initialization by adding the command to your `zerops.yaml`: ```yaml zerops: @@ -69,7 +69,7 @@ import { FAQ, FAQItem } from '/src/components/Faq'; - Yes, you can configure cron jobs in your `zerops.yml`: + Yes, you can configure cron jobs in your `zerops.yaml`: ```yaml zerops: diff --git a/apps/docs/content/frameworks/laravel/introduction.mdx b/apps/docs/content/frameworks/laravel/introduction.mdx index 703b07f9..370f01c7 100644 --- a/apps/docs/content/frameworks/laravel/introduction.mdx +++ b/apps/docs/content/frameworks/laravel/introduction.mdx @@ -72,9 +72,9 @@ Learn more about infrastructure features in documentation section [Project & Ser The project configuration defines your infrastructure using YAML. This approach provides clear, reproducible configuration that can be version controlled. Later in this tutorial, we'll also show how to achieve the same using the GUI. -Create a new file in your project root called `zerops-project-import.yml` with the following content: +Create a new file in your project root called `zerops-project-import.yaml` with the following content: -```yaml title="zerops-project-import.yml" +```yaml title="zerops-project-import.yaml" #yamlPreprocessor=on project: name: laravel-zerops @@ -94,7 +94,7 @@ services: ``` :::tip Generate secrets -The `#yamlPreprocessor=on` directive enables Zerops' [YAML preprocessing](/references/importyml/pre-processor) for this import file, allowing us to use dynamic values and built-in functions like `generateRandomString`. +The `#yamlPreprocessor=on` directive enables Zerops' [YAML preprocessing](/references/import-yaml/pre-processor) for this import file, allowing us to use dynamic values and built-in functions like `generateRandomString`. ::: #### Automatic Resource Management @@ -112,7 +112,7 @@ Through Zerops VPN, you can securely access this database setup directly from yo #### Import the Project Now create the project by running: ```bash -zcli project project-import zerops-project-import.yml +zcli project project-import zerops-project-import.yaml ``` ### Alternative: Creating Project via GUI @@ -137,9 +137,9 @@ Then add the required services: ## Step 3 — Configuring Your Application -The [deployment configuration](/zerops-yml/specification) controls how your application builds and runs. Create a `zerops.yml` file in your project root: +The [deployment configuration](/zerops-yaml/specification) controls how your application builds and runs. Create a `zerops.yaml` file in your project root: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -251,7 +251,7 @@ zcli push You'll see the deployment progress with timing for each step: - Initializing build container -- Running build commands from zerops.yml +- Running build commands from zerops.yaml - Creating app version and upgrading PHP+Apache service The entire process usually takes less than a minute to complete. diff --git a/apps/docs/content/frameworks/laravel/logs.mdx b/apps/docs/content/frameworks/laravel/logs.mdx index e9f8c359..dd7c3f3b 100644 --- a/apps/docs/content/frameworks/laravel/logs.mdx +++ b/apps/docs/content/frameworks/laravel/logs.mdx @@ -22,7 +22,7 @@ Laravel logging in Zerops is configured through environment variables, such as: - `LOG_STACK`: When using the stack channel, defines which channels to include - `LOG_LEVEL`: Sets the minimum log level to capture (e.g., 'debug', 'info', 'error') -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app run: @@ -47,7 +47,7 @@ Laravel supports several logging channels out of the box: To use multiple logging channels, [configure](#laravel-configuration) the stack channel: -```yml +```yaml LOG_CHANNEL: stack LOG_STACK: syslog,daily ``` diff --git a/apps/docs/content/frameworks/laravel/migrations.mdx b/apps/docs/content/frameworks/laravel/migrations.mdx index a153f447..01761bce 100644 --- a/apps/docs/content/frameworks/laravel/migrations.mdx +++ b/apps/docs/content/frameworks/laravel/migrations.mdx @@ -34,9 +34,9 @@ Before running migrations in production, it's strongly recommended to back up yo ### Automatic Migrations -The most reliable way to manage migrations in your deployment pipeline is through automatic execution. Configure this in your `zerops.yml`: +The most reliable way to manage migrations in your deployment pipeline is through automatic execution. Configure this in your `zerops.yaml`: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app run: @@ -228,7 +228,7 @@ public function test_migrations_can_be_run() Common migration issues and their solutions: -1. **Migration Timeout** Configure longer timeout in [zerops.yml](/zerops-yml/specification): +1. **Migration Timeout** Configure longer timeout in [zerops.yaml](/zerops-yaml/specification): ```yaml zerops: - setup: app diff --git a/apps/docs/content/frameworks/laravel/recipes/filament-devel.mdx b/apps/docs/content/frameworks/laravel/recipes/filament-devel.mdx index 067eee32..a1e0e626 100644 --- a/apps/docs/content/frameworks/laravel/recipes/filament-devel.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/filament-devel.mdx @@ -9,7 +9,7 @@ import IconFilament from '@theme/Icon/Filament'; [Filament](https://filamentphp.com/) is a collection of tools for rapidly building beautiful TALL stack (Tailwind, Alpine, Laravel, Livewire) applications. It provides a powerful admin panel, form builder, table builder, and other components that help you build feature-rich web applications with minimal effort. -This recipe demonstrates how to effectively integrate Laravel Filament applications with Zerops, providing a fully production-capable setup. While this setup is built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/pricing#understanding-projects) core package, optimizing costs without compromising functionality. +This recipe demonstrates how to effectively integrate Laravel Filament applications with Zerops, providing a fully production-capable setup. While this setup is built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/infrastructure#project-core) core package, optimizing costs without compromising functionality.
Set up a Laravel environment with Filament's admin panel and TALL stack in a development-optimized configuration.
@@ -32,7 +32,7 @@ For production environments with high-availability services and enterprise-grade ## Application Configuration -The app has been set up to utilize PostgreSQL service and includes Filament's admin panel and components. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service and includes Filament's admin panel and components. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/filament-local.mdx b/apps/docs/content/frameworks/laravel/recipes/filament-local.mdx index 6beef01f..65ef2d1c 100644 --- a/apps/docs/content/frameworks/laravel/recipes/filament-local.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/filament-local.mdx @@ -9,7 +9,7 @@ import IconFilament from '@theme/Icon/Filament'; [Filament](https://filamentphp.com/) is a collection of tools for rapidly building beautiful TALL stack (Tailwind, Alpine, Laravel, Livewire) applications. It provides a powerful admin panel, form builder, table builder, and other components that help you build feature-rich web applications with minimal effort. -This recipe provides a comprehensive Filament setup with PostgreSQL database, Redis-compatible store, object storage, and automated deployment pipeline, designed for **local development** This recipe provides a streamlined Laravel setup with PostgreSQL database and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/pricing#understanding-projects) core package. This means: +This recipe provides a comprehensive Filament setup with PostgreSQL database, Redis-compatible store, object storage, and automated deployment pipeline, designed for **local development** This recipe provides a streamlined Laravel setup with PostgreSQL database and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/infrastructure#project-core) core package. This means: - Resources are optimized for development workloads - Services can be started/stopped as needed during active development - Cost-effective configuration suitable for development and testing @@ -93,7 +93,7 @@ The app has been set up to utilize: - Built-in object storage for Laravel and Filament-specific filesystem operations - Mailpit as a mock SMTP server for development purposes -Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/filament-prod.mdx b/apps/docs/content/frameworks/laravel/recipes/filament-prod.mdx index e81795dc..10af2ec5 100644 --- a/apps/docs/content/frameworks/laravel/recipes/filament-prod.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/filament-prod.mdx @@ -9,7 +9,7 @@ import IconFilament from '@theme/Icon/Filament'; [Filament](https://filamentphp.com/) is a collection of tools for rapidly building beautiful TALL stack (Tailwind, Alpine, Laravel, Livewire) applications. It provides a powerful admin panel, form builder, table builder, and other components that help you build feature-rich web applications with minimal effort. -This recipe demonstrates how to effectively integrate Laravel Filament applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/pricing#understanding-projects) core package, ensuring enterprise-grade reliability and robust performance. +This recipe demonstrates how to effectively integrate Laravel Filament applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/infrastructure#project-core) core package, ensuring enterprise-grade reliability and robust performance.
Set up a production-ready Laravel environment with Filament's admin panel and TALL stack, backed by enterprise-grade reliability.
@@ -32,7 +32,7 @@ For development environments with cost-efficient resource allocation, consider d ## Application Configuration -The app has been set up to utilize PostgreSQL service and includes Filament's admin panel and components. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service and includes Filament's admin panel and components. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/jetstream-devel.mdx b/apps/docs/content/frameworks/laravel/recipes/jetstream-devel.mdx index d99fee58..b2dadecc 100644 --- a/apps/docs/content/frameworks/laravel/recipes/jetstream-devel.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/jetstream-devel.mdx @@ -9,7 +9,7 @@ import IconLaravelJetstream from '@theme/Icon/LaravelJetstream'; Laravel Jetstream provides a polished application scaffolding for Laravel, featuring authentication, registration, email verification, two-factor authentication, session management, API support via Laravel Sanctum, and optional team management features. It serves as the perfect starting point for your next Laravel application. -This recipe demonstrates how to effectively integrate Laravel Jetstream applications with Zerops, providing a fully production-capable setup. While this setup is built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/pricing#understanding-projects) core package, optimizing costs without compromising functionality. +This recipe demonstrates how to effectively integrate Laravel Jetstream applications with Zerops, providing a fully production-capable setup. While this setup is built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/infrastructure#project-core) core package, optimizing costs without compromising functionality.
Set up a Laravel environment with Jetstream's team features and authentication system in a development-optimized configuration.
@@ -32,7 +32,7 @@ For production environments with high-availability services and enterprise-grade ## Application Configuration -The app has been set up to utilize PostgreSQL service and includes Jetstream's authentication scaffolding. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service and includes Jetstream's authentication scaffolding. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/jetstream-local.mdx b/apps/docs/content/frameworks/laravel/recipes/jetstream-local.mdx index 2fdc88cc..8dd71528 100644 --- a/apps/docs/content/frameworks/laravel/recipes/jetstream-local.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/jetstream-local.mdx @@ -9,7 +9,7 @@ import IconLaravelJetstream from '@theme/Icon/LaravelJetstream'; Laravel Jetstream provides a polished application scaffolding for Laravel, featuring authentication, registration, email verification, two-factor authentication, session management, API support via Laravel Sanctum, and optional team management features. It serves as the perfect starting point for your next Laravel application. -This recipe provides a comprehensive Laravel Jetstream setup with PostgreSQL database, Redis-compatible store, object storage, and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/pricing#understanding-projects) core package. This means: +This recipe provides a comprehensive Laravel Jetstream setup with PostgreSQL database, Redis-compatible store, object storage, and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/infrastructure#project-core) core package. This means: - Resources are optimized for development workloads - Services can be started/stopped as needed during active development - Cost-effective configuration suitable for development and testing @@ -93,7 +93,7 @@ The app has been set up to utilize: - Built-in S3 object storage for Laravel and Jetstream-specific filesystem operations - Mailpit as a mock SMTP server for development purposes -Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/jetstream-prod.mdx b/apps/docs/content/frameworks/laravel/recipes/jetstream-prod.mdx index 67ae29a3..b0e1926a 100644 --- a/apps/docs/content/frameworks/laravel/recipes/jetstream-prod.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/jetstream-prod.mdx @@ -9,7 +9,7 @@ import IconLaravelJetstream from '@theme/Icon/LaravelJetstream'; Laravel Jetstream provides a polished application scaffolding for Laravel, featuring authentication, registration, email verification, two-factor authentication, session management, API support via Laravel Sanctum, and optional team management features. It serves as the perfect starting point for your next Laravel application. -This recipe demonstrates how to effectively integrate Laravel Jetstream applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/pricing#understanding-projects) core package, ensuring enterprise-grade reliability and robust performance. +This recipe demonstrates how to effectively integrate Laravel Jetstream applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/infrastructure#project-core) core package, ensuring enterprise-grade reliability and robust performance.
Set up a production-ready Laravel environment with Jetstream's team features and authentication system, backed by high-availability services.
@@ -32,7 +32,7 @@ For development environments with cost-efficient resource allocation, consider d ## Application Configuration -The app has been set up to utilize PostgreSQL service and includes Jetstream's authentication scaffolding. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service and includes Jetstream's authentication scaffolding. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/minimal-devel.mdx b/apps/docs/content/frameworks/laravel/recipes/minimal-devel.mdx index 5002461e..c15d35aa 100644 --- a/apps/docs/content/frameworks/laravel/recipes/minimal-devel.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/minimal-devel.mdx @@ -7,7 +7,7 @@ import DeployButton from '@site/src/components/DeployButton'; import CustomCard from '@site/src/components/CustomCard'; import IconLaravel from '@theme/Icon/Laravel'; -This recipe demonstrates how to effectively integrate Laravel applications with Zerops, providing a fully production-capable setup. While it's built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/pricing#understanding-projects) core package, optimizing costs without compromising functionality. +This recipe demonstrates how to effectively integrate Laravel applications with Zerops, providing a fully production-capable setup. While it's built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/infrastructure#project-core) core package, optimizing costs without compromising functionality.
Set up a streamlined Laravel environment with development-optimized resources and configurations.
@@ -29,7 +29,7 @@ For production environments with high-availability services and enterprise-grade ## Application Configuration -The app has been set up to utilize PostgreSQL service. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/minimal-local.mdx b/apps/docs/content/frameworks/laravel/recipes/minimal-local.mdx index 08f85a81..17027c39 100644 --- a/apps/docs/content/frameworks/laravel/recipes/minimal-local.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/minimal-local.mdx @@ -7,7 +7,7 @@ import DeployButton from '@site/src/components/DeployButton'; import CustomCard from '@site/src/components/CustomCard'; import IconLaravel from '@theme/Icon/Laravel'; -This recipe provides a streamlined Laravel setup with PostgreSQL database and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/pricing#understanding-projects) core package. This means: +This recipe provides a streamlined Laravel setup with PostgreSQL database and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/infrastructure#project-core) core package. This means: - Resources are optimized for development workloads - Services can be started/stopped as needed during active development - Cost-effective configuration suitable for development and testing @@ -81,7 +81,7 @@ Your local environment is now connected to the Zerops infrastructure, utilizing ## Application Configuration -Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/minimal-prod.mdx b/apps/docs/content/frameworks/laravel/recipes/minimal-prod.mdx index feb03f13..2bc085df 100644 --- a/apps/docs/content/frameworks/laravel/recipes/minimal-prod.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/minimal-prod.mdx @@ -7,7 +7,7 @@ import DeployButton from '@site/src/components/DeployButton'; import CustomCard from '@site/src/components/CustomCard'; import IconLaravel from '@theme/Icon/Laravel'; -This recipe demonstrates how to effectively integrate Laravel applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/pricing#understanding-projects) core package, ensuring enterprise-grade reliability and robust performance. +This recipe demonstrates how to effectively integrate Laravel applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/infrastructure#project-core) core package, ensuring enterprise-grade reliability and robust performance.
Set up a production-ready Laravel environment with high-availability services and enterprise-grade reliability.
@@ -29,7 +29,7 @@ For development environments with cost-efficient resource allocation, consider d ## Application Configuration -The app has been set up to utilize PostgreSQL service. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/twill-devel.mdx b/apps/docs/content/frameworks/laravel/recipes/twill-devel.mdx index aff12e3e..8ab26184 100644 --- a/apps/docs/content/frameworks/laravel/recipes/twill-devel.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/twill-devel.mdx @@ -9,7 +9,7 @@ import IconTwill from '@theme/Icon/Twill'; [Twill](https://twillcms.com/) is a flexible CMS toolkit for Laravel that helps you rapidly create a custom administration interface for your application. It provides a robust set of features including content management, media library, block editor, and a powerful publishing workflow system. -This recipe demonstrates how to effectively integrate Laravel Twill applications with Zerops, providing a fully production-capable setup. While this setup is built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/pricing#understanding-projects) core package, optimizing costs without compromising functionality. +This recipe demonstrates how to effectively integrate Laravel Twill applications with Zerops, providing a fully production-capable setup. While this setup is built for professional deployment, we call it a **development environment** due to its streamlined resource allocation and use of the [Lightweight](/features/infrastructure#project-core) core package, optimizing costs without compromising functionality.
Set up a Laravel environment with Twill's CMS framework in a development-optimized configuration.
@@ -32,7 +32,7 @@ For production environments with high-availability services and enterprise-grade ## Application Configuration -The app has been set up to utilize PostgreSQL service and includes Twill's CMS functionality. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service and includes Twill's CMS functionality. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/twill-local.mdx b/apps/docs/content/frameworks/laravel/recipes/twill-local.mdx index 9dbd5e74..e11fed1b 100644 --- a/apps/docs/content/frameworks/laravel/recipes/twill-local.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/twill-local.mdx @@ -9,7 +9,7 @@ import IconTwill from '@theme/Icon/Twill'; [Twill](https://twillcms.com/) is a flexible CMS toolkit for Laravel that helps you rapidly create a custom administration interface for your application. It provides a robust set of features including content management, media library, block editor, and a powerful publishing workflow system. -This recipe provides a comprehensive Twill CMS setup with PostgreSQL database, Redis-compatible store, object storage, and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/pricing#understanding-projects) core package. This means: +This recipe provides a comprehensive Twill CMS setup with PostgreSQL database, Redis-compatible store, object storage, and automated deployment pipeline, designed for **local development** with cost-efficient resource allocation and the [Lightweight](/features/infrastructure#project-core) core package. This means: - Resources are optimized for development workloads - Services can be started/stopped as needed during active development - Cost-effective configuration suitable for development and testing @@ -93,7 +93,7 @@ The app has been set up to utilize: - Built-in object storage for Laravel and Twill-specific filesystem operations - Mailpit as a mock SMTP server for development purposes -Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/recipes/twill-prod.mdx b/apps/docs/content/frameworks/laravel/recipes/twill-prod.mdx index 716d4a0d..29338710 100644 --- a/apps/docs/content/frameworks/laravel/recipes/twill-prod.mdx +++ b/apps/docs/content/frameworks/laravel/recipes/twill-prod.mdx @@ -9,7 +9,7 @@ import IconTwill from '@theme/Icon/Twill'; [Twill](https://twillcms.com/) is a flexible CMS toolkit for Laravel that helps you rapidly create a custom administration interface for your application. It provides a robust set of features including content management, media library, block editor, and a powerful publishing workflow system. -This recipe demonstrates how to effectively integrate Laravel Twill applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/pricing#understanding-projects) core package, ensuring enterprise-grade reliability and robust performance. +This recipe demonstrates how to effectively integrate Laravel Twill applications with Zerops, providing a fully production-grade setup. It's built as a **production environment** with high-availability configuration and uses the [Serious](/features/infrastructure#project-core) core package, ensuring enterprise-grade reliability and robust performance.
Set up a production-ready Laravel environment with Twill's CMS framework, backed by high-availability services and enterprise-grade reliability.
@@ -32,7 +32,7 @@ For development environments with cost-efficient resource allocation, consider d ## Application Configuration -The app has been set up to utilize PostgreSQL service and includes Twill's CMS functionality. Your application's deployment process is managed through [zerops.yml](/zerops-yml/specification), which handles: +The app has been set up to utilize PostgreSQL service and includes Twill's CMS functionality. Your application's deployment process is managed through [zerops.yaml](/zerops-yaml/specification), which handles: - Database migrations - Cache management diff --git a/apps/docs/content/frameworks/laravel/redis.mdx b/apps/docs/content/frameworks/laravel/redis.mdx index 10cb96e0..cfe1fc58 100644 --- a/apps/docs/content/frameworks/laravel/redis.mdx +++ b/apps/docs/content/frameworks/laravel/redis.mdx @@ -13,7 +13,7 @@ Zerops provides [Valkey](https://valkey.io), an open-source Redis alternative th To use Valkey (Redis) features with Laravel, first either import Valkey as a service to your Zerops project -```yml +```yaml services: - hostname: valkey type: valkey@7.2 @@ -42,7 +42,7 @@ For production environments, we recommend using `HA` mode. This configuration: Environment variables control how your Laravel application connects to and uses Redis. Below are the core settings grouped by functionality: -```yml +```yaml zerops: - setup: app build: diff --git a/apps/docs/content/frameworks/laravel/smtp.mdx b/apps/docs/content/frameworks/laravel/smtp.mdx index 7b7205da..c8d0a099 100644 --- a/apps/docs/content/frameworks/laravel/smtp.mdx +++ b/apps/docs/content/frameworks/laravel/smtp.mdx @@ -86,7 +86,7 @@ Laravel supports multiple mail transport options: Configure your Laravel service with the required mail variables. The following example shows SMTP configuration, but most settings are common across different mail transports: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app run: @@ -179,7 +179,7 @@ Mail::to($user->email)->queue(new WelcomeEmail($user)); For production environments, it's recommended to use a queue system for sending emails to prevent request timeouts and improve application performance. Zerops provides Valkey, an open-source Redis-compatible service that's perfect for handling email queues. First, add the Valkey service to your project: -```yml +```yaml services: - hostname: redis type: valkey@7.2 @@ -187,7 +187,7 @@ services: ``` Configure your Laravel service to use Redis for queues: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app run: @@ -238,7 +238,7 @@ For local development and testing, Zerops provides a Mailpit service that allows Add this to your project import configuration or import the service separately: -```yml +```yaml services: - hostname: mailpit type: go@1 @@ -250,7 +250,7 @@ See [Mailpit recipe repo](https://github.com/zeropsio/recipe-mailpit) for refere Configure your Laravel service to use Mailpit for development: -```yml +```yaml zerops: - setup: app run: diff --git a/apps/docs/content/gleam/how-to/build-pipeline.mdx b/apps/docs/content/gleam/how-to/build-pipeline.mdx index 7d3862cb..273bded5 100644 --- a/apps/docs/content/gleam/how-to/build-pipeline.mdx +++ b/apps/docs/content/gleam/how-to/build-pipeline.mdx @@ -8,11 +8,11 @@ import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; Zerops provides a customizable build and runtime environment for your Gleam application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -77,9 +77,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -104,7 +104,7 @@ Following options are available for Gleam builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -121,12 +121,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -140,7 +140,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customise your build environment use the [prepareCommands](/gleam/how-to/build-pipeline#preparecommands) attribute. @@ -185,7 +185,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -226,7 +226,7 @@ You can configure your prepare commands to be run in a single shell instance or _REQUIRED._ Defines build commands. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -254,7 +254,7 @@ Before the build commands are triggered the build container contains: Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. -```yml +```yaml buildCommands: - | npm i @@ -265,7 +265,7 @@ buildCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. -```yml +```yaml buildCommands: - npm i - npm run build @@ -275,7 +275,7 @@ buildCommands: If any command fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/gleam/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the --verbose option. -```yml +```yaml buildCommands: - npm i --verbose - npm run build @@ -287,7 +287,7 @@ If the command ends successfully, it returns the exit code 0 and Zerops triggers _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -298,7 +298,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -306,7 +306,7 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - dist - package.json @@ -314,13 +314,13 @@ deployFiles: Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -332,19 +332,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` @@ -363,7 +363,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -390,7 +390,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -408,7 +408,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -439,7 +439,7 @@ Following options are available for Gleam runtimes: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -462,12 +462,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -487,7 +487,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customise your build environment use the `prepareCommands` attribute. @@ -537,7 +537,7 @@ _OPTIONAL._ Customises the Gleam runtime environment by installing additional de additional packages or tools add one or more prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -591,14 +591,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -610,13 +610,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -656,7 +656,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -677,7 +677,7 @@ Read more about [environment variables](/gleam/how-to/env-variables) in Zerops. _REQUIRED._ Defines the start command for your Gleam application. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -713,7 +713,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -746,7 +746,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -775,7 +775,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -814,7 +814,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -847,7 +847,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/gleam/how-to/build-process.mdx b/apps/docs/content/gleam/how-to/build-process.mdx index 83b8cb75..29053a33 100644 --- a/apps/docs/content/gleam/how-to/build-process.mdx +++ b/apps/docs/content/gleam/how-to/build-process.mdx @@ -54,11 +54,11 @@ The build cancellation is available before the build pipeline is finished. When The default Gleam build environment contains: - {data.alpine.default} -- selected version of Gleam defined in `zerops.yml` [build.base](/gleam/how-to/build-pipeline#base) parameter +- selected version of Gleam defined in `zerops.yaml` [build.base](/gleam/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - `npm`, `yarn`, `git` and `npx` tools -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/gleam/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/gleam/how-to/build-pipeline#preparecommands) commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/gleam/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/gleam/how-to/build-pipeline#preparecommands) commands to your `zerops.yaml`. :::info The application code is available in the `/var/www` folder in your build container before the prepare commands are triggered. This allows you to use any file from your application code in your prepare commands (e.g. a configuration file). @@ -104,7 +104,7 @@ This will force Zerops to run the next build clean, including all prepare comman If any [build command](/gleam/how-to/build-pipeline#buildcommands) fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/gleam/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the `--verbose` option. -```yml +```yaml buildCommands: - npm i --verbose - npm run build diff --git a/apps/docs/content/gleam/how-to/create.mdx b/apps/docs/content/gleam/how-to/create.mdx index aeb4a4d4..00c17eb3 100644 --- a/apps/docs/content/gleam/how-to/create.mdx +++ b/apps/docs/content/gleam/how-to/create.mdx @@ -158,7 +158,7 @@ Zerops uses a YAML format to describe the project infrastructure. #### Basic example: -Create a directory called `my-project`. Inside the `my-project` directory, create a `description.yml` file with the following content: +Create a directory called `my-project`. Inside the `my-project` directory, create a `description.yaml` file with the following content: ```yaml # basic project data project: @@ -180,7 +180,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Gleam version 20 service with default [auto scaling](/gleam/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/gleam/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Gleam version 20 service with default [auto scaling](/gleam/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/gleam/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -189,7 +189,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -238,7 +238,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a Gleam service and a [PostgreSQL](/postgresql/overview) service. -Gleam service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yml](/gleam/how-to/build-pipeline#ports). Gleam service will run on version 20 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +Gleam service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yaml](/gleam/how-to/build-pipeline#ports). Gleam service will run on version 20 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -247,7 +247,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -257,7 +257,7 @@ The `project:` section is required. Only one project can be defined. | **description** | **Optional.** Description of the new project. | Maximum 255 characters. | | **tags** | **Optional.** One or more string tags. Tags do not have a functional meaning, they only provide better orientation in projects. | -At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Gleam and PostgreSQL services but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Gleam and PostgreSQL services but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -287,7 +287,7 @@ At least one service in `services:` section is required. You can create a projec @@ -369,9 +369,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version.
- See what [Gleam service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [Gleam service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -384,11 +384,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -404,7 +404,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -434,9 +434,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -450,4 +450,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/gleam/how-to/customize-runtime.mdx b/apps/docs/content/gleam/how-to/customize-runtime.mdx index dc46a23f..76426473 100644 --- a/apps/docs/content/gleam/how-to/customize-runtime.mdx +++ b/apps/docs/content/gleam/how-to/customize-runtime.mdx @@ -24,7 +24,7 @@ The default Gleam runtime environment contains: , Zerops command line tool - `npm`, `yarn`, `git` and `npx` tools -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/gleam/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more `run.prepareCommands` commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/gleam/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more `run.prepareCommands` commands to your `zerops.yaml`. When the first deploy with a defined `prepareCommands` attribute is triggered, Zerops will diff --git a/apps/docs/content/gleam/how-to/deploy-process.mdx b/apps/docs/content/gleam/how-to/deploy-process.mdx index d29e8239..b36b9f3e 100644 --- a/apps/docs/content/gleam/how-to/deploy-process.mdx +++ b/apps/docs/content/gleam/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/gleam/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/gleam/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/gleam/how-to/build-pipeline#start), configure a [readiness check](/gleam/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/gleam/how-to/build-pipeline#start), configure a [readiness check](/gleam/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/gleam/how-to/env-variables.mdx b/apps/docs/content/gleam/how-to/env-variables.mdx index 7fa9f454..016cd942 100644 --- a/apps/docs/content/gleam/how-to/env-variables.mdx +++ b/apps/docs/content/gleam/how-to/env-variables.mdx @@ -13,19 +13,19 @@ There are 3 different sets of env variables in Zerops: | environment | type | defined in | | ----------- | ------ | --------------------------------------------------------------------------------- | -| build | basic | [zerops.yml](/gleam/how-to/build-pipeline#envvariables) | -| runtime | basic | [zerops.yml](/gleam/how-to/build-pipeline#envvariables-1) | +| build | basic | [zerops.yaml](/gleam/how-to/build-pipeline#envvariables) | +| runtime | basic | [zerops.yaml](/gleam/how-to/build-pipeline#envvariables-1) | | runtime | secret | [Zerops GUI](#set-secret-env-variables-in-zerops-gui) | Use the [secret env variables](/gleam/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/gleam/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/gleam/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/gleam/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/gleam/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/gleam/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/gleam/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/gleam/how-to/upgrade.mdx b/apps/docs/content/gleam/how-to/upgrade.mdx index 285c54e9..15256e3c 100644 --- a/apps/docs/content/gleam/how-to/upgrade.mdx +++ b/apps/docs/content/gleam/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the Gleam version description: Learn how to upgrade your Gleam service's version --- -You can upgrade or downgrade your Gleam service to a different major Gleam version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/gleam/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Gleam version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Gleam version for your runtime. +You can upgrade or downgrade your Gleam service to a different major Gleam version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/gleam/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Gleam version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Gleam version for your runtime. -If you want to build your application with a different major Gleam version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major Gleam version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/gleam/overview.mdx b/apps/docs/content/gleam/overview.mdx index 0fbcc73a..8250a695 100644 --- a/apps/docs/content/gleam/overview.mdx +++ b/apps/docs/content/gleam/overview.mdx @@ -24,9 +24,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-gleam/blob/main/zerops-project-import.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-gleam/blob/main/zerops-project-import.yaml)): -```yml +```yaml project: name: recipe-gleam tags: @@ -114,12 +114,12 @@ It doesn't matter whether it's your first curious introduction to Zerops, you ha }, { type: 'link', - href: '/gleam/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'Zerops.yml', + href: '/gleam/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'Zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/go/how-to/build-pipeline.mdx b/apps/docs/content/go/how-to/build-pipeline.mdx index cb1bb187..f5589f6f 100644 --- a/apps/docs/content/go/how-to/build-pipeline.mdx +++ b/apps/docs/content/go/how-to/build-pipeline.mdx @@ -9,11 +9,11 @@ import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; Zerops provides a customizable build and runtime environment for your Go application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -73,9 +73,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -100,7 +100,7 @@ Following options are available for Go builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -117,12 +117,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -136,7 +136,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customize your build environment use the [prepareCommands](/go/how-to/build-pipeline#preparecommands) attribute. @@ -181,7 +181,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -222,7 +222,7 @@ You can configure your prepare commands to be run in a single shell instance or _REQUIRED._ Defines build commands. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -249,7 +249,7 @@ Before the build commands are triggered the build container contains: Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. Suppose your `main.go` file is in a `src` directory. -```yml +```yaml buildCommands: - | cd src @@ -260,7 +260,7 @@ buildCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. Suppose your `main.go` file is in a `src` directory. -```yml +```yaml buildCommands: - cd src - go build -o app src/main.go @@ -270,7 +270,7 @@ buildCommands: If any command fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/go/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the --verbose option. -```yml +```yaml buildCommands: - go build -v -o app main.go ``` @@ -281,7 +281,7 @@ If the command ends successfully, it returns the exit code 0 and Zerops triggers _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -290,7 +290,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -298,7 +298,7 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - app - file.txt @@ -306,13 +306,13 @@ deployFiles: Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -324,19 +324,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` @@ -355,7 +355,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -382,7 +382,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -400,7 +400,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -431,7 +431,7 @@ Following options are available for Go builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -454,12 +454,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -479,7 +479,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customise your build environment use the `prepareCommands` attribute. @@ -547,7 +547,7 @@ _OPTIONAL._ Customises the Go runtime environment by installing additional depen major version of Go, Zerops command line tool and `git` and `wget`. To install additional packages or tools add one or more prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -601,14 +601,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -620,13 +620,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -666,7 +666,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -687,7 +687,7 @@ Read more about [environment variables](/go/how-to/env-variables) in Zerops. _REQUIRED._ Defines the start command for your Go application. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -723,7 +723,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -772,7 +772,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -801,7 +801,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -840,7 +840,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -888,7 +888,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/go/how-to/build-process.mdx b/apps/docs/content/go/how-to/build-process.mdx index 40f6d9c0..b82c3146 100644 --- a/apps/docs/content/go/how-to/build-process.mdx +++ b/apps/docs/content/go/how-to/build-process.mdx @@ -45,14 +45,14 @@ The build cancellation is available before the build pipeline is finished. When The default Go build environment contains: - {data.alpine.default} -- selected version of Go defined in `zerops.yml` [build.base](/go/how-to/build-pipeline#base) parameter +- selected version of Go defined in `zerops.yaml` [build.base](/go/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - `git` and `wget` :::note -To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yml/specification#os-) attribute. +To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yaml/specification#os-) attribute. -Additional packages and tools can be installed using [build.prepareCommands](/zerops-yml/specification#preparecommands-). +Additional packages and tools can be installed using [build.prepareCommands](/zerops-yaml/specification#preparecommands-). ::: :::info @@ -99,7 +99,7 @@ This will force Zerops to run the next build clean, including all prepare comman If any [build command](/go/how-to/build-pipeline#buildcommands) fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/go/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the verbose `-v` option. -```yml +```yaml build: - go build -v ``` diff --git a/apps/docs/content/go/how-to/create.mdx b/apps/docs/content/go/how-to/create.mdx index 25bd55e7..85c7381d 100644 --- a/apps/docs/content/go/how-to/create.mdx +++ b/apps/docs/content/go/how-to/create.mdx @@ -158,7 +158,7 @@ Zerops uses a yaml format to describe the project infrastructure. #### Basic example: -Create a directory `my-project`. Create an `description.yml` file inside the `my-project` directory with following content: +Create a directory `my-project`. Create an `description.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -181,7 +181,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Go version 1 service with default [auto scaling](/go/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/go/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Go version 1 service with default [auto scaling](/go/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/go/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -190,7 +190,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -239,7 +239,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a Go service and a [PostgreSQL](/postgresql/overview) service. -Go service with "app" hostname, the internal port(s) the service listens on will be defined later in the zerops.yml. Go service will run on version 1 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +Go service with "app" hostname, the internal port(s) the service listens on will be defined later in the zerops.yaml. Go service will run on version 1 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -248,7 +248,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -280,7 +280,7 @@ The `project:` section is required. Only one project can be defined. Specifies the service type and version.
- See what [Go service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [Go service types](/references/import-yaml/type-list#runtime-services) are currently supported. @@ -344,9 +344,9 @@ The `project:` section is required. Only one project can be defined. -### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -359,11 +359,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -379,7 +379,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -409,9 +409,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -425,4 +425,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/go/how-to/customize-runtime.mdx b/apps/docs/content/go/how-to/customize-runtime.mdx index 5301b09a..4a860baf 100644 --- a/apps/docs/content/go/how-to/customize-runtime.mdx +++ b/apps/docs/content/go/how-to/customize-runtime.mdx @@ -22,9 +22,9 @@ The default Go runtime environment contains: - Git :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: ## Runtime Flow diff --git a/apps/docs/content/go/how-to/deploy-process.mdx b/apps/docs/content/go/how-to/deploy-process.mdx index 7c8fe098..97ec1c5f 100644 --- a/apps/docs/content/go/how-to/deploy-process.mdx +++ b/apps/docs/content/go/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/go/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/go/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/go/how-to/build-pipeline#start), configure a [readiness check](/go/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/go/how-to/build-pipeline#start), configure a [readiness check](/go/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/go/how-to/env-variables.mdx b/apps/docs/content/go/how-to/env-variables.mdx index 755883b4..f1a43633 100644 --- a/apps/docs/content/go/how-to/env-variables.mdx +++ b/apps/docs/content/go/how-to/env-variables.mdx @@ -23,12 +23,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -41,13 +41,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/go/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/go/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/go/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/go/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/go/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/go/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/go/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/go/how-to/upgrade.mdx b/apps/docs/content/go/how-to/upgrade.mdx index b331ef67..e4f5f3ce 100644 --- a/apps/docs/content/go/how-to/upgrade.mdx +++ b/apps/docs/content/go/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the Go version description: Learn how to upgrade your go service's version --- -You can upgrade or downgrade your Go service to a different major Go version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/go/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Go version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Go version for your runtime. +You can upgrade or downgrade your Go service to a different major Go version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/go/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Go version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Go version for your runtime. -If you want to build your application with a different major Go version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major Go version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/go/overview.mdx b/apps/docs/content/go/overview.mdx index 57d5f3be..cb7e5e66 100644 --- a/apps/docs/content/go/overview.mdx +++ b/apps/docs/content/go/overview.mdx @@ -23,9 +23,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-go-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-go-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: @@ -94,12 +94,12 @@ Do you have any questions? Check the step-by-step tutorial, browse the documenta }, { type: 'link', - href: '/go/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/go/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/go/tutorial/quickstart.mdx b/apps/docs/content/go/tutorial/quickstart.mdx index eba46b18..c7927d4f 100644 --- a/apps/docs/content/go/tutorial/quickstart.mdx +++ b/apps/docs/content/go/tutorial/quickstart.mdx @@ -20,9 +20,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-go-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-go-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: diff --git a/apps/docs/content/go/tutorial/runtime-sql.mdx b/apps/docs/content/go/tutorial/runtime-sql.mdx index 3fa48552..80b4e139 100644 --- a/apps/docs/content/go/tutorial/runtime-sql.mdx +++ b/apps/docs/content/go/tutorial/runtime-sql.mdx @@ -23,13 +23,13 @@ In the detail of each step, you can find a link with more information about the

2. Create a project.

- Learn more about projects in Zerops. See how to import a whole project into Zerops. + Learn more about projects in Zerops. See how to import a whole project into Zerops.

- 3. In the left menu, click on Import services, copy & paste the contents of the `import-services.yml` config file from the recipe repository of your choice. Then click on Import service. + 3. In the left menu, click on Import services, copy & paste the contents of the `import-services.yaml` config file from the recipe repository of your choice. Then click on Import service.

Learn more about services in Zerops and how to import a service to an existing project. diff --git a/apps/docs/content/go/tutorial/step-by-step.mdx b/apps/docs/content/go/tutorial/step-by-step.mdx index 08c9499d..aea2b3fd 100644 --- a/apps/docs/content/go/tutorial/step-by-step.mdx +++ b/apps/docs/content/go/tutorial/step-by-step.mdx @@ -23,7 +23,7 @@ In the detail of each step, you can find a link with more information about the

2. Create a project.

- Learn more about projects in + Learn more about projects in Zerops. See how to import a whole project into Zerops.

@@ -31,7 +31,7 @@ In the detail of each step, you can find a link with more information about the
3. In the left menu, click on Import services, copy & paste the - contents of this yaml file and click on Import service. + contents of this yaml file and click on Import service.

Learn more about services in Zerops and how to import a service to an existing project. diff --git a/apps/docs/content/homepage.mdx b/apps/docs/content/homepage.mdx index 5ab99bc3..fa03c448 100644 --- a/apps/docs/content/homepage.mdx +++ b/apps/docs/content/homepage.mdx @@ -62,9 +62,9 @@ export const storages = [

# Zerops Documentation -Zerops is a **developer-first Platform-as-a-Service**, running on **bare metal** from a top-tier datacenter, with every part built from scratch. Zerops aims to be the **perfect mix** of **developer experience**, **flexibility**, **scalability** and **affordability**, making it a **great fit** for applications of **any size**, **complexity** and **traffic**. +Zerops is a **developer-first Platform-as-a-Service**, running on bare metal, with every part built from scratch. Zerops aims to be the perfect mix of **developer experience**, **flexibility**, **scalability** and **affordability**, making it a great fit for applications of any size, complexity and traffic. -
+Currently, Zerops operates from a state-of-the-art datacenter in Prague, Czechia. Multi-region support is an active focus in our development pipeline. ## Natively supported services @@ -115,8 +115,8 @@ items={storages} /> }, { type: 'link', - href: '/zerops-yml/specification', - label: 'zerops.yml', + href: '/zerops-yaml/specification', + label: 'zerops.yaml', customProps: { icon: Icons['document-text'], html: 'Configuration file placed to your repository, telling Zerops how to build and start your app.', diff --git a/apps/docs/content/java/how-to/build-pipeline.mdx b/apps/docs/content/java/how-to/build-pipeline.mdx index 8c39654d..07f79c3f 100644 --- a/apps/docs/content/java/how-to/build-pipeline.mdx +++ b/apps/docs/content/java/how-to/build-pipeline.mdx @@ -8,11 +8,11 @@ import UnorderedList from '@site/src/components/UnorderedList'; Zerops provides a customizable build and runtime environment for your Java application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -72,9 +72,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -99,7 +99,7 @@ Following options are available for Java builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -117,12 +117,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -136,7 +136,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customize your build environment use the [prepareCommands](/java/how-to/build-pipeline#preparecommands) attribute. @@ -181,7 +181,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -222,7 +222,7 @@ You can configure your prepare commands to be run in a single shell instance or _REQUIRED._ Defines build commands. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -249,7 +249,7 @@ Before the build commands are triggered the build container contains: Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. Suppose your `mvnw` executable file is in a `cmd` directory. -```yml +```yaml buildCommands: - | cd cmd @@ -260,7 +260,7 @@ buildCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. Suppose your `mvnw` executable file is in a `cmd` directory. -```yml +```yaml buildCommands: - cd cmd - ./cmd/mvnw clean install @@ -270,7 +270,7 @@ buildCommands: If any command fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/java/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the `-X` debug option. -```yml +```yaml buildCommands: - ./mvnw -X clean install ``` @@ -281,7 +281,7 @@ If the command ends successfully, it returns the exit code 0 and Zerops triggers _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -290,7 +290,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -298,7 +298,7 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - api - app.jar @@ -306,13 +306,13 @@ deployFiles: Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -324,19 +324,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` @@ -355,7 +355,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -382,7 +382,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -400,7 +400,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -430,7 +430,7 @@ Following options are available for Java builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -453,12 +453,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -478,7 +478,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customize your build environment use the `prepareCommands` attribute. @@ -548,7 +548,7 @@ _OPTIONAL._ Customizes the Java runtime environment by installing additional dep prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -602,14 +602,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -621,13 +621,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -667,7 +667,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -687,7 +687,7 @@ Read more about [environment variables](/java/how-to/env-variables) in Zerops. _REQUIRED._ Defines the start command for your Java application. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -723,7 +723,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -771,7 +771,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -800,7 +800,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -839,7 +839,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -887,7 +887,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/java/how-to/build-process.mdx b/apps/docs/content/java/how-to/build-process.mdx index f1504625..de164223 100644 --- a/apps/docs/content/java/how-to/build-process.mdx +++ b/apps/docs/content/java/how-to/build-process.mdx @@ -24,9 +24,9 @@ The default Java build environment contains: - Git :::note -To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yml/specification#os-) attribute. +To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yaml/specification#os-) attribute. -Additional packages and tools can be installed using [build.prepareCommands](/zerops-yml/specification#preparecommands-). +Additional packages and tools can be installed using [build.prepareCommands](/zerops-yaml/specification#preparecommands-). ::: ## Description of the build process @@ -60,11 +60,11 @@ The build cancellation is available before the build pipeline is finished. When The default Java build environment contains: - {data.alpine.default} -- selected version of Java defined in `zerops.yml` [build.base](/java/how-to/build-pipeline#base) parameter +- selected version of Java defined in `zerops.yaml` [build.base](/java/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - `git` and `wget` -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/java/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/java/how-to/build-pipeline#preparecommands) commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/java/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/java/how-to/build-pipeline#preparecommands) commands to your `zerops.yaml`. :::info The application code is available in the `/var/www` folder in your build container before the prepare commands are triggered. This allows you to use any file from your application code in your prepare commands (e.g. a configuration file). @@ -110,7 +110,7 @@ This will force Zerops to run the next build clean, including all prepare comman If any [build command](/java/how-to/build-pipeline#buildcommands) fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/java/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the verbose `-X` debug option. -```yml +```yaml build: - ./mvnw -X clean install ``` diff --git a/apps/docs/content/java/how-to/create.mdx b/apps/docs/content/java/how-to/create.mdx index 283d7e9e..6e55a079 100644 --- a/apps/docs/content/java/how-to/create.mdx +++ b/apps/docs/content/java/how-to/create.mdx @@ -157,7 +157,7 @@ Zerops uses a yaml format to describe the project infrastructure. #### Basic example: -Create a directory `my-project`. Create an `description.yml` file inside the `my-project` directory with following content: +Create a directory `my-project`. Create an `description.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -180,7 +180,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Java version 1 service with default [auto scaling](/java/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/java/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Java version 1 service with default [auto scaling](/java/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/java/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -189,7 +189,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -238,7 +238,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a Java service and a [PostgreSQL](/postgresql/overview) service. -Java service with "app" hostname, the internal port(s) the service listens on will be defined later in the zerops.yml. Java service will run on version 1 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +Java service with "app" hostname, the internal port(s) the service listens on will be defined later in the zerops.yaml. Java service will run on version 1 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -247,7 +247,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -279,7 +279,7 @@ The `project:` section is required. Only one project can be defined. Specifies the service type and version.
- See what [Java service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [Java service types](/references/import-yaml/type-list#runtime-services) are currently supported. @@ -343,9 +343,9 @@ The `project:` section is required. Only one project can be defined. -### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -358,11 +358,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -378,7 +378,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -408,9 +408,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -424,4 +424,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/java/how-to/customize-runtime.mdx b/apps/docs/content/java/how-to/customize-runtime.mdx index ce1dff95..9401803b 100644 --- a/apps/docs/content/java/how-to/customize-runtime.mdx +++ b/apps/docs/content/java/how-to/customize-runtime.mdx @@ -22,9 +22,9 @@ The default Java runtime environment contains: - Git :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: ## Runtime Flow diff --git a/apps/docs/content/java/how-to/deploy-process.mdx b/apps/docs/content/java/how-to/deploy-process.mdx index b83f40e4..0d46b90f 100644 --- a/apps/docs/content/java/how-to/deploy-process.mdx +++ b/apps/docs/content/java/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/java/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/java/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/java/how-to/build-pipeline#start), configure a [readiness check](/java/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/java/how-to/build-pipeline#start), configure a [readiness check](/java/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/java/how-to/env-variables.mdx b/apps/docs/content/java/how-to/env-variables.mdx index 21856739..988d7712 100644 --- a/apps/docs/content/java/how-to/env-variables.mdx +++ b/apps/docs/content/java/how-to/env-variables.mdx @@ -23,12 +23,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -41,13 +41,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/java/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/java/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/java/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/java/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/java/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/java/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/java/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/java/how-to/upgrade.mdx b/apps/docs/content/java/how-to/upgrade.mdx index fc140718..d5bbe5cd 100644 --- a/apps/docs/content/java/how-to/upgrade.mdx +++ b/apps/docs/content/java/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the Java version description: Learn how to upgrade your java service's version --- -You can upgrade or downgrade your Java service to a different major Java version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/java/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Java version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Java version for your runtime. +You can upgrade or downgrade your Java service to a different major Java version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/java/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Java version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Java version for your runtime. -If you want to build your application with a different major Java version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major Java version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/java/overview.mdx b/apps/docs/content/java/overview.mdx index 59c3805f..6931d19a 100644 --- a/apps/docs/content/java/overview.mdx +++ b/apps/docs/content/java/overview.mdx @@ -25,9 +25,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-java-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-java-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: @@ -98,12 +98,12 @@ Do you have any questions? Check the step-by-step tutorial, browse the documenta }, { type: 'link', - href: '/java/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/java/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/keydb/how-to/create.mdx b/apps/docs/content/keydb/how-to/create.mdx index 5fd57eb9..2ceeb3f8 100644 --- a/apps/docs/content/keydb/how-to/create.mdx +++ b/apps/docs/content/keydb/how-to/create.mdx @@ -134,9 +134,9 @@ Zerops uses a yaml format file to describe the project infrastructure. #### Basic example -Create a directory `my-project`. Create a `description.yml` file inside the directory with the following content: +Create a directory `my-project`. Create a `description.yaml` file inside the directory with the following content: -```yml +```yaml # basic project data project: # project name @@ -155,9 +155,9 @@ The yaml file describes your future project infrastructure. The project will con #### Full example -Create a directory `my-project`. Create a `description.yml` file inside the directory with the following content: +Create a directory `my-project`. Create a `description.yaml` file inside the directory with the following content: -```yml +```yaml # basic project data project: # project name @@ -202,7 +202,7 @@ The hostname of the first service will be set to `keydb1`. The [high availabilit The hostname of the second service will be set to `keydb2`. The [single container](#single-container) mode will be chosen and the default [auto scaling configuration](/keydb/how-to/scale) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -234,7 +234,7 @@ The `project:` section is required. Only one project can be defined. -At least one service in `services:` section is required. You can create a project with multiple services. The example above contains only KeyDB services but you can create a `description.yml` with [different types] of services. +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains only KeyDB services but you can create a `description.yaml` with [different types] of services. @@ -264,7 +264,7 @@ At least one service in `services:` section is required. You can create a projec @@ -324,9 +324,9 @@ At least one service in `services:` section is required. You can create a projec The KeyDB service **hostname** and **mode** are fixed after the service is created. They can't be changed later. ::: -### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -339,11 +339,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -359,7 +359,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```bash # array of project services @@ -375,9 +375,9 @@ services: The yaml file describes the list of one or more services that you want to add to your existing project. In the example above, one KeyDB service in the [single container mode](#single-container) with default [auto scaling](/keydb/how-to/scale) configuration will be added to your project. Hostname of the new service will be set to `keydb1`. -The content of the `services:` section of `import.yml` is identical to the [project description file](#create-a-project-description-file). The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the [project description file](#create-a-project-description-file). The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -391,4 +391,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the `import.yml` file is 100 kB. +Maximum size of the `import.yaml` file is 100 kB. diff --git a/apps/docs/content/mariadb/how-to/create.mdx b/apps/docs/content/mariadb/how-to/create.mdx index 9b62eede..db60287d 100644 --- a/apps/docs/content/mariadb/how-to/create.mdx +++ b/apps/docs/content/mariadb/how-to/create.mdx @@ -173,9 +173,9 @@ Zerops uses a yaml format file to describe the project infrastructure. #### Basic example -Create a directory `my-project`. Create a `description.yml` file inside the directory with the following content: +Create a directory `my-project`. Create a `description.yaml` file inside the directory with the following content: -```yml +```yaml # basic project data project: # project name @@ -194,9 +194,9 @@ The yaml file describes your future project infrastructure. The project will con #### Full example -Create a directory `my-project`. Create a `description.yml` file inside the directory with the following content: +Create a directory `my-project`. Create a `description.yaml` file inside the directory with the following content: -```yml +```yaml # basic project data project: # project name @@ -241,7 +241,7 @@ The hostname of the first service will be set to `mariadb1`. The [high availabil The hostname of the second service will be set to `mariadb2`. The [single container](#single-container) mode will be chosen and the default [auto scaling configuration](/mariadb/how-to/scale) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -273,7 +273,7 @@ The `project:` section is required. Only one project can be defined.
Specifies the service type and version.
- See what [KeyDB service types](/references/importyml/type-list#database-services) are currently supported. + See what [KeyDB service types](/references/import-yaml/type-list#database-services) are currently supported.
-At least one service in `services:` section is required. You can create a project with multiple services. The example above contains only MariaDB services but you can create a `description.yml` with [different types] of services. +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains only MariaDB services but you can create a `description.yaml` with [different types] of services. @@ -299,7 +299,7 @@ At least one service in `services:` section is required. You can create a projec @@ -367,9 +367,9 @@ At least one service in `services:` section is required. You can create a projec The MariaDB service **hostname** and **mode** are fixed after the service is created. They can't be changed later. ::: -### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -382,11 +382,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -403,7 +403,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```bash # array of project services @@ -419,9 +419,9 @@ services: The yaml file describes the list of one or more services that you want to add to your existing project. In the example above, one MariaDB 10.4 service in the [single container mode](#single-container) with default [auto scaling](/mariadb/how-to/scale) configuration will be added to your project. Hostname of the new service will be set to `mariadb1`. -The content of the `services:` section of `import.yml` is identical to the [project description file](#create-a-project-description-file). The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the [project description file](#create-a-project-description-file). The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -435,4 +435,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the `import.yml` file is 100 kB. +Maximum size of the `import.yaml` file is 100 kB. diff --git a/apps/docs/content/mariadb/how-to/manage.mdx b/apps/docs/content/mariadb/how-to/manage.mdx index 02e1c842..d56604f7 100644 --- a/apps/docs/content/mariadb/how-to/manage.mdx +++ b/apps/docs/content/mariadb/how-to/manage.mdx @@ -29,7 +29,7 @@ To install Adminer into your project, open your project in Zerops GUI and select Copy the following yaml file into the text area and start the import: -```yml +```yaml services: - # Service will be accessible through zCLI VPN under: http://adminer hostname: adminer @@ -79,7 +79,7 @@ To install phpMyAdmin into your project, open your project in Zerops GUI and sel Copy the following yaml file into the text area and start the import: -```yml +```yaml services: - # Service will be accessible through zCLI VPN under: http://phpmyadmin hostname: phpmyadmin diff --git a/apps/docs/content/nginx/how-to/build-pipeline.mdx b/apps/docs/content/nginx/how-to/build-pipeline.mdx index 5cfce5ca..105a3c29 100644 --- a/apps/docs/content/nginx/how-to/build-pipeline.mdx +++ b/apps/docs/content/nginx/how-to/build-pipeline.mdx @@ -26,11 +26,11 @@ Zerops supports different build environments: If you just need to deploy your static content, use the [manual deploy](/nginx/how-to/trigger-pipeline#manual-deploy-using-zerops-cli) via Zerops CLI. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -95,9 +95,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -123,7 +123,7 @@ Following options are available for Nginx builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -146,12 +146,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -171,7 +171,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customize your build environment use the `prepareCommands` attribute. @@ -250,7 +250,7 @@ _OPTIONAL._ Customizes the Nginx runtime environment by installing additional de additional packages or tools add one or more prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -311,14 +311,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the build section of your chosen technology. -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -330,13 +330,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -381,7 +381,7 @@ By default, the document root is configured to `/var/www`. Customize the folder that will be used as the root of the publicly accessible web server content. Enter the path relative to the `/var/www` folder. E.g. `documentRoot: public` will set the web server document root to `/var/www/public`. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -412,7 +412,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -449,7 +449,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -498,7 +498,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -545,7 +545,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -593,7 +593,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/nginx/how-to/create.mdx b/apps/docs/content/nginx/how-to/create.mdx index bc9a04ca..239fca9d 100644 --- a/apps/docs/content/nginx/how-to/create.mdx +++ b/apps/docs/content/nginx/how-to/create.mdx @@ -157,7 +157,7 @@ Zerops uses a yaml format to describe the project infrastructure. #### Basic example: -Create a directory `my-project`. Create an `description.yml` file inside the `my-project` directory with following content: +Create a directory `my-project`. Create an `description.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -180,7 +180,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Nginx version 8.1 service with default [auto scaling](/nginx/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/nginx/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Nginx version 8.1 service with default [auto scaling](/nginx/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/nginx/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -189,7 +189,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -230,14 +230,14 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain an Nginx static service with `app` hostname. The internal port(s) the service listens on will be defined later in the [zerops.yml](/nginx/how-to/build-pipeline#ports). Nginx static service will run on version 1.22 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain an Nginx static service with `app` hostname. The internal port(s) the service listens on will be defined later in the [zerops.yaml](/nginx/how-to/build-pipeline#ports). Nginx static service will run on version 1.22 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -269,7 +269,7 @@ The `project:` section is required. Only one project can be defined.
type Specifies the service type and version. - See what [MariaDB service types](/references/importyml/type-list#database-services) are currently supported. + See what [MariaDB service types](/references/import-yaml/type-list#database-services) are currently supported.
-At least one service in `services:` section is required. You can create a project with multiple services. The example above contains an Nginx static service but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains an Nginx static service but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -299,7 +299,7 @@ At least one service in `services:` section is required. You can create a projec @@ -381,9 +381,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version.
- See what [nginx service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [nginx service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -396,11 +396,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -417,7 +417,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -447,9 +447,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -463,4 +463,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/nginx/how-to/customize-runtime.mdx b/apps/docs/content/nginx/how-to/customize-runtime.mdx index a5e1b502..e6338b80 100644 --- a/apps/docs/content/nginx/how-to/customize-runtime.mdx +++ b/apps/docs/content/nginx/how-to/customize-runtime.mdx @@ -22,9 +22,9 @@ The default Nginx runtime environment contains: - Git and Composer :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: ### Runtime Flow diff --git a/apps/docs/content/nginx/how-to/customize-web-server.mdx b/apps/docs/content/nginx/how-to/customize-web-server.mdx index fa474812..dfb9988b 100644 --- a/apps/docs/content/nginx/how-to/customize-web-server.mdx +++ b/apps/docs/content/nginx/how-to/customize-web-server.mdx @@ -26,7 +26,7 @@ server { The configuration contains 2 variables: -- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yml`. If the attribute is not specified, the default value `/var/www` is used. +- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yaml`. If the attribute is not specified, the default value `/var/www` is used. ## Customize Nginx configuration @@ -36,7 +36,7 @@ Follow these steps to customize the Nginx configuration in Nginx static service: 2. Optionally use following variables: -- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yml`. If the attribute is not specified, the default value `/var/www` is used. +- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yaml`. If the attribute is not specified, the default value `/var/www` is used. Example: @@ -44,7 +44,7 @@ Example: root {{.DocumentRoot}}; ``` -- **`{{.Environment.ENV_NAME}}`** is replaced by the [env variable](/nginx/how-to/env-variables) value. The env variable must be either defined in [run.envVariables](/nginx/how-to/build-pipeline#envvariables) in `zerops.yml` or set as a [secret](/nginx/how-to/env-variables#set-secret-env-variables-in-zerops-gui) or [generated](/nginx/how-to/env-variables#generated-env-variables) env variable in Zerops GUI. +- **`{{.Environment.ENV_NAME}}`** is replaced by the [env variable](/nginx/how-to/env-variables) value. The env variable must be either defined in [run.envVariables](/nginx/how-to/build-pipeline#envvariables) in `zerops.yaml` or set as a [secret](/nginx/how-to/env-variables#set-secret-env-variables-in-zerops-gui) or [generated](/nginx/how-to/env-variables#generated-env-variables) env variable in Zerops GUI. :::caution Use the **.tmpl** file extension to make Zerops interpret the file as a template. Zerops will replace the supported variables listed above. @@ -53,12 +53,12 @@ Use the **.tmpl** file extension to make Zerops interpret the file as a template 3. Check that your Nginx configuration is consistent with Zerops requirements: - Do not use IP addresses in the `listen` directive -- If you use other ports than `:80` in the `listen` directive, add them to the `run.ports` in your `zerops.yml` as well. +- If you use other ports than `:80` in the `listen` directive, add them to the `run.ports` in your `zerops.yaml` as well. - Do not use the port **:443**. All the incoming `https://` traffic is terminated on the Zerops internal balancer where the SSL certificate is installed and the request is forwarded to your Nginx static service as a **http://** on the port **:80**. -4. Add the `siteConfigPath` to the run section of your `zerops.yml` +4. Add the `siteConfigPath` to the run section of your `zerops.yaml` -```yml +```yaml zerops: # define hostname of your service - setup: app diff --git a/apps/docs/content/nginx/how-to/deploy-process.mdx b/apps/docs/content/nginx/how-to/deploy-process.mdx index 35a54cc9..4506db6e 100644 --- a/apps/docs/content/nginx/how-to/deploy-process.mdx +++ b/apps/docs/content/nginx/how-to/deploy-process.mdx @@ -38,7 +38,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/nginx/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/nginx/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -56,7 +56,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready as soon as it is started, configure a [readiness check](/nginx/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready as soon as it is started, configure a [readiness check](/nginx/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -92,7 +92,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/nginx/how-to/env-variables.mdx b/apps/docs/content/nginx/how-to/env-variables.mdx index a6d396ec..b29e27ed 100644 --- a/apps/docs/content/nginx/how-to/env-variables.mdx +++ b/apps/docs/content/nginx/how-to/env-variables.mdx @@ -23,12 +23,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -41,13 +41,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/nginx/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/nginx/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/nginx/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/nginx/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/nginx/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/nginx/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/nginx/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/nginx/how-to/upgrade.mdx b/apps/docs/content/nginx/how-to/upgrade.mdx index 2b54b24c..cac7327e 100644 --- a/apps/docs/content/nginx/how-to/upgrade.mdx +++ b/apps/docs/content/nginx/how-to/upgrade.mdx @@ -3,4 +3,4 @@ title: How to upgrade the Nginx version description: Learn how to upgrade your nginx service's version --- -You can upgrade or downgrade your Nginx static service to a different major Nginx version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/nginx/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Nginx version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Nginx version for your runtime. +You can upgrade or downgrade your Nginx static service to a different major Nginx version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/nginx/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Nginx version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Nginx version for your runtime. diff --git a/apps/docs/content/nginx/overview.mdx b/apps/docs/content/nginx/overview.mdx index 346e7153..885ff28b 100644 --- a/apps/docs/content/nginx/overview.mdx +++ b/apps/docs/content/nginx/overview.mdx @@ -54,12 +54,12 @@ The Nginx static service contains the [Nginx ↗](https://nginx.org/) web server }, { type: 'link', - href: '/nginx/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/nginx/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/nginx/tutorial/quickstart.mdx b/apps/docs/content/nginx/tutorial/quickstart.mdx index 8d4aa732..d2614773 100644 --- a/apps/docs/content/nginx/tutorial/quickstart.mdx +++ b/apps/docs/content/nginx/tutorial/quickstart.mdx @@ -11,9 +11,9 @@ import LargeCard from '@site/src/components/LargeCard'; As said, there is no need for coding yet, we have created a [Github repository ↗](https://github.com/zeropsio/recipe-php-hello-world), a **_recipe_**, containing the most simple Nginx web application. The repo will be used as a source from which the app will be built. 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-php-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-php-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: diff --git a/apps/docs/content/nginx/tutorial/runtime-sql.mdx b/apps/docs/content/nginx/tutorial/runtime-sql.mdx index 86d22fbe..a5ff4134 100644 --- a/apps/docs/content/nginx/tutorial/runtime-sql.mdx +++ b/apps/docs/content/nginx/tutorial/runtime-sql.mdx @@ -23,7 +23,7 @@ In the detail of each step, you can find a link with more information about the

2. Create a project.

- Learn more about projects in Zerops. See how to + Learn more about projects in Zerops. See how to import a whole project into Zerops.

@@ -31,7 +31,7 @@ In the detail of each step, you can find a link with more information about the
3. In the left menu, click on Import services, copy & paste the - contents of the `import-services.yml` config file from the recipe + contents of the `import-services.yaml` config file from the recipe repository of your choice. Then click on Import service.

diff --git a/apps/docs/content/nginx/tutorial/step-by-step.mdx b/apps/docs/content/nginx/tutorial/step-by-step.mdx index 6bae21cd..85897524 100644 --- a/apps/docs/content/nginx/tutorial/step-by-step.mdx +++ b/apps/docs/content/nginx/tutorial/step-by-step.mdx @@ -23,7 +23,7 @@ In the detail of each step, you can find a link with more information about the

2. Create a project.

- Learn more about projects in + Learn more about projects in Zerops. See how to import a whole project into Zerops.

@@ -31,7 +31,7 @@ In the detail of each step, you can find a link with more information about the
3. In the left menu, click on Import services, copy & paste the - contents of this yaml file and click on Import service. + contents of this yaml file and click on Import service.

Learn more about services in Zerops and how to import a service to an existing project. diff --git a/apps/docs/content/nodejs/how-to/build-pipeline.mdx b/apps/docs/content/nodejs/how-to/build-pipeline.mdx index ed0b7c3c..0b6981a3 100644 --- a/apps/docs/content/nodejs/how-to/build-pipeline.mdx +++ b/apps/docs/content/nodejs/how-to/build-pipeline.mdx @@ -9,11 +9,11 @@ import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; Zerops provides a customizable build and runtime environment for your Node.js application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -78,9 +78,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -105,7 +105,7 @@ Following options are available for Node.js builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -122,12 +122,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -141,7 +141,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customize your build environment use the [prepareCommands](/nodejs/how-to/build-pipeline#preparecommands) attribute. @@ -186,7 +186,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -227,7 +227,7 @@ You can configure your prepare commands to be run in a single shell instance or _REQUIRED._ Defines build commands. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -255,7 +255,7 @@ Before the build commands are triggered the build container contains: Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. -```yml +```yaml buildCommands: - | npm i @@ -266,7 +266,7 @@ buildCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. -```yml +```yaml buildCommands: - npm i - npm run build @@ -276,7 +276,7 @@ buildCommands: If any command fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/nodejs/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the --verbose option. -```yml +```yaml buildCommands: - npm i --verbose - npm run build @@ -288,7 +288,7 @@ If the command ends successfully, it returns the exit code 0 and Zerops triggers _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -299,7 +299,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -307,7 +307,7 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - dist - package.json @@ -315,13 +315,13 @@ deployFiles: Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -333,19 +333,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` @@ -364,7 +364,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -391,7 +391,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -409,7 +409,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -440,7 +440,7 @@ Following options are available for Node.js builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -463,12 +463,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -488,7 +488,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customize your build environment use the `prepareCommands` attribute. @@ -555,7 +555,7 @@ _OPTIONAL._ Customises the Node.js runtime environment by installing additional additional packages or tools add one or more prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -609,14 +609,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -628,13 +628,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -674,7 +674,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -695,7 +695,7 @@ Read more about [environment variables](/nodejs/how-to/env-variables) in Zerops. _REQUIRED._ Defines the start command for your Node.js application. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -731,7 +731,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -779,7 +779,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -808,7 +808,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -847,7 +847,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -895,7 +895,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/nodejs/how-to/build-process.mdx b/apps/docs/content/nodejs/how-to/build-process.mdx index 30585ec4..d3c4f811 100644 --- a/apps/docs/content/nodejs/how-to/build-process.mdx +++ b/apps/docs/content/nodejs/how-to/build-process.mdx @@ -24,9 +24,9 @@ The default NodeJS build environment contains: - NPM, Yarn, Git and NPX tools :::note -To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yml/specification#os-) attribute. +To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yaml/specification#os-) attribute. -Additional packages and tools can be installed using [build.prepareCommands](/zerops-yml/specification#preparecommands-). +Additional packages and tools can be installed using [build.prepareCommands](/zerops-yaml/specification#preparecommands-). ::: @@ -70,11 +70,11 @@ The build cancellation is available before the build pipeline is finished. When The default Node.js build environment contains: - {data.alpine.default} -- selected version of Node.js defined in `zerops.yml` [build.base](/nodejs/how-to/build-pipeline#base) parameter +- selected version of Node.js defined in `zerops.yaml` [build.base](/nodejs/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - `npm`, `yarn`, `git` and `npx` tools -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/nodejs/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/nodejs/how-to/build-pipeline#preparecommands) commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/nodejs/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/nodejs/how-to/build-pipeline#preparecommands) commands to your `zerops.yaml`. :::info The application code is available in the `/var/www` folder in your build container before the prepare commands are triggered. This allows you to use any file from your application code in your prepare commands (e.g. a configuration file). @@ -120,7 +120,7 @@ This will force Zerops to run the next build clean, including all prepare comman If any [build command](/nodejs/how-to/build-pipeline#buildcommands) fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/nodejs/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the `--verbose` option. -```yml +```yaml buildCommands: - npm i --verbose - npm run build diff --git a/apps/docs/content/nodejs/how-to/create.mdx b/apps/docs/content/nodejs/how-to/create.mdx index 13c2e1e4..7dda722a 100644 --- a/apps/docs/content/nodejs/how-to/create.mdx +++ b/apps/docs/content/nodejs/how-to/create.mdx @@ -159,7 +159,7 @@ Zerops uses a YAML format to describe the project infrastructure. #### Basic example: -Create a directory called `my-project`. Inside the `my-project` directory, create a `description.yml` file with the following content: +Create a directory called `my-project`. Inside the `my-project` directory, create a `description.yaml` file with the following content: ```yaml # basic project data project: @@ -181,7 +181,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Node.js version 20 service with default [auto scaling](/nodejs/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/nodejs/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Node.js version 20 service with default [auto scaling](/nodejs/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/nodejs/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -190,7 +190,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -239,7 +239,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a Node.js service and a [PostgreSQL](/postgresql/overview) service. -Node.js service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yml](/nodejs/how-to/build-pipeline#ports). Node.js service will run on version 20 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +Node.js service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yaml](/nodejs/how-to/build-pipeline#ports). Node.js service will run on version 20 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -248,7 +248,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -279,7 +279,7 @@ The `project:` section is required. Only one project can be defined. -At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Node.js and PostgreSQL services but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Node.js and PostgreSQL services but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -309,7 +309,7 @@ At least one service in `services:` section is required. You can create a projec @@ -373,9 +373,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version.
- See what [Node.js service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [Node.js service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -388,11 +388,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -408,7 +408,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -438,9 +438,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -454,4 +454,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/nodejs/how-to/customize-runtime.mdx b/apps/docs/content/nodejs/how-to/customize-runtime.mdx index 244ca7b1..e0574696 100644 --- a/apps/docs/content/nodejs/how-to/customize-runtime.mdx +++ b/apps/docs/content/nodejs/how-to/customize-runtime.mdx @@ -24,9 +24,9 @@ The default Node.js runtime environment contains: - NPM, Yarn, Git and NPX tools :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: When the first deploy with a defined `prepareCommands` attribute is triggered, Zerops will diff --git a/apps/docs/content/nodejs/how-to/deploy-process.mdx b/apps/docs/content/nodejs/how-to/deploy-process.mdx index 5f47d7c0..37570a10 100644 --- a/apps/docs/content/nodejs/how-to/deploy-process.mdx +++ b/apps/docs/content/nodejs/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/nodejs/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/nodejs/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/nodejs/how-to/build-pipeline#start), configure a [readiness check](/nodejs/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/nodejs/how-to/build-pipeline#start), configure a [readiness check](/nodejs/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/nodejs/how-to/env-variables.mdx b/apps/docs/content/nodejs/how-to/env-variables.mdx index 9533838e..093c98d1 100644 --- a/apps/docs/content/nodejs/how-to/env-variables.mdx +++ b/apps/docs/content/nodejs/how-to/env-variables.mdx @@ -23,12 +23,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -40,13 +40,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/nodejs/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/nodejs/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/nodejs/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/nodejs/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/nodejs/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/nodejs/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/nodejs/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/nodejs/how-to/upgrade.mdx b/apps/docs/content/nodejs/how-to/upgrade.mdx index 2d100b1d..1defee31 100644 --- a/apps/docs/content/nodejs/how-to/upgrade.mdx +++ b/apps/docs/content/nodejs/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the Node.js version description: Learn how to upgrade your node.js service's version --- -You can upgrade or downgrade your Node.js service to a different major Node.js version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/nodejs/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Node.js version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Node.js version for your runtime. +You can upgrade or downgrade your Node.js service to a different major Node.js version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/nodejs/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Node.js version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Node.js version for your runtime. -If you want to build your application with a different major Node.js version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major Node.js version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/nodejs/overview.mdx b/apps/docs/content/nodejs/overview.mdx index e4650e8c..411ebf2b 100644 --- a/apps/docs/content/nodejs/overview.mdx +++ b/apps/docs/content/nodejs/overview.mdx @@ -25,9 +25,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-nodejs/blob/main/zerops-project-import.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-nodejs/blob/main/zerops-project-import.yaml)): -```yml +```yaml project: name: recipe-nodejs tags: @@ -116,12 +116,12 @@ It doesn't matter whether it's your first curious introduction to Zerops, you ha }, { type: 'link', - href: '/nodejs/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/nodejs/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/object-storage/how-to/create.mdx b/apps/docs/content/object-storage/how-to/create.mdx index 88df1297..5e7f71fd 100644 --- a/apps/docs/content/object-storage/how-to/create.mdx +++ b/apps/docs/content/object-storage/how-to/create.mdx @@ -102,7 +102,7 @@ Or you can set your own access policy in the [IAM Policy JSON format](https://mi #### Example: -```yml +```yaml { 'Version': '2012-10-17', 'Statement': @@ -156,9 +156,9 @@ Zerops uses a yaml format file to describe the project infrastructure. #### Example -Create a directory `my-project`. Create a `description.yml` file inside the directory with the following content: +Create a directory `my-project`. Create a `description.yaml` file inside the directory with the following content: -```yml +```yaml # basic project data project: # project name @@ -192,7 +192,7 @@ services: The yaml file describes your future project infrastructure. The project will contain one Object storage service named `upload`. The bucket quota will be set to 73 GB and the bucket access policy will be set to `public-write`. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -223,7 +223,7 @@ The `project:` section is required. Only one project can be defined. -At least one service in `services:` section is required. You can create a project with multiple services. The example above contains only Object storage service but you can create a description.yml with different types of services. +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains only Object storage service but you can create a description.yaml with different types of services. @@ -305,9 +305,9 @@ Each Object storage service can only contain one bucket. If your application nee Bucket will be created with a name based on the given service name and a random prefix. The name of the bucket cannot be changed later. -### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -320,11 +320,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -339,9 +339,9 @@ If you have access to more than one client, you must specify the client ID for w ### Add Object service to an existing project -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: -```yml +```yaml # array of project services services: - # service name @@ -362,9 +362,9 @@ services: The yaml file describes the list of one or more services that you want to add to your existing project. In the example above, one Object storage service named upload will be created. The bucket quota will be set to 73 GB and the bucket access policy will be set to `public-write`. -The content of the `services:` section of `import.yml` is identical to the [project description file]. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the [project description file]. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -378,11 +378,11 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the `import.yml` file is 100 kB. +Maximum size of the `import.yaml` file is 100 kB. #### Example -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```bash # array of project services @@ -396,4 +396,4 @@ services: The yaml file describes the list of one or more services that you want to add to your existing project. In the example above, one Object storage service in the single container mode with default auto scaling configuration will be added to your project. Hostname of the new service will be set to `storage`. -The content of the `services:` section of `import.yml` is identical to the [project description file](#create-a-project-description-file). The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the [project description file](#create-a-project-description-file). The `import.yaml` never contains the `project:` section because the project already exists. diff --git a/apps/docs/content/object-storage/how-to/update-bucket.mdx b/apps/docs/content/object-storage/how-to/update-bucket.mdx index 472e1cb1..52ba1ded 100644 --- a/apps/docs/content/object-storage/how-to/update-bucket.mdx +++ b/apps/docs/content/object-storage/how-to/update-bucket.mdx @@ -52,7 +52,7 @@ Or you can set your own access policy in the [IAM Policy JSON format](https://mi #### Example: -```yml +```yaml { 'Version': '2012-10-17', 'Statement': diff --git a/apps/docs/content/php/how-to/build-pipeline.mdx b/apps/docs/content/php/how-to/build-pipeline.mdx index 86aad20a..edc3b65e 100644 --- a/apps/docs/content/php/how-to/build-pipeline.mdx +++ b/apps/docs/content/php/how-to/build-pipeline.mdx @@ -9,11 +9,11 @@ import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; Zerops provides a customizable build and runtime environment for your PHP application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -76,9 +76,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -103,7 +103,7 @@ Following options are available for PHP builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -120,12 +120,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -139,7 +139,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customise your build environment use the [prepareCommands](/php/how-to/build-pipeline#preparecommands) attribute. @@ -184,7 +184,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -225,7 +225,7 @@ You can configure your prepare commands to be run in a single shell instance or _REQUIRED._ Defines build commands. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -252,7 +252,7 @@ Before the build commands are triggered the build container contains: Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. -```yml +```yaml buildCommands: - | composer install --optimize-autoloader --no-dev @@ -263,7 +263,7 @@ buildCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. -```yml +```yaml buildCommands: - composer install --optimize-autoloader --no-dev - php artisan env @@ -273,7 +273,7 @@ buildCommands: If any command fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/php/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the verbose option. -```yml +```yaml buildCommands: - composer install -v ``` @@ -284,7 +284,7 @@ If the command ends successfully, it returns the exit code 0 and Zerops triggers _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -294,7 +294,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -302,7 +302,7 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - public - file.txt @@ -310,13 +310,13 @@ deployFiles: Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -328,19 +328,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` @@ -359,7 +359,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -386,7 +386,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -404,7 +404,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -436,7 +436,7 @@ Following options are available for PHP builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -459,12 +459,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -484,7 +484,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customise your build environment use the `prepareCommands` attribute. @@ -563,7 +563,7 @@ _OPTIONAL._ Customises the PHP runtime environment by installing additional depe additional packages or tools add one or more prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -624,14 +624,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -643,13 +643,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -694,7 +694,7 @@ By default, the document root is configured to `/var/www`. Customize the folder that will be used as the root of the publicly accessible web server content. Enter the path relative to the `/var/www` folder. E.g. `documentRoot: public` will set the web server document root to `/var/www/public`. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -725,7 +725,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -763,7 +763,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -812,7 +812,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -842,7 +842,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -881,7 +881,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -929,7 +929,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/php/how-to/build-process.mdx b/apps/docs/content/php/how-to/build-process.mdx index 510b3e25..836cf65c 100644 --- a/apps/docs/content/php/how-to/build-process.mdx +++ b/apps/docs/content/php/how-to/build-process.mdx @@ -35,14 +35,14 @@ The build cancellation is available before the build pipeline is finished. When The default PHP build environment contains: - {data.alpine.default} -- selected version of PHP defined in `zerops.yml` [build.base](/php/how-to/build-pipeline#base) parameter +- selected version of PHP defined in `zerops.yaml` [build.base](/php/how-to/build-pipeline#base) parameter - Git and Composer - [zCLI](/references/cli) :::note -To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yml/specification#os-) attribute. +To use Ubuntu instead of the default Alpine, set the [build.os](/zerops-yaml/specification#os-) attribute. -Additional packages and tools can be installed using [build.prepareCommands](/zerops-yml/specification#preparecommands-). +Additional packages and tools can be installed using [build.prepareCommands](/zerops-yaml/specification#preparecommands-). ::: ## PHP build hardware resources @@ -85,7 +85,7 @@ This will force Zerops to run the next build clean, including all prepare comman If any [build command](/php/how-to/build-pipeline#buildcommands) fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/php/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the `-v` verbose option. -```yml +```yaml buildCommands: - composer install -v ``` diff --git a/apps/docs/content/php/how-to/create.mdx b/apps/docs/content/php/how-to/create.mdx index 7ccffc14..7365b477 100644 --- a/apps/docs/content/php/how-to/create.mdx +++ b/apps/docs/content/php/how-to/create.mdx @@ -155,7 +155,7 @@ Zerops uses a yaml format to describe the project infrastructure. #### Basic example: -Create a directory `my-project`. Create an `description.yml` file inside the `my-project` directory with following content: +Create a directory `my-project`. Create an `description.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -178,7 +178,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one PHP version 8.1 service with default [auto scaling](/php/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/php/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one PHP version 8.1 service with default [auto scaling](/php/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/php/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -187,7 +187,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -236,7 +236,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a PHP service and a [PostgreSQL](/postgresql/overview) service. -PHP service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yml](/php/how-to/build-pipeline#ports). PHP service will run on version 8.1 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +PHP service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yaml](/php/how-to/build-pipeline#ports). PHP service will run on version 8.1 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -245,7 +245,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -277,7 +277,7 @@ The `project:` section is required. Only one project can be defined.
-At least one service in `services:` section is required. You can create a project with multiple services. The example above contains PHP and PostgreSQL services but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains PHP and PostgreSQL services but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -307,7 +307,7 @@ At least one service in `services:` section is required. You can create a projec @@ -371,9 +371,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version.
- See what [PHP service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [PHP service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -386,11 +386,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -407,7 +407,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -437,9 +437,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -453,4 +453,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/php/how-to/customize-runtime.mdx b/apps/docs/content/php/how-to/customize-runtime.mdx index 02dc1595..72114f78 100644 --- a/apps/docs/content/php/how-to/customize-runtime.mdx +++ b/apps/docs/content/php/how-to/customize-runtime.mdx @@ -13,9 +13,9 @@ The default PHP runtime environment contains: - Git and Composer :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: ## Runtime Flow @@ -33,7 +33,7 @@ When the first deploy with a defined `prepareCommands` attribute is triggered, Z 1. Create a prepare runtime container 2. Optionally: [copy selected folders or files from your build container](/php/how-to/build-pipeline#copy-folders-or-files-from-your-build-container) -3. Run the [run.prepareCommands](/zerops-yml/specification#preparecommands--1) commands in the defined order +3. Run the [run.prepareCommands](/zerops-yaml/specification#preparecommands--1) commands in the defined order ## Command exit code @@ -63,11 +63,11 @@ When the custom runtime cache is used, Zerops doesn't create a prepare runtime c ### Overwrite php.ini files -You can override PHP configuration directives by setting environment variables in your `zerops.yml` file. +You can override PHP configuration directives by setting environment variables in your `zerops.yaml` file. Here's an example of how to adjust PHP's `post_max_size` directive: -```yml +```yaml zerops: # define hostname of your service - setup: app diff --git a/apps/docs/content/php/how-to/customize-web-server.mdx b/apps/docs/content/php/how-to/customize-web-server.mdx index be7ffc67..90907ea6 100644 --- a/apps/docs/content/php/how-to/customize-web-server.mdx +++ b/apps/docs/content/php/how-to/customize-web-server.mdx @@ -45,7 +45,7 @@ server { The configuration contains 2 variables: -- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yml`. If the attribute is not specified, the default value `/var/www` is used. +- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yaml`. If the attribute is not specified, the default value `/var/www` is used. - **`{{.PhpSocket}}`** is replaced by a path to the PHP socket based on the PHP version. @@ -57,7 +57,7 @@ Follow these steps to customize the Nginx configuration in PHP+Nginx service: 2. Optionally use following variables: -- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yml`. If the attribute is not specified, the default value `/var/www` is used. +- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yaml`. If the attribute is not specified, the default value `/var/www` is used. Example: @@ -73,7 +73,7 @@ Example: fastcgi_pass unix:{{.PhpSocket}}; ``` -- **`{{.Environment.ENV_NAME}}`** is replaced by the [env variable](/php/how-to/env-variables) value. The env variable must be either defined in [run.envVariables](/php/how-to/build-pipeline#envvariables-1) in `zerops.yml` or set as a [secret](/php/how-to/env-variables#set-secret-env-variables-in-zerops-gui) or [generated](/php/how-to/env-variables#generated-env-variables) env variable in Zerops GUI. +- **`{{.Environment.ENV_NAME}}`** is replaced by the [env variable](/php/how-to/env-variables) value. The env variable must be either defined in [run.envVariables](/php/how-to/build-pipeline#envvariables-1) in `zerops.yaml` or set as a [secret](/php/how-to/env-variables#set-secret-env-variables-in-zerops-gui) or [generated](/php/how-to/env-variables#generated-env-variables) env variable in Zerops GUI. :::caution Use the **.tmpl** file extension to make Zerops interpret the file as a template. Zerops will replace the supported variables listed above. @@ -82,12 +82,12 @@ Use the **.tmpl** file extension to make Zerops interpret the file as a template 3. Check that your Nginx configuration is consistent with Zerops requirements: - Do not use IP addresses in the `listen` directive -- If you use other ports than `:80` in the `listen` directive, add them to the `run.ports` in your `zerops.yml` as well. +- If you use other ports than `:80` in the `listen` directive, add them to the `run.ports` in your `zerops.yaml` as well. - Do not use the port **:443**. All the incoming `https://` traffic is terminated on the Zerops internal balancer where the SSL certificate is installed and the request is forwarded to your PHP+Nginx service as a **http://** on the port **:80**. -4. Add the `siteConfigPath` to the run section of your `zerops.yml` +4. Add the `siteConfigPath` to the run section of your `zerops.yaml` -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -146,7 +146,7 @@ The default PHP+Apache service has following Apache configuration: The configuration contains 2 variables: -- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yml`. If the attribute is not specified, the default value `/var/www` is used. +- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yaml`. If the attribute is not specified, the default value `/var/www` is used. - **`{{.PhpSocket}}`** is replaced by a path to the PHP socket based on the PHP version. @@ -158,7 +158,7 @@ Follow these steps to customize the Apache configuration in PHP+Apache service: 2. Optionally use following variables: -- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yml`. If the attribute is not specified, the default value `/var/www` is used. +- **`{{.DocumentRoot}}`** is replaced by the `run.documentRoot` attribute from the `zerops.yaml`. If the attribute is not specified, the default value `/var/www` is used. Example: @@ -176,7 +176,7 @@ Example: ``` -- **`{{.Environment.ENV_NAME}}`** is replaced by the [env variable](/php/how-to/env-variables) value. The env variable must be either defined in [run.envVariables](<(/php/how-to/build-pipeline#envvariables-1)>) in `zerops.yml` or set as a [secret](/php/how-to/env-variables#set-secret-env-variables-in-zerops-gui) or [generated](/php/how-to/env-variables#generated-env-variables) env variable in Zerops GUI. +- **`{{.Environment.ENV_NAME}}`** is replaced by the [env variable](/php/how-to/env-variables) value. The env variable must be either defined in [run.envVariables](<(/php/how-to/build-pipeline#envvariables-1)>) in `zerops.yaml` or set as a [secret](/php/how-to/env-variables#set-secret-env-variables-in-zerops-gui) or [generated](/php/how-to/env-variables#generated-env-variables) env variable in Zerops GUI. :::caution Use the **.tmpl** file extension to make Zerops interpret the file as a template. Zerops will replace the supported variables listed above. @@ -185,12 +185,12 @@ Use the **.tmpl** file extension to make Zerops interpret the file as a template 3. Check that your Apache configuration is consistent with Zerops requirements: - Do not use IP addresses in the `` directive -- If you use other ports than `:80` in the `` directive, add them to the `run.ports` in your `zerops.yml` as well. +- If you use other ports than `:80` in the `` directive, add them to the `run.ports` in your `zerops.yaml` as well. Do not use the port **:443**. All the incoming `https://` traffic is terminated on the Zerops internal balancer where the SSL certificate is installed and the request is forwarded to your PHP+Apache service as a **http://** on the port **:80**. -4. Add the `siteConfigPath` to the run section of your `zerops.yml`. +4. Add the `siteConfigPath` to the run section of your `zerops.yaml`. -```yml +```yaml zerops: # define hostname of your service - setup: app diff --git a/apps/docs/content/php/how-to/deploy-process.mdx b/apps/docs/content/php/how-to/deploy-process.mdx index b14b317b..eae4905e 100644 --- a/apps/docs/content/php/how-to/deploy-process.mdx +++ b/apps/docs/content/php/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/php/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/php/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready as soon as it starts, configure a [readiness check](/php/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready as soon as it starts, configure a [readiness check](/php/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/php/how-to/env-variables.mdx b/apps/docs/content/php/how-to/env-variables.mdx index ffe2288e..5b56f308 100644 --- a/apps/docs/content/php/how-to/env-variables.mdx +++ b/apps/docs/content/php/how-to/env-variables.mdx @@ -23,12 +23,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -41,13 +41,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/php/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/php/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/php/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/php/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/php/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/php/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/php/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/php/how-to/upgrade.mdx b/apps/docs/content/php/how-to/upgrade.mdx index 6878f091..90c77a3d 100644 --- a/apps/docs/content/php/how-to/upgrade.mdx +++ b/apps/docs/content/php/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the PHP version description: Learn how to upgrade your php service's version --- -You can upgrade or downgrade your PHP service to a different major PHP version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/php/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required PHP version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current PHP version for your runtime. +You can upgrade or downgrade your PHP service to a different major PHP version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/php/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required PHP version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current PHP version for your runtime. -If you want to build your application with a different major PHP version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major PHP version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/php/overview.mdx b/apps/docs/content/php/overview.mdx index 4c7f86d5..97187b6e 100644 --- a/apps/docs/content/php/overview.mdx +++ b/apps/docs/content/php/overview.mdx @@ -23,9 +23,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-php-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-php-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: @@ -96,12 +96,12 @@ Do you have any questions? Check the step-by-step tutorial, browse the documenta }, { type: 'link', - href: '/php/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/php/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/postgresql/how-to/create.mdx b/apps/docs/content/postgresql/how-to/create.mdx index c4cac9a5..efe641ec 100644 --- a/apps/docs/content/postgresql/how-to/create.mdx +++ b/apps/docs/content/postgresql/how-to/create.mdx @@ -143,9 +143,9 @@ Zerops uses a YAML format file to describe the project infrastructure. #### Basic example -Create a directory `my-project`. Create a `description.yml` file inside the directory with the following content: +Create a directory `my-project`. Create a `description.yaml` file inside the directory with the following content: -```yml +```yaml # Basic project data project: # project name @@ -164,9 +164,9 @@ The YAML file describes your future project infrastructure. The project will con #### Full example -Create a directory `my-project`. Create a `description.yml` file inside the directory with the following content: +Create a directory `my-project`. Create a `description.yaml` file inside the directory with the following content: -```yml +```yaml # Basic project data project: # project name @@ -211,7 +211,7 @@ The hostname of the first service will be set to `postgresql1`. The [high availa The hostname of the second service will be set to `postgresql2`. The [single container](#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/scale) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -243,7 +243,7 @@ The `project:` section is required. Only one project can be defined. -At least one service in the `services:` section is required. You can create a project with multiple services. The example above contains only PostgreSQL services but you can create a `description.yml` with [different types] of services. +At least one service in the `services:` section is required. You can create a project with multiple services. The example above contains only PostgreSQL services but you can create a `description.yaml` with [different types] of services. @@ -278,7 +278,7 @@ At least one service in the `services:` section is required. You can create a pr @@ -364,9 +364,9 @@ At least one service in the `services:` section is required. You can create a pr The PostgreSQL service **hostname** and **mode** are fixed after the service is created. They can't be changed later. ::: -### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -379,11 +379,11 @@ Flags: --workingDie string Sets a custom working directory. The default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -The maximum size of the `description.yml` file is 100 kB. +The maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -399,7 +399,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```bash # array of project services @@ -415,9 +415,9 @@ services: The YAML file describes the list of one or more services that you want to add to your existing project. In the example above, one PostgreSQL service in the [single container mode](#single-container) with default [auto scaling](/postgresql/how-to/scale) configuration will be added to your project. The hostname of the new service will be set to `postgresql1`. -The content of the `services:` section of `import.yml` is identical to the [project description file](#create-a-project-description-file). The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the [project description file](#create-a-project-description-file). The `import.yaml` never contains the `project:` section because the project already exists. -When your `import.yml` is ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When your `import.yaml` is ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -431,4 +431,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -The maximum size of the `import.yml` file is 100 kB. +The maximum size of the `import.yaml` file is 100 kB. diff --git a/apps/docs/content/python/how-to/build-pipeline.mdx b/apps/docs/content/python/how-to/build-pipeline.mdx index f29a9539..3d4ceb89 100644 --- a/apps/docs/content/python/how-to/build-pipeline.mdx +++ b/apps/docs/content/python/how-to/build-pipeline.mdx @@ -9,11 +9,11 @@ import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; Zerops provides a customizable build and runtime environment for your Python application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -74,9 +74,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -101,7 +101,7 @@ Following options are available for Python builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -118,12 +118,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -137,7 +137,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customize your build environment use the [prepareCommands](/python/how-to/build-pipeline#preparecommands) attribute. @@ -182,7 +182,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -218,7 +218,7 @@ If any command fails, it returns an exit code other than 0 and the build is canc Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. -```yml +```yaml prepareCommands: - | apt update @@ -229,7 +229,7 @@ prepareCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. -```yml +```yaml prepareCommands: - apt update - apt install python3-pip # already installed for Python services @@ -239,7 +239,7 @@ prepareCommands: _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -248,7 +248,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -256,20 +256,20 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - app.py ``` Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -281,19 +281,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` @@ -313,7 +313,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -340,7 +340,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -358,7 +358,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -389,7 +389,7 @@ Following options are available for Python builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -412,12 +412,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -437,7 +437,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customize your build environment use the `prepareCommands` attribute. @@ -504,7 +504,7 @@ _OPTIONAL._ Customises the Python runtime environment by installing additional d prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -557,7 +557,7 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app @@ -576,13 +576,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -622,7 +622,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -643,7 +643,7 @@ Read more about [environment variables](/python/how-to/env-variables) in Zerops. _REQUIRED._ Defines the start command for your Python application. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -677,7 +677,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -727,7 +727,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -756,7 +756,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -795,7 +795,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -845,7 +845,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/python/how-to/build-process.mdx b/apps/docs/content/python/how-to/build-process.mdx index df59e796..e339f192 100644 --- a/apps/docs/content/python/how-to/build-process.mdx +++ b/apps/docs/content/python/how-to/build-process.mdx @@ -44,11 +44,11 @@ The build cancellation is available before the build pipeline is finished. When The default Python build environment contains: - {data.alpine.default} -- selected version of Python defined in `zerops.yml` [build.base](/python/how-to/build-pipeline#base) parameter +- selected version of Python defined in `zerops.yaml` [build.base](/python/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - `pip` and `git` -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/python/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/python/how-to/build-pipeline#preparecommands) commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/python/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/python/how-to/build-pipeline#preparecommands) commands to your `zerops.yaml`. :::info The application code is available in the `/var/www` folder in your build container before the prepare commands are triggered. This allows you to use any file from your application code in your prepare commands (e.g. a configuration file). diff --git a/apps/docs/content/python/how-to/create.mdx b/apps/docs/content/python/how-to/create.mdx index c5840aa0..04a21558 100644 --- a/apps/docs/content/python/how-to/create.mdx +++ b/apps/docs/content/python/how-to/create.mdx @@ -159,7 +159,7 @@ Zerops uses a yaml format to describe the project infrastructure. #### Basic example: -Create a directory `my-project`. Create an `description.yml` file inside the `my-project` directory with following content: +Create a directory `my-project`. Create an `description.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -182,7 +182,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Python version 3.12 service with default [auto scaling](/python/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/python/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Python version 3.12 service with default [auto scaling](/python/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/python/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -191,7 +191,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -240,7 +240,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a Python service and a [PostgreSQL](/postgresql/overview) service. -Python service with "app" hostname, the internal port(s) the service listens on will be defined later in the zerops.yml. Python service will run on version 3.12 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +Python service with "app" hostname, the internal port(s) the service listens on will be defined later in the zerops.yaml. Python service will run on version 3.12 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -249,7 +249,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -281,7 +281,7 @@ The `project:` section is required. Only one project can be defined.
Specifies the service type and version.
- See what [PostgreSQL service types](/references/importyml/type-list#database-services) are currently supported. + See what [PostgreSQL service types](/references/import-yaml/type-list#database-services) are currently supported.
-At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Python and PostgreSQL services but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Python and PostgreSQL services but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -311,7 +311,7 @@ At least one service in `services:` section is required. You can create a projec @@ -375,9 +375,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version.
- See what [Python service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [Python service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -390,11 +390,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -410,7 +410,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -440,9 +440,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -456,4 +456,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/python/how-to/customize-runtime.mdx b/apps/docs/content/python/how-to/customize-runtime.mdx index a755a0d7..5e7e4aa1 100644 --- a/apps/docs/content/python/how-to/customize-runtime.mdx +++ b/apps/docs/content/python/how-to/customize-runtime.mdx @@ -22,9 +22,9 @@ The default Python runtime environment contains: - Git and PIP :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: ## Runtime Flow diff --git a/apps/docs/content/python/how-to/deploy-process.mdx b/apps/docs/content/python/how-to/deploy-process.mdx index e7d25f8d..97211a54 100644 --- a/apps/docs/content/python/how-to/deploy-process.mdx +++ b/apps/docs/content/python/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/python/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/python/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/python/how-to/build-pipeline#start), configure a [readiness check](/python/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/python/how-to/build-pipeline#start), configure a [readiness check](/python/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/python/how-to/env-variables.mdx b/apps/docs/content/python/how-to/env-variables.mdx index 99ce45a8..0345b09d 100644 --- a/apps/docs/content/python/how-to/env-variables.mdx +++ b/apps/docs/content/python/how-to/env-variables.mdx @@ -23,12 +23,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -41,13 +41,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/python/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/python/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/python/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/python/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/python/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/python/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/python/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/python/how-to/upgrade.mdx b/apps/docs/content/python/how-to/upgrade.mdx index 0e314693..33162f47 100644 --- a/apps/docs/content/python/how-to/upgrade.mdx +++ b/apps/docs/content/python/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the Python version description: Learn how to upgrade your python service's version --- -You can upgrade or downgrade your Python service to a different major Python version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/python/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Python version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Python version for your runtime. +You can upgrade or downgrade your Python service to a different major Python version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/python/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Python version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Python version for your runtime. -If you want to build your application with a different major Python version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major Python version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/python/overview.mdx b/apps/docs/content/python/overview.mdx index c7ae04d3..1e6d8d36 100644 --- a/apps/docs/content/python/overview.mdx +++ b/apps/docs/content/python/overview.mdx @@ -23,9 +23,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-python-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-python-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: @@ -95,12 +95,12 @@ Do you have any questions? Check the step-by-step tutorial, browse the documenta }, { type: 'link', - href: '/python/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/python/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/python/tutorial/quickstart.mdx b/apps/docs/content/python/tutorial/quickstart.mdx index 7dbb8647..b2e384de 100644 --- a/apps/docs/content/python/tutorial/quickstart.mdx +++ b/apps/docs/content/python/tutorial/quickstart.mdx @@ -20,9 +20,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-python-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-python-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: diff --git a/apps/docs/content/python/tutorial/runtime-sql.mdx b/apps/docs/content/python/tutorial/runtime-sql.mdx index b321e70f..37b776d3 100644 --- a/apps/docs/content/python/tutorial/runtime-sql.mdx +++ b/apps/docs/content/python/tutorial/runtime-sql.mdx @@ -23,7 +23,7 @@ In the detail of each step, you can find a link with more information about the

2. Create a project.

- Learn more about projects in + Learn more about projects in Zerops. See how to import a whole project into Zerops.

@@ -31,7 +31,7 @@ In the detail of each step, you can find a link with more information about the
3. In the left menu, click on Import services, copy & paste the - contents of the `import-services.yml` config file from the recipe + contents of the `import-services.yaml` config file from the recipe repository of your choice. Then click on Import service.

diff --git a/apps/docs/content/python/tutorial/step-by-step.mdx b/apps/docs/content/python/tutorial/step-by-step.mdx index 5b6d35a6..135216c8 100644 --- a/apps/docs/content/python/tutorial/step-by-step.mdx +++ b/apps/docs/content/python/tutorial/step-by-step.mdx @@ -23,7 +23,7 @@ In the detail of each step, you can find a link with more information about the

2. Create a project.

- Learn more about projects in + Learn more about projects in Zerops. See how to import a whole project into Zerops.

@@ -31,7 +31,7 @@ In the detail of each step, you can find a link with more information about the
3. In the left menu, click on Import services, copy & paste the - contents of this yaml file and click on Import service. + contents of this yaml file and click on Import service.

Learn more about services in diff --git a/apps/docs/content/references/cli/commands.mdx b/apps/docs/content/references/cli/commands.mdx index 031b886f..694dd14a 100644 --- a/apps/docs/content/references/cli/commands.mdx +++ b/apps/docs/content/references/cli/commands.mdx @@ -147,7 +147,7 @@ zcli push {flags} - `--serviceId `: Required if you have access to multiple services. Specifies the target service ID for command execution. - `--versionName `: Sets a custom version name. If the `VERSIONNAME` environment variable exists, its value is used automatically. - `--workingDir `: Sets a custom working directory. Defaults to the current directory (`./`). -- `--zeropsYamlPath `: Specifies a custom path to the `zerops.yml` file relative to the working directory. By default, zCLI looks for `zerops.yml` in the working directory. +- `--zeropsYamlPath `: Specifies a custom path to the `zerops.yaml` file relative to the working directory. By default, zCLI looks for `zerops.yaml` in the working directory. --- @@ -203,9 +203,9 @@ zcli service {sub-command} [arguments] [flags] - `--serviceId `: Required if you have access to multiple services - `--versionName `: Sets a custom version name - `--workingDir `: Sets a custom working directory (default: `./`) - - `--zeropsYamlPath `: Specifies a custom path to the `zerops.yml` file + - `--zeropsYamlPath `: Specifies a custom path to the `zerops.yaml` file - See how to use [.deployignore](/zerops-yml/specification#deployignore) file. + See how to use [.deployignore](/zerops-yaml/specification#deployignore) file. - `enable-subdomain` diff --git a/apps/docs/content/references/github-integration.mdx b/apps/docs/content/references/github-integration.mdx index 2a1883fa..ca3e2950 100644 --- a/apps/docs/content/references/github-integration.mdx +++ b/apps/docs/content/references/github-integration.mdx @@ -13,8 +13,8 @@ This guide walks you through both integration methods, helping you choose and im ## Prerequisites -Before starting the integration process, ensure your repository contains a valid `zerops.yml` configuration file located in the root directory. This file is essential for defining the build, deploy, and run processes. -For detailed information on how to create or modify this file, refer to the [Zerops YAML configuration](/zerops-yml/specification) guide. +Before starting the integration process, ensure your repository contains a valid `zerops.yaml` configuration file located in the root directory. This file is essential for defining the build, deploy, and run processes. +For detailed information on how to create or modify this file, refer to the [Zerops YAML configuration](/zerops-yaml/specification) guide. --- @@ -105,7 +105,7 @@ As an alternative to direct integration, you can use GitHub Actions to manage yo 1. **Create Workflow Configuration** - Create a new file at `.github/workflows/deploy.yml` in your repository: + Create a new file at `.github/workflows/deploy.yaml` in your repository: ```yaml name: Deploy to Zerops diff --git a/apps/docs/content/references/gitlab-integration.mdx b/apps/docs/content/references/gitlab-integration.mdx index 769a08a6..7b9f7239 100644 --- a/apps/docs/content/references/gitlab-integration.mdx +++ b/apps/docs/content/references/gitlab-integration.mdx @@ -11,8 +11,8 @@ This guide walks you through the step-by-step process to link your repository, c ## Prerequisites -Before starting the integration process, ensure your repository contains a valid `zerops.yml` configuration file located in the root directory. This file is essential for defining the build, deploy, and run processes. -For detailed information on how to create or modify this file, refer to the [Zerops YAML configuration](/zerops-yml/specification) guide. +Before starting the integration process, ensure your repository contains a valid `zerops.yaml` configuration file located in the root directory. This file is essential for defining the build, deploy, and run processes. +For detailed information on how to create or modify this file, refer to the [Zerops YAML configuration](/zerops-yaml/specification) guide. --- diff --git a/apps/docs/content/references/importyml/pre-processor.mdx b/apps/docs/content/references/import-yaml/pre-processor.mdx similarity index 99% rename from apps/docs/content/references/importyml/pre-processor.mdx rename to apps/docs/content/references/import-yaml/pre-processor.mdx index a84c0739..393676cd 100644 --- a/apps/docs/content/references/importyml/pre-processor.mdx +++ b/apps/docs/content/references/import-yaml/pre-processor.mdx @@ -13,7 +13,7 @@ The `yamlPreprocessor` option in your project & service import YAML allows you t The `yamlPreprocessor=on` is required as the first line in your import YAML to enable the preprocessor. -```yml +```yaml #yamlPreprocessor=on project: name: project @@ -1206,7 +1206,7 @@ services: - Generated as a multiline value - The same value as in APP_PUBLIC_KEY. - ```yml + ```yaml GENERATED_PUBLIC_KEY: | -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1kYEJ7bjBiXzBMI/cC6w diff --git a/apps/docs/content/references/importyml/type-list.mdx b/apps/docs/content/references/import-yaml/type-list.mdx similarity index 100% rename from apps/docs/content/references/importyml/type-list.mdx rename to apps/docs/content/references/import-yaml/type-list.mdx diff --git a/apps/docs/content/references/import.mdx b/apps/docs/content/references/import.mdx index 0bcefed5..048d7590 100644 --- a/apps/docs/content/references/import.mdx +++ b/apps/docs/content/references/import.mdx @@ -22,7 +22,7 @@ Both methods provide an easy way to migrate or replicate your infrastructure acc This section provides a comprehensive example of an import YAML configuration file, allowing you to define and import a project and its services with environment variables. - ```yml + ```yaml # ==== Define a project to import ==== project: # REQUIRED. Name of your project @@ -98,12 +98,12 @@ services: access_log syslog:server=unix:/dev/log,facility=local1 default_short; error_log syslog:server=unix:/dev/log,facility=local1; } - # zerops.yml service name or full config file + # zerops.yaml service name or full config file zeropsSetup: build: base: nodejs@latest buildCommands: - - echo zerops.yml from import + - echo zerops.yaml from import - yarn - yarn run build deployFiles: ./ @@ -182,7 +182,7 @@ The `corePackage` value can't be changed later. Make sure to choose a suitable c This example will create a project named `project0` with [serious core](/features/infrastructure#serious-core) package and the description `This project is an example only`. The project will have two tags: `test` and `dev`: -```yml +```yaml # ==== Define a project to import ==== project: # REQUIRED. Name of your project @@ -233,7 +233,7 @@ The service configuration is used to define the services, environment variables, type enum, REQUIRED - Specifies the service type and version. See [supported types](/references/importyml/type-list). + Specifies the service type and version. See [supported types](/references/import-yaml/type-list). mode @@ -293,7 +293,7 @@ The service configuration is used to define the services, environment variables, -```yml +```yaml #yamlPreprocessor=on services: # REQUIRED: Name of your service @@ -331,7 +331,7 @@ This yaml will create a `nodejs@latest` service named `service1` in `HA` (High-A The `services` object allows you to define one or more services in the same yaml file and you can define the same parameters like `hostname`, `type`, `mode`, `envSecrets`, `objectStorageSize`, `objectStoragePolicy`, `objectStorageRawPolicy`, `buildFromGit`, `enableSubdomainAccess`, `priority` for each service no matter if it's runtime, database, etc. :::caution -The `yamlPreprocessor` option in your project & service import YAML is required to generate random secret values, passwords, and public/private key pairs. For more information, see the [yamlPreprocessor](/references/importyml/pre-processor) page. +The `yamlPreprocessor` option in your project & service import YAML is required to generate random secret values, passwords, and public/private key pairs. For more information, see the [yamlPreprocessor](/references/import-yaml/pre-processor) page. ::: ### Vertical Autoscaling Configuration @@ -435,7 +435,7 @@ The vertical autoscaling configuration is used to define the vertical autoscalin -```yml +```yaml services: - hostname: app type: php-nginx@8.4 @@ -497,7 +497,7 @@ The horizontal autoscaling configuration is used to define the horizontal autosc -```yml +```yaml services: - hostname: app type: php-nginx@8.4 @@ -534,7 +534,7 @@ The mount shared storage configuration is used to define the shared storage to m -```yml +```yaml services: - hostname: app type: php-nginx@8.4 @@ -570,7 +570,7 @@ The nginx configuration is used to define the nginx settings for the service. -```yml +```yaml #yamlPreprocessor=on services: - hostname: app @@ -598,9 +598,9 @@ services: The `nginxConfig: |-` parameter allows you to use a custom nginx configuration for the service. -### Using zerops.yml Configuration +### Using zerops.yaml Configuration -This shows you how you can use the `zeropsSetup` parameter as a way to insert a full [zerops.yml configuration file](/zerops-yml/specification) into your service using import yaml. +This shows you how you can use the `zeropsSetup` parameter as a way to insert a full [zerops.yaml configuration file](/zerops-yaml/specification) into your service using import yaml. #### Usage @@ -616,12 +616,12 @@ This shows you how you can use the `zeropsSetup` parameter as a way to insert a zeropsSetup string or object - Provide the name of the service from your zerops.yml (find it under `-setup: {name}`) or insert full [zerops.yml configuration file](/zerops-yml/specification). + Provide the name of the service from your zerops.yaml (find it under `-setup: {name}`) or insert full [zerops.yaml configuration file](/zerops-yaml/specification). -```yml +```yaml #yamlPreprocessor=on services: - hostname: app @@ -646,7 +646,7 @@ services: start: yarn start ``` -The `zeropsSetup: |-` parameter allows you to use a custom [zerops.yml](/zerops-yml/specification) configuration for the service. +The `zeropsSetup: |-` parameter allows you to use a custom [zerops.yaml](/zerops-yaml/specification) configuration for the service. ## Export diff --git a/apps/docs/content/references/ssh.mdx b/apps/docs/content/references/ssh.mdx index d86693a0..922e20c4 100644 --- a/apps/docs/content/references/ssh.mdx +++ b/apps/docs/content/references/ssh.mdx @@ -16,14 +16,14 @@ Before establishing an SSH connection to your runtime service, you must first co ### 1. Configure VPN Access -The [Zerops CLI (zCLI)](/references/cli) comes bundled with the [Zerops VPN](/references/vpn) client. To connect to your [Zerops project](/features/infrastructure#project): +The [Zerops CLI (zCLI)](/references/cli) comes bundled with the [Zerops VPN](/references/vpn) client. To connect to your [Zerops project](/features/infrastructure#projects): 1. [Install and configure zCLI](/references/cli) 2. [Initialize the Zerops VPN connection](/references/vpn#start-vpn) ### 2. Establish SSH Connection -Once your VPN session is active, you can connect to any [service](/features/infrastructure#services--containers) using its hostname: +Once your VPN session is active, you can connect to any [service](/features/infrastructure#services) using its hostname: ```sh ssh @@ -94,5 +94,5 @@ SSH connections should not be used for making persistent changes to your service - In [HA mode](/features/scaling-ha), changes via SSH affect only the current container - Container replacements or scaling events will deploy the original application version - For persistent changes across all containers, use: - - [`run.prepareCommands`](/zerops-yml/specification#preparecommands--1) - - [`run.initCommands`](/zerops-yml/specification#initcommands-) \ No newline at end of file + - [`run.prepareCommands`](/zerops-yaml/specification#preparecommands--1) + - [`run.initCommands`](/zerops-yaml/specification#initcommands-) \ No newline at end of file diff --git a/apps/docs/content/references/zsc.mdx b/apps/docs/content/references/zsc.mdx index 76dc7ef0..d911a47e 100644 --- a/apps/docs/content/references/zsc.mdx +++ b/apps/docs/content/references/zsc.mdx @@ -15,7 +15,7 @@ Zerops Setup Control commands can be executed in two ways: - From the web terminal interface in Zerops GUI - Using SSH connections to your containers - **Automated execution**: - - As part of your `zerops.yml` configuration file + - As part of your `zerops.yaml` configuration file ## Usage @@ -116,15 +116,15 @@ zsc shared-storage wait ### crontab -Manages scheduled tasks that are defined in your zerops.yml configuration. +Manages scheduled tasks that are defined in your zerops.yaml configuration. ```sh zsc crontab [command] ``` #### Available sub-commands -- `list`: List all crontabs defined in zerops.yml -- `run`: Execute crontab command defined in zerops.yml +- `list`: List all crontabs defined in zerops.yaml +- `run`: Execute crontab command defined in zerops.yaml #### Available flags - `-h, --help`: Help for the crontab command @@ -191,7 +191,7 @@ zsc install [flags] ``` #### Required parameters -- `baseName`: The technology and version to install - see the full list of supported [base environments](/zerops-yml/base-list). +- `baseName`: The technology and version to install - see the full list of supported [base environments](/zerops-yaml/base-list). #### Available flags - `--buildBase `: Build base (default "php@8.4") @@ -208,7 +208,7 @@ zsc install dotnet@8 zsc install nginx@1.22 ``` -#### Example usage in `zerops.yml` +#### Example usage in `zerops.yaml` ```yaml zerops: - setup: nodejsapp @@ -249,10 +249,10 @@ The `noop` command is especially useful for: - Debugging build failures by keeping containers alive for investigation - Supporting applications that run as background daemons - Keeping service containers active when your app doesn't have a foreground process -- As a start command in zerops.yml for services that don't have a natural blocking command +- As a start command in zerops.yaml for services that don't have a natural blocking command ::: -#### Usage in zerops.yml +#### Usage in zerops.yaml ```yaml zerops: - setup: myapp diff --git a/apps/docs/content/rust/how-to/build-pipeline.mdx b/apps/docs/content/rust/how-to/build-pipeline.mdx index a25369f8..809af3cb 100644 --- a/apps/docs/content/rust/how-to/build-pipeline.mdx +++ b/apps/docs/content/rust/how-to/build-pipeline.mdx @@ -9,11 +9,11 @@ import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; Zerops provides a customizable build and runtime environment for your Rust application. -## Add zerops.yml to your repository +## Add zerops.yaml to your repository -Start by adding `zerops.yml` file to the **root of your repository** and modify it to fit your application: +Start by adding `zerops.yaml` file to the **root of your repository** and modify it to fit your application: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -75,9 +75,9 @@ The top-level element is always `zerops`. ### Setup The first element `setup` contains the **hostname** of your service. A runtime service with the same hostname must exist in Zerops. -Zerops supports the definition of multiple runtime services in a single `zerops.yml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yml`: +Zerops supports the definition of multiple runtime services in a single `zerops.yaml`. This is useful when you use a monorepo. Just add multiple setup elements in your `zerops.yaml`: -```yml +```yaml zerops: # definition for app service - setup: app @@ -102,7 +102,7 @@ Following options are available for Rust builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -119,12 +119,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the base environment when you need to. Just simply modify the `zerops.yaml` in your repository. ::: If you need to install more technologies to the build environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -138,7 +138,7 @@ zerops: ... ``` -See the full list of supported [build base environments](/zerops-yml/base-list#runtime-services). +See the full list of supported [build base environments](/zerops-yaml/base-list#runtime-services). To customize your build environment use the [prepareCommands](/rust/how-to/build-pipeline#preparecommands) attribute. @@ -183,7 +183,7 @@ The base build environment contains: To install additional packages or tools add one or more prepare commands: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -223,7 +223,7 @@ You can configure your prepare commands to be run in a single shell instance or _REQUIRED._ Defines build commands. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -250,7 +250,7 @@ Before the build commands are triggered the build container contains: Use following syntax to run all commands in the same environment context. For example, if one command changes the current directory, the next command continues in that directory. When one command creates an environment variable, the next command can access it. -```yml +```yaml buildCommands: - | cargo b --release @@ -260,7 +260,7 @@ buildCommands: When the following syntax is used, each command is triggered in a separate environment context. For example, each shell instance starts in the home directory again. When one command creates an environment variable, it won't be available for the next command. -```yml +```yaml buildCommands: - cargo b --release ``` @@ -269,7 +269,7 @@ buildCommands: If any command fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/rust/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the --verbose option. -```yml +```yaml buildCommands: - cargo b --release ``` @@ -280,7 +280,7 @@ If the command ends successfully, it returns the exit code 0 and Zerops triggers _REQUIRED._ Selects which files or folders will be deployed after the build has successfully finished. To filter out specific files or folders, use `.deployignore` file. -```yml +```yaml # REQUIRED. Select which files / folders to deploy after # the build has successfully finished deployFiles: @@ -289,7 +289,7 @@ deployFiles: Determines files or folders produced by your build, which should be deployed to your runtime service containers. -The path starts from the **root directory** of your project (the location of `zerops.yml`). You must enclose the name in quotes if the folder or the file name contains a space. +The path starts from the **root directory** of your project (the location of `zerops.yaml`). You must enclose the name in quotes if the folder or the file name contains a space. The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/assets/fonts` would result in `/var/www/src/assets/fonts`. @@ -297,20 +297,20 @@ The files/folders will be placed into `/var/www` folder in runtime, e.g. `./src/ Deploys a folder, and a file from the project root directory: -```yml +```yaml deployFiles: - target/release/~app ``` Deploys the whole content of the build container: -```yml +```yaml deployFiles: . ``` Deploys a folder, and a file in a defined path: -```yml +```yaml deployFiles: - ./path/to/file.txt - ./path/to/dir/ @@ -322,19 +322,19 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` Deploys all folders that are located in any path that begins with `/path/to/` -```yml +```yaml deployFiles: ./path/to/~/ ``` Deploys all folders that are located in any path that begins with `/path/` and ends with `/to/` -```yml +```yaml deployFiles: ./path/~/to/ ``` :::note Example @@ -353,7 +353,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -380,7 +380,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: _OPTIONAL._ Defines which files or folders will be cached for the next build. -```yml +```yaml # OPTIONAL. Which files / folders you want to cache for the next build. # Next builds will be faster when the cache is used. cache: file.txt @@ -398,7 +398,7 @@ _OPTIONAL._ Defines the environment variables for the build environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -429,7 +429,7 @@ Following options are available for Rust builds: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -453,12 +453,12 @@ zerops:

:::info -You can change the base environment when you need to. Just simply modify the zerops.yml in your repository. +You can change the base environment when you need to. Just simply modify the zerops.yaml in your repository. ::: If you need to install more technologies to the runtime environment, set multiple values as a yaml array. For example: -```yml +```yaml zerops: # hostname of your service - setup: app @@ -478,7 +478,7 @@ zerops: ... ``` -See the full list of supported [run base environments](/zerops-yml/base-list). +See the full list of supported [run base environments](/zerops-yaml/base-list). To customize your build environment use the `prepareCommands` attribute. @@ -547,7 +547,7 @@ _OPTIONAL._ Customises the Rust runtime environment by installing additional dep more prepare commands:

-```yml +```yaml zerops: # hostname of your service - setup: app @@ -608,14 +608,14 @@ You can configure your prepare commands to be run in a single shell instance or The prepare runtime container does not contain your application code nor the built application. If you need to copy some folders or files from the build container to the runtime container (e.g. a configuration file) use the `addToRunPrepare` attribute in the [build section](#build-pipeline-configuration). -```yml +```yaml zerops: # hostname of your service - setup: app # ==== how to build your application ==== build: ... - addToRunPrepare: ./runtime-config.yml + addToRunPrepare: ./runtime-config.yaml # ==== how to run your application ==== run: @@ -627,13 +627,13 @@ zerops: ... ``` -In the example above Zerops will copy the `runtime-config.yml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. +In the example above Zerops will copy the `runtime-config.yaml` file from your build container **after the build has finished** into the new **prepare runtime** container. The copied files and folders will be available in the `xxx` folder in the new prepare runtime container before the prepare commands are triggered. ### initCommands _OPTIONAL._ Defines one or more commands to be run each time a new runtime container is started or a container is restarted. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -673,7 +673,7 @@ _OPTIONAL._ Defines the environment variables for the runtime environment. Enter one or more env variables in following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -694,7 +694,7 @@ Read more about [environment variables](/rust/how-to/env-variables) in Zerops. _REQUIRED._ Defines the start command for your Rust application. -```yml +```yaml zerops: # hostname of your service - setup: app @@ -728,7 +728,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -778,7 +778,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -807,7 +807,7 @@ _OPTIONAL._ Defines cron jobs. Setup cron jobs in the following format: -```yml +```yaml zerops: # define hostname of your service - setup: app @@ -846,7 +846,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app @@ -896,7 +896,7 @@ Following attributes are available: **Example:** -```yml +```yaml zerops: # hostname of your service - setup: app diff --git a/apps/docs/content/rust/how-to/build-process.mdx b/apps/docs/content/rust/how-to/build-process.mdx index 4991cceb..7183306f 100644 --- a/apps/docs/content/rust/how-to/build-process.mdx +++ b/apps/docs/content/rust/how-to/build-process.mdx @@ -45,11 +45,11 @@ The build cancellation is available before the build pipeline is finished. When The default Rust build environment contains: - {data.alpine.default} -- selected version of Rust defined in `zerops.yml` [build.base](/rust/how-to/build-pipeline#base) parameter +- selected version of Rust defined in `zerops.yaml` [build.base](/rust/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - `npm`, `yarn`, `git` and `npx` tools -If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/rust/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/rust/how-to/build-pipeline#preparecommands) commands to your `zerops.yml`. +If you prefer the Ubuntu OS instead of Alpine, set the [build.os](/rust/how-to/build-pipeline#os) attribute to `ubuntu`. To install additional packages or tools add one or more [build.prepareCommands](/rust/how-to/build-pipeline#preparecommands) commands to your `zerops.yaml`. :::info The application code is available in the `/var/www` folder in your build container before the prepare commands are triggered. This allows you to use any file from your application code in your prepare commands (e.g. a configuration file). @@ -95,7 +95,7 @@ This will force Zerops to run the next build clean, including all prepare comman If any [build command](/rust/how-to/build-pipeline#buildcommands) fails, it returns an exit code other than 0 and the build is canceled. Read the [build log](/rust/how-to/logs#build-log) to troubleshoot the error. If the error log doesn't contain any specific error message, try to run your build with the `--verbose` option. -```yml +```yaml buildCommands: - cargo build --release -v ``` diff --git a/apps/docs/content/rust/how-to/create.mdx b/apps/docs/content/rust/how-to/create.mdx index 7f93c9ec..98e17f9d 100644 --- a/apps/docs/content/rust/how-to/create.mdx +++ b/apps/docs/content/rust/how-to/create.mdx @@ -159,7 +159,7 @@ Zerops uses a yaml format to describe the project infrastructure. #### Basic example: -Create a directory `my-project`. Create an `description.yml` file inside the `my-project` directory with following content: +Create a directory `my-project`. Create an `description.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -182,7 +182,7 @@ services: S3_ACCESS_SECRET: 'ogFthuiLYki8XoL73opSCQ' ``` -The yaml file describes your future project infrastructure. The project will contain one Rust version 18 service with default [auto scaling](/rust/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yml](/rust/how-to/build-pipeline#ports). Following secret env variables will be configured: +The yaml file describes your future project infrastructure. The project will contain one Rust version 18 service with default [auto scaling](/rust/how-to/scaling) configuration. Hostname will be set to "app", the internal port(s) the service listens on will be defined later in the [zerops.yaml](/rust/how-to/build-pipeline#ports). Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -191,7 +191,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" #### Full example: -Create a directory my-project. Create an description.yml file inside the my-project directory with following content: +Create a directory my-project. Create an description.yaml file inside the my-project directory with following content: ```yaml # basic project data @@ -240,7 +240,7 @@ services: The yaml file describes your future project infrastructure. The project will contain a Rust service and a [PostgreSQL](/postgresql/overview) service. -Rust service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yml](/rust/how-to/build-pipeline#ports). Rust service will run on version 18 with a custom vertical and horizontal scaling. Following secret env variables will be configured: +Rust service with "app" hostname, the internal port(s) the service listens on will be defined later in the [zerops.yaml](/rust/how-to/build-pipeline#ports). Rust service will run on version 18 with a custom vertical and horizontal scaling. Following secret env variables will be configured: ```env S3_ACCESS_KEY_ID="P8cX1vVVb" @@ -249,7 +249,7 @@ S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" The hostname of the PostgreSQL service will be set to "db". The [single container](/postgresql/how-to/create#single-container) mode will be chosen and the default [auto scaling configuration](/postgresql/how-to/create#set-auto-scaling-configuration) will be set. -#### Description of description.yml parameters +#### Description of description.yaml parameters The `project:` section is required. Only one project can be defined. @@ -281,7 +281,7 @@ The `project:` section is required. Only one project can be defined. -At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Rust and PostgreSQL services but you can create a `description.yml` with your own combination of [services](/features/infrastructure). +At least one service in `services:` section is required. You can create a project with multiple services. The example above contains Rust and PostgreSQL services but you can create a `description.yaml` with your own combination of [services](/features/infrastructure). @@ -311,7 +311,7 @@ At least one service in `services:` section is required. You can create a projec @@ -393,9 +393,9 @@ At least one service in `services:` section is required. You can create a projec
Specifies the service type and version.
- See what [Rust service types](/references/importyml/type-list#runtime-services) are currently supported. + See what [Rust service types](/references/import-yaml/type-list#runtime-services) are currently supported.
-### Create a project based on the description.yml +### Create a project based on the description.yaml -When you have your `description.yml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. +When you have your `description.yaml` ready, use the `zcli project project-import` command to create a new project and the service infrastructure. ```sh Usage: @@ -408,11 +408,11 @@ Flags: --workingDie string Sets a custom working directory. Default working directory is the current directory. (default "./") ``` -Zerops will create a project and one or more services based on the `description.yml` content. +Zerops will create a project and one or more services based on the `description.yaml` content. -Maximum size of the `description.yml` file is 100 kB. +Maximum size of the `description.yaml` file is 100 kB. -You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yml`. +You don't specify the project name in the `zcli project project-import` command, because the project name is defined in the `description.yaml`. If you have access to more than one client, you must specify the client ID for which the project is to be created. The `clientID` is located in the Zerops GUI under the client name on the project dashboard page. @@ -428,7 +428,7 @@ If you have access to more than one client, you must specify the client ID for w #### Example: -Create a directory `my-project` if it doesn't exist. Create an `import.yml` file inside the `my-project` directory with following content: +Create a directory `my-project` if it doesn't exist. Create an `import.yaml` file inside the `my-project` directory with following content: ```yaml # basic project data @@ -458,9 +458,9 @@ S3_ACCESS_KEY_ID="P8cX1vVVb" S3_ACCESS_SECRET="ogFthuiLYki8XoL73opSCQ" ``` -The content of the `services:` section of `import.yml` is identical to the project description file. The `import.yml` never contains the `project:` section because the project already exists. +The content of the `services:` section of `import.yaml` is identical to the project description file. The `import.yaml` never contains the `project:` section because the project already exists. -When you have your `import.yml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. +When you have your `import.yaml` ready, use the `zcli project service-import` command to add one or more services to your existing Zerops project. ```sh Usage: @@ -474,4 +474,4 @@ Flags: zCLI commands are interactive, when you press enter after `zcli project service-import importYamlPath`, you will be given a list of your projects to choose from. -Maximum size of the import.yml file is 100 kB. +Maximum size of the import.yaml file is 100 kB. diff --git a/apps/docs/content/rust/how-to/customize-runtime.mdx b/apps/docs/content/rust/how-to/customize-runtime.mdx index 8bae3eb2..0e215d1f 100644 --- a/apps/docs/content/rust/how-to/customize-runtime.mdx +++ b/apps/docs/content/rust/how-to/customize-runtime.mdx @@ -22,9 +22,9 @@ The default Rust runtime environment contains: - Git :::note -To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yml/specification#os--1) attribute. +To use Ubuntu instead of the default Alpine, set the [run.os](/zerops-yaml/specification#os--1) attribute. -Additional packages and tools can be installed using [run.prepareCommands](/zerops-yml/specification#preparecommands--1). +Additional packages and tools can be installed using [run.prepareCommands](/zerops-yaml/specification#preparecommands--1). ::: ### Runtime Flow diff --git a/apps/docs/content/rust/how-to/deploy-process.mdx b/apps/docs/content/rust/how-to/deploy-process.mdx index 70f33c87..1578579a 100644 --- a/apps/docs/content/rust/how-to/deploy-process.mdx +++ b/apps/docs/content/rust/how-to/deploy-process.mdx @@ -40,7 +40,7 @@ Zerops performs following actions for each new container: Services with multiple containers are deployed in parallel. :::info -If your application needs to be initialized in each runtime container, add [init commands](/rust/how-to/build-pipeline#initcommands) to `zerops.yml`. +If your application needs to be initialized in each runtime container, add [init commands](/rust/how-to/build-pipeline#initcommands) to `zerops.yaml`. ::: :::caution @@ -58,7 +58,7 @@ The old containers are then removed from the project balancer so they don't rece ## Readiness checks -If your application isn't ready to handle requests right after it is started via the [start command](/rust/how-to/build-pipeline#start), configure a [readiness check](/rust/how-to/build-pipeline#readiness-check) in your `zerops.yml`. +If your application isn't ready to handle requests right after it is started via the [start command](/rust/how-to/build-pipeline#start), configure a [readiness check](/rust/how-to/build-pipeline#readiness-check) in your `zerops.yaml`. If the readiness check is defined, Zerops will: @@ -94,7 +94,7 @@ The list of application versions is available in Zerops GUI. Go to the service d The pipeline detail is accessible from the additional menu. The pipeline detail contains -- The pipeline config (`zerops.yml`) that was used for the selected version +- The pipeline config (`zerops.yaml`) that was used for the selected version - The build log (if available) - The prepare runtime log (if available) diff --git a/apps/docs/content/rust/how-to/env-variables.mdx b/apps/docs/content/rust/how-to/env-variables.mdx index 1e56dd03..15392851 100644 --- a/apps/docs/content/rust/how-to/env-variables.mdx +++ b/apps/docs/content/rust/how-to/env-variables.mdx @@ -23,12 +23,12 @@ There are 3 different sets of env variables in Zerops: basic build - zerops.yml + zerops.yaml basic runtime - zerops.yml + zerops.yaml secret @@ -40,13 +40,13 @@ There are 3 different sets of env variables in Zerops: Use the [secret env variables](/rust/how-to/create#set-secret-environment-variables) for all sensitive data you don't want to store in your application code. Secret env variables are also useful if you need for testing where you need to change the value of some env variables frequently. Secret variables are managed in Zerops GUI and you don't have to redeploy your application. -The basic build and runtime env variables are listed in your [zerops.yml](/zerops-yml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yml and redeploy your application to Zerops. +The basic build and runtime env variables are listed in your [zerops.yaml](/zerops-yaml/specification) and deployed together with your application code. When you need to update a value of an existing env variable or change the set of build or runtime env variables, update your zerops.yaml and redeploy your application to Zerops. You can [reference](/rust/how-to/env-variables#reference-a-local-variable-in-another-variable-value) another variable of the same service or even a variable of [another service](/rust/how-to/env-variables#reference-a-variable-of-another-project-service) within the same project. ## Set secret env variables in Zerops GUI -Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yml. +Use secret variables to store passwords, tokens and other sensitive information that shouldn't be part of your repository and listed in zerops.yaml.

:::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ### Skip the automatic pipeline once @@ -61,13 +61,13 @@ To start a new build & deploy pipeline manually, use the Zerops CLI. Follow these steps: -1. Add `zerops.yml` to your repository. +1. Add `zerops.yaml` to your repository. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli push` command. The `zcli push` command uploads your application code, builds and deploys your application in Zerops. -The command triggers the [build pipeline](/rust/how-to/trigger-pipeline) defined in `zerops.yml`. `zerops.yml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. +The command triggers the [build pipeline](/rust/how-to/trigger-pipeline) defined in `zerops.yaml`. `zerops.yaml` must be in the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. zCLI uploads all files and subdirectories of the working directory to Zerops and starts the build pipeline. If the `.gitignore` file is found, it is interpreted and the defined files and folders will be ignored. @@ -90,14 +90,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` zCLI commands are interactive, when you press enter after `zcli push`, you will be given a list of your projects to choose from. :::info -You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yml` in your repository. +You can change the build and deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your repository. ::: ## Manual deploy using Zerops CLI @@ -106,7 +106,7 @@ To start only a deploy pipeline, use the Zerops CLI. Follow these steps: -1. Add [zerops.yml](/rust/how-to/build-pipeline#add-zeropsyml-to-your-repository) to your repository. Omit the build section. +1. Add [zerops.yaml](/rust/how-to/build-pipeline#add-zeropsyaml-to-your-repository) to your repository. Omit the build section. 2. [Install & setup zCLI](/references/cli) the Zerops command line tool. 3. Run `zcli service deploy` command. @@ -121,8 +121,8 @@ Usage: Flags: --archiveFilePath string If set, zCLI creates a tar.gz archive with the application code in the required path relative to the working directory. By default, no archive is created. - --deployGitFolder Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --deployGitFolder Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. -h, --help the service deploy command. --projectId string If you have access to more than one project, you must specify the project ID for which the command is to be executed. @@ -130,14 +130,14 @@ Flags: command is to be executed. --versionName string Adds a custom version name. Automatically filled if the VERSIONNAME environment variable exists. --workingDir string Sets a custom working directory. Default working directory is the current directory. (default "./") - --zeropsYamlPath string Sets a custom path to the zerops.yml file relative to the working directory. By default zCLI - looks for zerops.yml in the working directory. + --zeropsYamlPath string Sets a custom path to the zerops.yaml file relative to the working directory. By default zCLI + looks for zerops.yaml in the working directory. ``` `pathToFileOrDir` defines a path to one or more directories and/or files relative to the working directory. The working directory is by default the current directory and can be changed using the
`--workingDir` flag. -`zerops.yml` must be placed in the working directory. +`zerops.yaml` must be placed in the working directory. :::info -You can change the deploy pipeline when you need to. Just simply modify the `zerops.yml` in your working directory. +You can change the deploy pipeline when you need to. Just simply modify the `zerops.yaml` in your working directory. ::: diff --git a/apps/docs/content/rust/how-to/upgrade.mdx b/apps/docs/content/rust/how-to/upgrade.mdx index 7b5097f3..072d014f 100644 --- a/apps/docs/content/rust/how-to/upgrade.mdx +++ b/apps/docs/content/rust/how-to/upgrade.mdx @@ -3,6 +3,6 @@ title: How to upgrade the Rust version description: Learn how to upgrade your rust service's version --- -You can upgrade or downgrade your Rust service to a different major Rust version by setting the `run.base` parameter in your `zerops.yml`. When you [trigger a new pipeline](/rust/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Rust version. If you don't specify the `run.base` attribute in your `zerops.yml`, Zerops keeps the current Rust version for your runtime. +You can upgrade or downgrade your Rust service to a different major Rust version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/rust/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Rust version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Rust version for your runtime. -If you want to build your application with a different major Rust version, change the `build.base` parameter in your `zerops.yml`. The `build.base` is the required attribute. +If you want to build your application with a different major Rust version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute. diff --git a/apps/docs/content/rust/overview.mdx b/apps/docs/content/rust/overview.mdx index 01c3696a..f64fc464 100644 --- a/apps/docs/content/rust/overview.mdx +++ b/apps/docs/content/rust/overview.mdx @@ -23,9 +23,9 @@ As said, there is no need for coding yet, we have created a [Github repository 1. Log in/sign up to [Zerops GUI ↗](https://app.zerops.io) -2. In the **Projects** box click on **Import a project** and paste in the following yml config ([source ↗](https://github.com/zeropsio/recipe-rust-hello-world/blob/main/import-project/description.yml)): +2. In the **Projects** box click on **Import a project** and paste in the following YAML config ([source ↗](https://github.com/zeropsio/recipe-rust-hello-world/blob/main/import-project/description.yaml)): -```yml +```yaml project: name: my-first-project services: @@ -96,12 +96,12 @@ Do you have any questions? Check the step-by-step tutorial, browse the documenta }, { type: 'link', - href: '/rust/how-to/build-pipeline#add-zeropsyml-to-your-repository', - label: 'zerops.yml', + href: '/rust/how-to/build-pipeline#add-zeropsyaml-to-your-repository', + label: 'zerops.yaml', customProps: { icon: Icons['puzzle'], description: - 'See a full example of zerops.yml file to create your own app.', + 'See a full example of zerops.yaml file to create your own app.', }, }, { diff --git a/apps/docs/content/shared-storage/how-to/connect.mdx b/apps/docs/content/shared-storage/how-to/connect.mdx index d1d8811f..2c4480f2 100644 --- a/apps/docs/content/shared-storage/how-to/connect.mdx +++ b/apps/docs/content/shared-storage/how-to/connect.mdx @@ -40,4 +40,4 @@ zsc connectSharedStorage sharedstorage0 zsc connectSharedStorage sharedDisk secondDisk ``` -Run this command from within your runtime container via web terminal, SSH, or in your `zerops.yml` file. For more details, see the [Zerops Setup Control documentation](/references/zsc).*/} \ No newline at end of file +Run this command from within your runtime container via web terminal, SSH, or in your `zerops.yaml` file. For more details, see the [Zerops Setup Control documentation](/references/zsc).*/} \ No newline at end of file diff --git a/apps/docs/content/static/overview.mdx b/apps/docs/content/static/overview.mdx index 47ef80a6..0f533bd7 100644 --- a/apps/docs/content/static/overview.mdx +++ b/apps/docs/content/static/overview.mdx @@ -16,9 +16,9 @@ The Static service provides a streamlined way to serve static content through a ## Quick Start -Add a Static service to your project by including this in your `zerops.yml`: +Add a Static service to your project by including this in your `zerops.yaml`: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app run: @@ -43,9 +43,9 @@ The Static service allows you to configure URL routing and redirects through a s ### Basic Structure -Configure routing in the `run.routing` section of your `zerops.yml`: +Configure routing in the `run.routing` section of your `zerops.yaml`: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" run: routing: redirects: @@ -60,7 +60,7 @@ run: Use relative redirects to route paths within your application. When both `from` and `to` are relative paths, you can omit the `status` code to create a masked redirect that shows the content of the target page while preserving the original URL: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" routing: redirects: # Masked redirect - URL stays the same but shows content from index.html @@ -94,7 +94,7 @@ When using `preservePath` with wildcards, ensure the `to` path ends with a `/` t For redirecting between domains or to external URLs, use absolute redirects by including `http://` or `https://`. When using absolute URLs in either `from` or `to`, you must specify a `status` code: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" routing: redirects: # Redirect an old domain to a new one @@ -120,7 +120,7 @@ Use `*` as a wildcard in your paths: Example of complex domain management: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" run: routing: redirects: @@ -145,7 +145,7 @@ When multiple redirects are configured, they follow Nginx's matching priority sy For example: -```yaml title="zerops.yml" +```yaml title="zerops.yaml" routing: redirects: # Exact match for homepage - standard redirect @@ -185,7 +185,7 @@ The Static service includes built-in support for Prerender.io, making it easy to ### Custom Prerender Host -If you're using a custom Prerender host, add it to environment variables in `zerops.yml`: +If you're using a custom Prerender host, add it to environment variables in `zerops.yaml`: ```yaml run: @@ -216,7 +216,7 @@ This allows you to graduate to a more customizable setup while maintaining your ## Best Practices 1. **SPA Configuration** - ```yaml title="zerops.yml" + ```yaml title="zerops.yaml" routing: redirects: - from: /* @@ -226,7 +226,7 @@ This allows you to graduate to a more customizable setup while maintaining your Use this configuration for Single Page Applications to ensure all routes are handled by your application. 2. **Domain Migration** - ```yaml title="zerops.yml" + ```yaml title="zerops.yaml" routing: redirects: - from: https://old-domain.com/* @@ -237,7 +237,7 @@ This allows you to graduate to a more customizable setup while maintaining your 3. **Complex Redirects** Order your redirects from most specific to most general to ensure proper routing: - ```yaml title="zerops.yml" + ```yaml title="zerops.yaml" routing: redirects: - from: /specific-path/* @@ -256,7 +256,7 @@ The Static service seamlessly integrates with modern frontend frameworks. It can Here's a simple configuration for deploying an [Analog application](https://github.com/zeropsio/recipe-analog-static): -```yaml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -284,7 +284,7 @@ You can enhance this basic setup by adding: ## Common Configurations ### Multiple Domain Management -```yaml title="zerops.yml" +```yaml title="zerops.yaml" run: routing: redirects: @@ -305,7 +305,7 @@ run: ``` ### Development Setup -```yaml title="zerops.yml" +```yaml title="zerops.yaml" run: routing: redirects: diff --git a/apps/docs/content/zerops-yml/base-list.mdx b/apps/docs/content/zerops-yaml/base-list.mdx similarity index 96% rename from apps/docs/content/zerops-yml/base-list.mdx rename to apps/docs/content/zerops-yaml/base-list.mdx index 03d0d948..a35fd0af 100644 --- a/apps/docs/content/zerops-yml/base-list.mdx +++ b/apps/docs/content/zerops-yaml/base-list.mdx @@ -7,7 +7,7 @@ import data from '@site/static/data.json'; import UnorderedCodeList from 'docs/src/components/UnorderedCodeList'; -This is a list of all currently supported versions of technologies that can be used for build.base and run.base sections in `zerops.yml`. +This is a list of all currently supported versions of technologies that can be used for build.base and run.base sections in `zerops.yaml`. :::note Versions listed on the same line are aliases of the same underlying version. diff --git a/apps/docs/content/zerops-yml/cron.mdx b/apps/docs/content/zerops-yaml/cron.mdx similarity index 97% rename from apps/docs/content/zerops-yml/cron.mdx rename to apps/docs/content/zerops-yaml/cron.mdx index 2dfcc751..de530150 100644 --- a/apps/docs/content/zerops-yml/cron.mdx +++ b/apps/docs/content/zerops-yaml/cron.mdx @@ -5,7 +5,7 @@ description: Learn how to set up automated tasks and scheduled jobs in Zerops Cron jobs are scheduled commands that execute automatically inside a service's containers based on defined timing rules. -In Zerops, these jobs are configured in the `run` section of `zerops.yml` file under the `crontab` key. +In Zerops, these jobs are configured in the `run` section of `zerops.yaml` file under the `crontab` key. ## Parameters @@ -41,7 +41,7 @@ The schedule for when the task should run, specified in standard cron format usi Specifies the directory where the command will be executed. If not set, it defaults to `/var/www`. ## Example Configurations -Here’s a basic example of how to set up a cron job in your service's `zerops.yml`: +Here’s a basic example of how to set up a cron job in your service's `zerops.yaml`: ```yaml run: diff --git a/apps/docs/content/zerops-yml/specification.mdx b/apps/docs/content/zerops-yaml/specification.mdx similarity index 91% rename from apps/docs/content/zerops-yml/specification.mdx rename to apps/docs/content/zerops-yaml/specification.mdx index fd3c0bd0..3eeb8c2f 100644 --- a/apps/docs/content/zerops-yml/specification.mdx +++ b/apps/docs/content/zerops-yaml/specification.mdx @@ -1,6 +1,6 @@ --- title: Zerops YAML Configuration -description: Learn how you can configure your zerops yaml and use the available parameters. +description: Learn how you can configure your Zerops.yaml and use the available parameters. --- import data from '@site/static/data.json'; @@ -19,8 +19,8 @@ export const languages = [ { name: "Nginx", link: "/nginx/how-to/build-pipeline" } ] -The `zerops.yml` file is crucial for defining how Zerops should [build and deploy](/features/pipeline) your application. -Add the `zerops.yml` file to the **root of your repository** and customize it to suit your application's needs. +The `zerops.yaml` file is crucial for defining how Zerops should [build and deploy](/features/pipeline) your application. +Add the `zerops.yaml` file to the **root of your repository** and customize it to suit your application's needs. --- @@ -28,7 +28,7 @@ Add the `zerops.yml` file to the **root of your repository** and customize it to ## Basic Structure -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: build: ... @@ -37,9 +37,9 @@ zerops: - The top-level element is always `zerops`. - `setup` contains the **hostname** of your service (must exist in Zerops). -- Multiple services can be defined in a single `zerops.yml` (useful for monorepos): +- Multiple services can be defined in a single `zerops.yaml` (useful for monorepos): -```yml +```yaml zerops: - setup: app build: ... @@ -56,16 +56,16 @@ Each service configuration requires `build` and `run` sections. An optional `dep ### base -Sets the base technology for the build environment. [See available options](/zerops-yml/base-list). +Sets the base technology for the build environment. [See available options](/zerops-yaml/base-list). -```yml +```yaml build: base: nodejs@latest ``` You can specify multiple technologies: -```yml +```yaml build: base: - nodejs@latest @@ -85,7 +85,7 @@ Current versions: - {data.alpine.default} - {data.ubuntu.default} -```yml +```yaml build: os: ubuntu ``` @@ -94,7 +94,7 @@ build: Customizes the build environment by installing additional dependencies or tools. -```yml +```yaml build: prepareCommands: - apt-get update @@ -105,7 +105,7 @@ build: Defines the commands to build your application. -```yml +```yaml build: buildCommands: - npm install @@ -114,7 +114,7 @@ build: #### Running commands in a single shell instance: -```yml +```yaml buildCommands: - | npm install @@ -125,7 +125,7 @@ buildCommands: Specifies which files or folders to deploy after a successful build. -```yml +```yaml build: deployFiles: - dist @@ -141,7 +141,7 @@ Zerops supports the `~` character as a wildcard for one or more folders in the p Deploys all `file.txt` files that are located in any path that begins with `/path/` and ends with `/to/`. -```yml +```yaml deployFiles: ./path/~/to/file.txt ``` @@ -159,7 +159,7 @@ For consistency, it's recommended to configure both your `.gitignore` and `.depl Examples: -```yml title="zerops.yml" +```yaml title="zerops.yaml" zerops: - setup: app build: @@ -186,7 +186,7 @@ This example above ignores `file.txt` in ANY directory named `src`, such as: Defines which files or folders to cache for subsequent builds. -```yml +```yaml build: cache: node_modules ``` @@ -197,7 +197,7 @@ For more information, see our detailed [guide on build cache](/features/build-ca Sets environment variables for the build environment. -```yml +```yaml build: envVariables: DB_NAME: db @@ -207,7 +207,7 @@ build: ``` :::info -The `yamlPreprocessor` option in your project & service import YAML allows you to generate random secret values, passwords, and public/private key pairs. For more information, see the [yamlPreprocessor](/references/importyml/pre-processor) page. +The `yamlPreprocessor` option in your project & service import YAML allows you to generate random secret values, passwords, and public/private key pairs. For more information, see the [yamlPreprocessor](/references/import-yaml/pre-processor) page. ::: ## Runtime Configuration @@ -216,7 +216,7 @@ The `yamlPreprocessor` option in your project & service import YAML allows you t Sets the base technology for the runtime environment. If not specified, the current version is maintained. -```yml +```yaml run: base: nodejs@latest ``` @@ -229,7 +229,7 @@ Sets the operating system for the runtime environment. Options and versions are Specifies the internal ports on which your application will listen. -```yml +```yaml run: ports: - port: 8080 @@ -266,7 +266,7 @@ Defines files or folders to be copied from the build container to the prepare ru Defines commands to run each time a new runtime container starts or restarts. -```yml +```yaml run: initCommands: - rm -rf ./cache @@ -276,7 +276,7 @@ run: Defines the start command for your application. -```yml +```yaml run: start: npm start ``` @@ -287,7 +287,7 @@ Defines start commands Unlike `start`, you can define multiple commands that starts their own processes. -```yml +```yaml run: startCommands: # start the application @@ -295,11 +295,11 @@ run: name: server # start the replication - - command: litestream replicate -config=litestream.yml + - command: litestream replicate -config=litestream.yaml name: replication # restore the database on container init initCommands: - - litestream restore -if-replica-exists -if-db-not-exists -config=litestream.yml $DB_NAME + - litestream restore -if-replica-exists -if-db-not-exists -config=litestream.yaml $DB_NAME ``` See [start-commands-example](https://github.com/zeropsio/start-commands-example) @@ -316,7 +316,7 @@ Sets the custom webserver configuration (available only for webserver runtimes). Defines environment variables for the runtime environment. -```yml +```yaml run: base: nodejs@20 envVariables: @@ -330,7 +330,7 @@ Defines environment variables for the runtime environment. Defines a health check for your application. -```yml +```yaml run: healthCheck: httpGet: @@ -342,7 +342,7 @@ run: Defines scheduled commands to run as cron jobs within a service. - ```yml + ```yaml run: crontab: - command: "date >> /var/log/cron.log" @@ -357,7 +357,7 @@ Setup cron jobs. See [examples](/references/cron). Defines a readiness check for your application. (See [readiness checks](/features/pipeline#readiness-checks)) -```yml +```yaml deploy: readinessCheck: httpGet: diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index c083914d..dce703ff 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -127,13 +127,26 @@ module.exports = { className: 'homepage-sidebar-item', }, { - type: 'doc', - id: 'features/pricing', - label: 'Pricing Plans & Usage', + type: 'category', + link: { + type: 'doc', + id: 'features/pricing', + }, + label: 'Pricing Plans & Calculator', customProps: { sidebar_icon: 'currency-dollar', }, className: 'homepage-sidebar-item', + items: [ + { + type: 'doc', + id: 'features/payment', + label: 'Top-up & Billing', + customProps: { + exclude_from_doc_list: false, + }, + }, + ], }, { type: 'doc', @@ -474,7 +487,7 @@ module.exports = { }, { type: 'doc', - id: 'zerops-yml/specification', + id: 'zerops-yaml/specification', label: 'Specification', customProps: { sidebar_icon: 'document-text', @@ -483,7 +496,7 @@ module.exports = { }, { type: 'doc', - id: 'zerops-yml/base-list', + id: 'zerops-yaml/base-list', label: 'Base List', customProps: { sidebar_icon: 'swatch', @@ -492,7 +505,7 @@ module.exports = { }, { type: 'doc', - id: 'zerops-yml/cron', + id: 'zerops-yaml/cron', label: 'Cron', customProps: { sidebar_icon: 'arrow-path', @@ -591,7 +604,7 @@ module.exports = { items: [ { type: 'doc', - id: 'references/importyml/pre-processor', + id: 'references/import-yaml/pre-processor', label: 'Yaml Preprocessing', customProps: { exclude_from_doc_list: false, @@ -599,7 +612,7 @@ module.exports = { }, { type: 'doc', - id: 'references/importyml/type-list', + id: 'references/import-yaml/type-list', label: 'Service Types', customProps: { exclude_from_doc_list: false, diff --git a/apps/docs/static/img/mind-maps/lightweight-dark.svg b/apps/docs/static/img/mind-maps/lightweight-dark.svg index 98348dd9..73c62265 100644 --- a/apps/docs/static/img/mind-maps/lightweight-dark.svg +++ b/apps/docs/static/img/mind-maps/lightweight-dark.svg @@ -1,15 +1,84 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/apps/docs/static/img/mind-maps/lightweight.svg b/apps/docs/static/img/mind-maps/lightweight.svg index 4a2abb9f..30d3c0e3 100644 --- a/apps/docs/static/img/mind-maps/lightweight.svg +++ b/apps/docs/static/img/mind-maps/lightweight.svg @@ -1,15 +1,95 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/apps/docs/static/img/mind-maps/serious-dark.svg b/apps/docs/static/img/mind-maps/serious-dark.svg index c852825e..6fab7c99 100644 --- a/apps/docs/static/img/mind-maps/serious-dark.svg +++ b/apps/docs/static/img/mind-maps/serious-dark.svg @@ -1,54 +1,248 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/docs/static/img/mind-maps/serious.svg b/apps/docs/static/img/mind-maps/serious.svg index 2d90e43e..9acbdf08 100644 --- a/apps/docs/static/img/mind-maps/serious.svg +++ b/apps/docs/static/img/mind-maps/serious.svg @@ -1,53 +1,266 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 1513744cf9c656be98700807eb13a612cdb5674d Mon Sep 17 00:00:00 2001 From: vankovap Date: Fri, 21 Mar 2025 07:00:14 +0100 Subject: [PATCH 30/59] topup (#219) --- apps/docs/content/features/pricing.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/content/features/pricing.mdx b/apps/docs/content/features/pricing.mdx index a52e05a3..6847ca2b 100644 --- a/apps/docs/content/features/pricing.mdx +++ b/apps/docs/content/features/pricing.mdx @@ -11,7 +11,7 @@ The total cost of deploying an application includes your project's **core packag Resources are allocated per service and billed by the minute, though credit is deducted hourly based on actual usage. You're only charged for what you use, calculated down to the minute. ::: -Need to add credits to your account? Visit our [Payment & Top-up page](/features/payment) for instructions. +Need to add credits to your account? Visit our [Top-up & Billing page](/features/payment) for instructions. ## Project Core Plans From 4209e6c0ef42f9cb0d2312057fe99f4f21c13283 Mon Sep 17 00:00:00 2001 From: vankovap Date: Fri, 21 Mar 2025 10:48:18 +0100 Subject: [PATCH 31/59] about (#220) * about --- apps/docs/content/company/about.mdx | 34 +++++++ .../content/{help => company}/branding.mdx | 0 .../content/{features => company}/payment.mdx | 0 .../content/{features => company}/pricing.mdx | 0 apps/docs/content/homepage.mdx | 3 - apps/docs/sidebars.js | 93 ++++++++----------- 6 files changed, 71 insertions(+), 59 deletions(-) create mode 100644 apps/docs/content/company/about.mdx rename apps/docs/content/{help => company}/branding.mdx (100%) rename apps/docs/content/{features => company}/payment.mdx (100%) rename apps/docs/content/{features => company}/pricing.mdx (100%) diff --git a/apps/docs/content/company/about.mdx b/apps/docs/content/company/about.mdx new file mode 100644 index 00000000..e2cbee9b --- /dev/null +++ b/apps/docs/content/company/about.mdx @@ -0,0 +1,34 @@ +--- +title: About Zerops +--- + +## Our Story + +Zerops, originally founded in 2018, began as an internal project at [vshosting.eu](https://vshosting.eu), one of the largest providers of managed hosting solutions in Central Europe. In June 2024, after a period when the project had been shut down following corporate restructuring, Zerops was re-launched as an independent startup. Now headed by the original development team and backed by strong partners, Zerops continues its mission with renewed focus and independence. + +## Technology & Infrastructure + +Zerops runs on bare metal, with the platform built from the ground up using Golang and [Incus](https://linuxcontainers.org/incus/) containerization. Our servers are currently located in Prague, Czech Republic, leveraging vshosting's state-of-the-art datacenter facilities. + +## Financial Backing & Partners + +Zerops is financially backed by established venture capital firms: +- [Presto Ventures](https://www.prestoventures.com/) - A leading Central European venture capital firm +- [Gi21 Capital](https://gi21capital.com/) - A technology-focused investment firm + +Our primary infrastructure partner is [vshosting.eu](https://vshosting.eu), which itself is part of [Contabo](https://contabo.com/en/), owned by global investment firm [KKR](https://www.kkr.com/). This strategic partnership provides Zerops with enterprise-grade infrastructure stability. + +## Looking Ahead + +We're committed to continually improving the Zerops platform with a focus on: + +- **Multiregional Deployment**: Beginning with built-in CDN capabilities, followed by the ability to run entire projects in different regions +- **Enhanced Performance**: Ongoing optimization of our container orchestration and resource management +- **Developer Experience**: Continuous improvement of our UI, CLI, and API interfaces + +## Connect With Us + +- [Discord](https://discord.com/invite/WDvCZ54) +- [X.com](https://x.com/zeropsio) +- [LinkedIn](https://www.linkedin.com/company/zerops) +- [Contact Us](mailto:team@zerops.io) \ No newline at end of file diff --git a/apps/docs/content/help/branding.mdx b/apps/docs/content/company/branding.mdx similarity index 100% rename from apps/docs/content/help/branding.mdx rename to apps/docs/content/company/branding.mdx diff --git a/apps/docs/content/features/payment.mdx b/apps/docs/content/company/payment.mdx similarity index 100% rename from apps/docs/content/features/payment.mdx rename to apps/docs/content/company/payment.mdx diff --git a/apps/docs/content/features/pricing.mdx b/apps/docs/content/company/pricing.mdx similarity index 100% rename from apps/docs/content/features/pricing.mdx rename to apps/docs/content/company/pricing.mdx diff --git a/apps/docs/content/homepage.mdx b/apps/docs/content/homepage.mdx index fa03c448..888d2c80 100644 --- a/apps/docs/content/homepage.mdx +++ b/apps/docs/content/homepage.mdx @@ -60,12 +60,9 @@ export const storages = [ ]

-# Zerops Documentation Zerops is a **developer-first Platform-as-a-Service**, running on bare metal, with every part built from scratch. Zerops aims to be the perfect mix of **developer experience**, **flexibility**, **scalability** and **affordability**, making it a great fit for applications of any size, complexity and traffic. -Currently, Zerops operates from a state-of-the-art datacenter in Prague, Czechia. Multi-region support is an active focus in our development pipeline. - ## Natively supported services ### Runtimes & web servers diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index dce703ff..b3b486a5 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -126,28 +126,6 @@ module.exports = { }, className: 'homepage-sidebar-item', }, - { - type: 'category', - link: { - type: 'doc', - id: 'features/pricing', - }, - label: 'Pricing Plans & Calculator', - customProps: { - sidebar_icon: 'currency-dollar', - }, - className: 'homepage-sidebar-item', - items: [ - { - type: 'doc', - id: 'features/payment', - label: 'Top-up & Billing', - customProps: { - exclude_from_doc_list: false, - }, - }, - ], - }, { type: 'doc', id: 'features/backup', @@ -691,51 +669,54 @@ module.exports = { }, className: 'homepage-sidebar-item', }, + { + type: 'html', + value: 'Company', + customProps: { + sidebar_is_group_divider: true, + }, + className: 'homepage-sidebar-item', + }, { type: 'doc', - id: 'help/branding', - label: 'Branding', + id: 'company/about', + label: 'About', customProps: { - sidebar_icon: 'document-text', + sidebar_icon: 'information-circle-solid', }, className: 'homepage-sidebar-item', }, { - type: 'html', - value: 'Additional resources', + type: 'category', + link: { + type: 'doc', + id: 'company/pricing', + }, + label: 'Pricing', customProps: { - sidebar_is_group_divider: true, - sidebar_is_soon: true, + sidebar_icon: 'currency-dollar', + }, + className: 'homepage-sidebar-item', + items: [ + { + type: 'doc', + id: 'company/payment', + label: 'Top-up & Billing', + customProps: { + exclude_from_doc_list: false, + }, + }, + ], + }, + { + type: 'doc', + id: 'company/branding', + label: 'Branding', + customProps: { + sidebar_icon: 'tag-solid', }, className: 'homepage-sidebar-item', }, - // { - // type: "doc", - // id: "additional-resources/utility-recipes", - // label: "Utility recipes", - // customProps: { - // sidebar_icon: "swatch", - // }, - // className: "homepage-sidebar-item", - // }, - // { - // type: "doc", - // id: "additional-resources/glossary", - // label: "Glossary", - // customProps: { - // sidebar_icon: "list-bullet", - // }, - // className: "homepage-sidebar-item", - // }, - // { - // type: "doc", - // id: "additional-resources/roadmap", - // label: "Roadmap", - // customProps: { - // sidebar_icon: "map", - // }, - // className: "homepage-sidebar-item", - // }, ], nodejs: [ { From ebcf85c7913f886633d61829cf2b7933173faf67 Mon Sep 17 00:00:00 2001 From: vankovap Date: Fri, 21 Mar 2025 12:23:03 +0100 Subject: [PATCH 32/59] About (#221) * about --- apps/docs/sidebars.js | 4 ++-- apps/docs/src/theme/Icon/index.tsx | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js index b3b486a5..8b294292 100644 --- a/apps/docs/sidebars.js +++ b/apps/docs/sidebars.js @@ -682,7 +682,7 @@ module.exports = { id: 'company/about', label: 'About', customProps: { - sidebar_icon: 'information-circle-solid', + sidebar_icon: 'information-circle', }, className: 'homepage-sidebar-item', }, @@ -713,7 +713,7 @@ module.exports = { id: 'company/branding', label: 'Branding', customProps: { - sidebar_icon: 'tag-solid', + sidebar_icon: 'tag', }, className: 'homepage-sidebar-item', }, diff --git a/apps/docs/src/theme/Icon/index.tsx b/apps/docs/src/theme/Icon/index.tsx index 6b44426d..dbd853f7 100644 --- a/apps/docs/src/theme/Icon/index.tsx +++ b/apps/docs/src/theme/Icon/index.tsx @@ -59,6 +59,7 @@ import { GiftSolid, GlobeEurope, GlobeEuropeSolid, + InformationCircle, InformationCircleSolid, JavascriptEx, Key, @@ -94,6 +95,7 @@ import { Sun, Swatch, SwatchSolid, + Tag, TagSolid, Tools, ToolsSolid, @@ -224,6 +226,7 @@ export default { github: IconGitHub, 'globe-europe': GlobeEurope, 'globe-europe-solid': GlobeEuropeSolid, + 'information-circle': InformationCircle, 'information-circle-solid': InformationCircleSolid, javascript: JavascriptEx, key: Key, @@ -261,6 +264,7 @@ export default { 'star-solid': StarSolid, stripe: Stripe, 'swatch-solid': SwatchSolid, + 'tag': Tag, 'tag-solid': TagSolid, tools: Tools, 'tools-solid': ToolsSolid, From cb05f4389bd9c74a282146f6fba35337bef85830 Mon Sep 17 00:00:00 2001 From: vankovap Date: Mon, 24 Mar 2025 14:27:07 +0100 Subject: [PATCH 33/59] wildcards (#222) --- apps/docs/content/features/dns.mdx | 192 +++++++++++++++++++++-------- 1 file changed, 138 insertions(+), 54 deletions(-) diff --git a/apps/docs/content/features/dns.mdx b/apps/docs/content/features/dns.mdx index ac5a5711..d37c5f26 100644 --- a/apps/docs/content/features/dns.mdx +++ b/apps/docs/content/features/dns.mdx @@ -1,6 +1,6 @@ --- title: DNS and Proxy Configuration Guide -desc: A comprehensive guide for configuring DNS records and proxy settings with Zerops applications, including shared and dedicated IPv4 setups, security measures, and troubleshooting tips. +desc: A comprehensive guide for configuring DNS records and proxy settings with Zerops applications, including shared and dedicated IPv4 setups, wildcard domains, certificate validation, and troubleshooting tips. --- This guide will show you how to configure DNS records and proxy settings to work with your Zerops applications, with specific implementation details for Cloudflare. @@ -19,8 +19,8 @@ DNS allows you to set two records based on IP address type: #### IPv6 only ```bash -Type Name Content Proxy status TTL -AAAA Proxied Auto +Type Name Content Proxy status TTL +AAAA Proxied Auto ``` :::note @@ -31,10 +31,10 @@ Do not add a proxied A record with shared IPv4 - doing so would prevent the prox #### Dedicated IPv4 ```bash -Type Name Content Proxy status TTL -A Proxied Auto +Type Name Content Proxy status TTL +A Proxied Auto # Optional -AAAA Proxied Auto +AAAA Proxied Auto ``` :::tip @@ -43,9 +43,9 @@ Adding also AAAA record can be beneficial as visitors with IPv6 support will con #### Shared IPv4 *(valid but NOT recommended)* ```bash -Type Name Content Proxy status TTL -AAAA DNS only Auto -A Proxied Auto +Type Name Content Proxy status TTL +AAAA DNS only Auto +A Proxied Auto ``` :::tip Why not? @@ -56,9 +56,9 @@ It does not make sense to expose your IPv6 address while proxying the shared IPv #### Shared IPv4 ```bash -Type Name Content Proxy status TTL -AAAA DNS only Auto -A DNS only Auto +Type Name Content Proxy status TTL +AAAA DNS only Auto +A DNS only Auto ``` :::note Both A + AAAA Required @@ -67,10 +67,10 @@ Adding AAAA record is essential for shared IPv4 configuration as it serves as a #### Dedicated IPv4 ```bash -Type Name Content Proxy status TTL -A DNS only Auto +Type Name Content Proxy status TTL +A DNS only Auto # Optional -AAAA DNS only Auto +AAAA DNS only Auto ``` :::tip @@ -79,65 +79,86 @@ Adding also AAAA record can be beneficial as visitors with IPv6 support will con #### IPv6 only ```bash -Type Name Content Proxy status TTL -AAAA DNS only Auto +Type Name Content Proxy status TTL +AAAA DNS only Auto ``` :::note This configuration will only work for users with IPv6 connectivity, which may limit your service accessibility. ::: -### Understanding Shared IPv4 Addresses {#understand-shared-ipv4} +## Wildcard Domain Configuration -Shared IPv4 allows multiple Zerops projects to use the same IPv4 address while maintaining separate routing for each project. Here's how it works: +Zerops supports wildcard domains (`*.`) that allow routing all subdomains to your project. -1. When a visitor makes a request, it first arrives at the shared IPv4 address -2. The system looks at the domain name in the request (using SNI - Server Name Indication) -3. For security, it checks if this domain properly resolves to your project's IPv6 address -4. Only if IPv6 address matches your project will the traffic be routed correctly +### DNS Configuration +#### Method A: Direct configuration of A and AAAA records +Configure wildcard DNS records following the same patterns described in the [DNS Configuration](#dns-configuration) section, using `*.` in the Name field: -This is why configuring both A (IPv4) and AAAA (IPv6) records is crucial when using shared IPv4 addresses - the IPv6 record acts as a security key that helps prevent unauthorized use of the shared IPv4 address. +```bash +Type Name Content Proxy status TTL +A *. DNS only/Proxied Auto +AAAA *. DNS only/Proxied Auto +``` -## General Troubleshooting Guide +#### Method B: Using a CNAME record +First configure A and AAAA records for your main domain (``), then set up a CNAME record: -### Common Issues +```bash +Type Name Content Proxy status TTL +CNAME *. DNS only/Proxied Auto +``` -1. **DNS Resolution Issues** - - Confirm correct record configuration - - Verify proxy status settings - - Check IPv6 address accuracy - - Allow time for DNS propagation (typically 5-10 minutes) +### Certificate Validation -2. **Connection Problems** - - Test both IPv4 and IPv6 connectivity - - Check proxy server status if applicable - - Confirm port configurations +For proper HTTPS certificate functionality with wildcard domains, configure: +```bash +Type Name Content Proxy status TTL +CNAME _acme-challenge. .zerops.zone DNS only Auto +``` -### Validation Steps +This record enables Zerops to issue and verify a wildcard certificate for your domain. -Test your configuration: -```bash -# Check DNS resolution -dig AAAA yourdomain.com +### Higher-Level Wildcard Subdomains -# Verify connectivity -curl -vI https://yourdomain.com +You can also set up higher-level wildcard subdomains like `*..`: -# Test IPv4 access -curl -4 -v https://yourdomain.com +#### Method A: Direct configuration +```bash +Type Name Content Proxy status TTL +A *.. DNS only/Proxied Auto +AAAA *.. DNS only/Proxied Auto +``` -# Test IPv6 access -curl -6 -v https://yourdomain.com +#### Method B: Using a CNAME record +```bash +Type Name Content Proxy status TTL +CNAME *.. . DNS only/Proxied Auto +``` +or +```bash +Type Name Content Proxy status TTL +CNAME *.. DNS only/Proxied Auto +``` + +For certificate validation: +```bash +Type Name Content Proxy status TTL +CNAME _acme-challenge.. ..zerops.zone DNS only Auto ``` -## Cloudflare Configuration +### Combining Main Domain and Wildcard Domain -### SSL/TLS Mode +To use both `` and `*.`, specify both variants in your [Zerops configuration](/features/access#configuring-http-routing). Zerops automatically issues a single shared certificate for both the main domain and all its subdomains. + +## Cloudflare-Specific Configuration + +#### SSL/TLS Mode Set encryption mode to `Full (strict)` or `Full` - Ensures end-to-end encryption - *Full* mode requires any SSL certificate (even if self-signed/expired), while *Full (strict)* requires a valid certificate -### Certificate Management +#### Certificate Management 1. Enable Edge Certificates to allow Cloudflare to manage SSL/TLS certificates 2. During initial setup, handle HTTPS settings in one of two ways: - **Option A (Simple but Limited)**: @@ -152,10 +173,73 @@ Set encryption mode to `Full (strict)` or `Full` ``` This rule disables Automatic HTTPS Rewrites for the certificate validation path. -### Cloudflare Troubleshooting +## Validation Steps -#### SSL Certificate Problems - - Verify `Always Use HTTPS` is disabled - - If you encounter **too many redirects** or similar SSL errors: +Test your configuration: +```bash +# Check DNS resolution +dig AAAA + +# Verify connectivity +curl -vI https:// + +# Test IPv4 access +curl -4 -v https:// + +# Test IPv6 access +curl -6 -v https:// +``` + +## Troubleshooting Guide + +1. **DNS Resolution Issues** + - Confirm correct record configuration + - Verify proxy status settings + - Check IPv6 address accuracy + - Allow time for DNS propagation (typically 5-10 minutes) + +2. **Connection Problems** + - Test both IPv4 and IPv6 connectivity + - Check proxy server status if applicable + - Confirm port configurations + +3. **Certificate Issues** + - Verify proper _acme-challenge CNAME configuration for wildcard domains + - Check that DNS records match the domains configured in Zerops + - **Cloudflare-specific certificate problems**: + - Verify `Always Use HTTPS` is disabled + - If you encounter **too many redirects** or similar SSL errors: - Double-check that SSL/TLS encryption mode is set to *Full* or *Full (strict)*, not *Flexible* - - SSL mode might show incorrectly for newly added domains, try refreshing the page if settings appear incorrect \ No newline at end of file + - SSL mode might show incorrectly for newly added domains, try refreshing the page if settings appear incorrect + +## Technical Background + +### Understanding Shared IPv4 Addresses {#understand-shared-ipv4} + +Shared IPv4 allows multiple Zerops projects to use the same IPv4 address while maintaining separate routing for each project. Here's how it works: + +1. When a visitor makes a request, it first arrives at the shared IPv4 address +2. The system looks at the domain name in the request (using SNI - Server Name Indication) +3. For security, it checks if this domain properly resolves to your project's IPv6 address +4. Only if IPv6 address matches your project will the traffic be routed correctly + +This is why configuring both A (IPv4) and AAAA (IPv6) records is crucial when using shared IPv4 addresses - the IPv6 record acts as a security key that helps prevent unauthorized use of the shared IPv4 address. + +### Certificate Verification Methods + +When issuing SSL/TLS certificates, different verification methods are used depending on the certificate type: + +#### HTTP-01 vs DNS-01 Verification + +- **Regular certificates** (for a single domain like ``) are typically issued using the **HTTP-01** challenge method. This verification checks that you control the domain by placing a specific file at a specific URL. + +- **Wildcard certificates** (for domains like `*.`) must be issued using the **DNS-01** challenge method. This method requires creating specific TXT records in your DNS configuration. + +### How Zerops Handles Wildcard Certificate Verification + +Zerops simplifies the DNS-01 challenge process: + +1. You create a CNAME record (e.g., `_acme-challenge. CNAME .zerops.zone`) +2. When a certificate needs to be issued or renewed, Zerops automatically creates the required TXT records on its `zerops.zone` domain +3. The certificate authority verifies these TXT records through the CNAME redirection +4. Once verified, the wildcard certificate is issued without requiring manual intervention \ No newline at end of file From 561ee5359663bd181b4846563ccedb2ae54b943f Mon Sep 17 00:00:00 2001 From: vankovap Date: Mon, 24 Mar 2025 22:25:10 +0100 Subject: [PATCH 34/59] diagrams (#223) --- apps/docs/content/company/pricing.mdx | 4 +- apps/docs/content/features/infrastructure.mdx | 58 +++++++++++-------- .../static/img/mind-maps/lightweight-dark.svg | 32 +++++----- .../docs/static/img/mind-maps/lightweight.svg | 40 ++++++------- 4 files changed, 71 insertions(+), 63 deletions(-) diff --git a/apps/docs/content/company/pricing.mdx b/apps/docs/content/company/pricing.mdx index 6847ca2b..a533bdcd 100644 --- a/apps/docs/content/company/pricing.mdx +++ b/apps/docs/content/company/pricing.mdx @@ -11,11 +11,11 @@ The total cost of deploying an application includes your project's **core packag Resources are allocated per service and billed by the minute, though credit is deducted hourly based on actual usage. You're only charged for what you use, calculated down to the minute. ::: -Need to add credits to your account? Visit our [Top-up & Billing page](/features/payment) for instructions. +Need to add credits to your account? Visit our [Top-up & Billing page](/company/payment) for instructions. ## Project Core Plans -Zerops offers two core types to match different needs and budgets. For detailed information on both core types, visit our [Project & Services Structure](/features/project-structure#project-core) page. +Zerops offers two core types to match different needs and budgets. For detailed information on both core types, visit our [Project & Services Structure](/features/infrastructure) page. ### Lightweight Core - Free Best for development, testing, and smaller workloads with limited redundancy. diff --git a/apps/docs/content/features/infrastructure.mdx b/apps/docs/content/features/infrastructure.mdx index 9955970d..ee61871d 100644 --- a/apps/docs/content/features/infrastructure.mdx +++ b/apps/docs/content/features/infrastructure.mdx @@ -32,20 +32,47 @@ When you create a project, it requires a functioning **core** that includes: Zerops offers two core types to match different needs and budgets: +### Lightweight Core + +Our single-container solution that packs everything you need to get started quickly. Includes a project controller, L3 balancer, firewall, logger, statistics, and HTTP handling—all in one efficient package. Perfect for development projects and smaller production workloads where simplicity matters. Automatically handles SSL certificates and load balancing without complex setup. +
+Lightweight Core + +### Serious Core + +Enterprise-grade infrastructure designed for mission-critical applications. Separates core services across multiple containers for true redundancy and high availability. Includes redundant project controllers and balancers, dedicated statistics and logging services, and advanced HTTP management. Ideal when your production workloads demand maximum reliability and scalability without compromise. +
+Serious Core + +### Features Comparison + +Compare our core infrastructure options side-by-side to find the right fit for your project needs, from resource allocations to available features: + +
- + - - - - - @@ -94,25 +121,6 @@ Zerops offers two core types to match different needs and budgets:
Features Lightweight Core Serious Core
Best ForDevelopment, testing, smaller workloadsProduction, high-reliability workloads
Infrastructure Single container (limited redundancy)
- - -### Lightweight Core -Lightweight Core -### Serious Core -Serious Core - - - For detailed pricing information on both core types, visit our [pricing page](/features/pricing#project-core-plans). ## Services diff --git a/apps/docs/static/img/mind-maps/lightweight-dark.svg b/apps/docs/static/img/mind-maps/lightweight-dark.svg index 73c62265..a832f59c 100644 --- a/apps/docs/static/img/mind-maps/lightweight-dark.svg +++ b/apps/docs/static/img/mind-maps/lightweight-dark.svg @@ -1,8 +1,8 @@ diff --git a/apps/docs/static/img/mind-maps/lightweight.svg b/apps/docs/static/img/mind-maps/lightweight.svg index 30d3c0e3..067c288f 100644 --- a/apps/docs/static/img/mind-maps/lightweight.svg +++ b/apps/docs/static/img/mind-maps/lightweight.svg @@ -1,8 +1,8 @@ + originx="-624.33496" + originy="-238.07351" /> From 6c5946cfaa2ff5c8d2eb1d089489393a497dcbd8 Mon Sep 17 00:00:00 2001 From: vankovap Date: Thu, 27 Mar 2025 22:16:55 +0100 Subject: [PATCH 35/59] extends (#224) --- .../content/zerops-yaml/specification.mdx | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/apps/docs/content/zerops-yaml/specification.mdx b/apps/docs/content/zerops-yaml/specification.mdx index 3eeb8c2f..9bb7d386 100644 --- a/apps/docs/content/zerops-yaml/specification.mdx +++ b/apps/docs/content/zerops-yaml/specification.mdx @@ -52,6 +52,49 @@ zerops: Each service configuration requires `build` and `run` sections. An optional `deploy` section can be added for readiness checks. +## Service Inheritance + +### extends + +The `extends` key allows you to inherit configuration from another service defined in the same `zerops.yaml` file. This is useful for creating environment-specific configurations while maintaining a common base. + +```yaml +zerops: + - setup: base + build: + buildCommands: + - echo "hello" + deployFiles: ./ + run: + start: server run + + - setup: prod + extends: base + run: + crontab: + - command: xyz + allContainers: false + timing: "* * * * *" + + - setup: dev + extends: base + run: + crontab: + - command: different command + allContainers: false + timing: "* * * * *" +``` + +When using `extends`: +- The `extends` value must refer to another service's `setup` value in the same file +- The child service inherits all configuration from the base service +- Configuration is merged at the section level (`build`, `run`, `deploy`) +- You can override specific sections by redefining them + +:::tip +Create a base service with common configuration and extend it for environment-specific services to keep your `zerops.yaml` file DRY (Don't Repeat Yourself). +::: + ## Build Configuration ### base From 171d88fb977608c46d25acb97bb22461c9f9dcab Mon Sep 17 00:00:00 2001 From: vankovap Date: Tue, 1 Apr 2025 23:31:12 +0200 Subject: [PATCH 36/59] Zcli (#225) * cli --- apps/docs/content/references/cli.mdx | 29 +- apps/docs/content/references/cli/commands.mdx | 350 +++++++++--------- 2 files changed, 192 insertions(+), 187 deletions(-) diff --git a/apps/docs/content/references/cli.mdx b/apps/docs/content/references/cli.mdx index 0d53e9df..fa01d473 100644 --- a/apps/docs/content/references/cli.mdx +++ b/apps/docs/content/references/cli.mdx @@ -6,8 +6,6 @@ description: Learn how to install and use zCLI, the powerful command-line tool f import CustomCard from '/src/components/CustomCard'; import Image from '/src/components/Image'; -## What is zCLI? - zCLI is the command-line tool for Zerops that allows users to manage services, simplify interactions, configure infrastructure directly from the terminal. ## Platforms @@ -20,20 +18,17 @@ zCLI currently supports: ## Get started -To get started, you may install **zCLI** globally using [NPM](https://www.npmjs.com) or [Yarn](https://yarnpkg.com/) package manager: +### Manual Installation -```sh -npm i -g @zerops/zcli -``` +To download the zCLI directly, get the [latest release](https://github.com/zeropsio/zcli/releases) from GitHub. + +### Linux/MacOS ```sh -yarn global add @zerops/zcli +curl -L https://zerops.io/zcli/install.sh | sh ``` - - To download the zCLI directly, get the [latest - ↗](https://github.com/zeropsio/zcli/releases) release from GitHub. - +zCLI will be installed inside `/usr/bin` or `/usr/local/bin`. ### Windows @@ -43,13 +38,17 @@ irm https://zerops.io/zcli/install.ps1 | iex zCLI will be installed inside `C:\Program Files\` or `C:\Program Files (x86)\` -### Linux/MacOS +### Using Package Managers + +You can also install zCLI using package managers: ```sh -curl -L https://zerops.io/zcli/install.sh | sh +npm i -g @zerops/zcli ``` -zCLI will be installed inside `/usr/bin` or `/usr/local/bin`. +```sh +yarn global add @zerops/zcli +``` ### NixOS @@ -106,4 +105,4 @@ zcli login ## References -[zCLI Commands and Usage](/references/cli/commands) +[zCLI Commands and Usage](/references/cli/commands) \ No newline at end of file diff --git a/apps/docs/content/references/cli/commands.mdx b/apps/docs/content/references/cli/commands.mdx index 694dd14a..28209337 100644 --- a/apps/docs/content/references/cli/commands.mdx +++ b/apps/docs/content/references/cli/commands.mdx @@ -1,280 +1,286 @@ --- title: Available Commands -description: The available commands in our command line tool which you can use to interact with Zerops. +description: Available commands in the Zerops command line tool (zcli) --- -## Usage + +## Basic Usage ```sh -zcli {command} [flags] +zcli [command] [flags] ``` -### Example output - -```sh title="bash" -Welcome in Zerops! -You are loged as -and your VPN connection is not active. - -Usage: -────── -zcli [flags] -zcli [command] - -Available Commands: -─────────────────── -completion Generate the autocompletion script for the specified shell -env Displays global environment variables, their paths and additional options -help Help about any command -login Login into Zerops with generated Zerops token -logout Disconnect from VPN and log out from your Zerops account -project Project commands group -push Builds your application in Zerops and deploys it -scope Scope commands group -service Zerops service commands group -show-debug-logs Shows zCLI debug logs -support How to contact Zerops support for assistance -version Shows the current zCLI version -vpn VPN commands group - -Flags: -────── - -h, --help help for zcli - -Use "zcli [command] --help" for more information about a command. -``` +:::note Tip +All commands support the `-h, --help` flag which displays help information about the command. +::: -## Commands +## Command Groups +- [Account & VPN](#account--vpn) +- [Project Management](#project-management) +- [Service Operations](#service-operations) +- [Utility Commands](#utility-commands) ---- +## Account & VPN -### help +### login -This command lists available commands and flags on a command by placing `help`, `-h` or `--help` flag after the command. +Logs you into Zerops using a generated token or your login credentials. ```sh -zcli help -# or -zcli --help -# or -zcli -h +zcli login ``` ---- - -### env +### logout -Displays global environment variables, their paths and additional options. +Disconnects from VPN and logs out from your Zerops account. ```sh -zcli env [flags] +zcli logout ``` -#### Available flags -- `-h, --help`: Help for the env command +### vpn up ---- +Connects to the Zerops VPN. -### completion +```sh +zcli vpn up [projectId] [flags] +``` -Generate the autocompletion script for the specified shell. +**Flags:** +- `--auto-disconnect` - Automatically disconnect from VPN if already connected +- `--mtu int` - Set custom MTU value for Wireguard interface (default: 1420) +- `--projectId string` - Required when you have access to multiple projects + +### vpn down + +Disconnects from the Zerops VPN. ```sh -zcli completion {bash|fish|powershell|zsh} [flags] +zcli vpn down ``` -#### Available flags -- `-h, --help`: Help for completion -- `--no-descriptions`: Disable completion descriptions (bash only) +:::note +For more detailed information about Zerops VPN configuration and troubleshooting, visit the [VPN Documentation](/references/vpn). +::: ---- +## Project Management -### login +### project list -Logs you into Zerops. Use a generated Zerops token or your login e-mail and password. +Lists all projects you have access to. ```sh -zcli login +zcli project list ``` ---- - -### project +### project delete -Project related commands. +Deletes a project and all its services. ```sh -zcli project {sub-command} [arguments] [flags] +zcli project delete [projectId] [flags] ``` -#### Available sub-commands +**Flags:** +- `--confirm` - Skip confirmation prompts for destructive operations +- `--projectId string` - Required when you have access to multiple projects -- `delete`: Deletes a project and all of its services -- `list`: Lists all projects -- `project-import`: Creates a new project with one or more services -- `service-import`: Creates one or more Zerops services in an existing project +### project project-import -#### Available flags +Creates a new project with one or more services from a YAML definition. -- `delete` +```sh +zcli project project-import [flags] +``` - - `--confirm`: If set, zCLI will not ask for confirmation of destructive operations - - `--projectId `: Required if you have access to multiple projects - - `-h, --help`: Help for project delete +**Flags:** +- `--orgId string` - Organization ID where the project should be created (required for multiple organizations) +- `--workingDir string` - Sets a custom working directory (default: "./") -- `list` +### project service-import - - `-h, --help`: Help for project list +Creates one or more services in an existing project from a YAML definition. -- `project-import` +```sh +zcli project service-import [flags] +``` - - `--orgId `: Required if you have access to multiple organizations - - `--workingDir `: Sets custom working directory (default: "./") - - `-h, --help`: Help for project import +**Flags:** +- `--projectId string` - Required when you have access to multiple projects ---- +### scope project -### push +Sets the default project for commands that require a project ID. ```sh -zcli push {flags} +zcli scope project [projectId] ``` -#### Available flags - -- `--archiveFilePath `: Creates a tar.gz archive of the application code at the specified path relative to the working directory. If not set, no archive is created. -- `--deployGitFolder`: Includes the `.git` folder in the upload. By default, the `.git` folder is excluded. -- `--projectId `: Required if you have access to multiple projects. Specifies the target project ID for command execution. -- `--serviceId `: Required if you have access to multiple services. Specifies the target service ID for command execution. -- `--versionName `: Sets a custom version name. If the `VERSIONNAME` environment variable exists, its value is used automatically. -- `--workingDir `: Sets a custom working directory. Defaults to the current directory (`./`). -- `--zeropsYamlPath `: Specifies a custom path to the `zerops.yaml` file relative to the working directory. By default, zCLI looks for `zerops.yaml` in the working directory. - ---- +### scope reset -### scope +Resets the default project and service scope. ```sh -zcli scope [sub-command] +zcli scope reset ``` -#### Available sub-commands +## Service Operations -- `project`: Sets the scope for project. All commands that require project ID will use the selected one. -- `reset`: Resets the scope for project and service. +### service list -#### Required parameters +Lists all services in a project. -- `project-id` +```sh +zcli service list [flags] +``` ---- +**Flags:** +- `--projectId string` - Required when you have access to multiple projects -### service +### service push -Service related commands. +Builds your application in Zerops and deploys it. This is the recommended way to deploy your code. ```sh -zcli service {sub-command} [arguments] [flags] +zcli service push [serviceIdOrName] [flags] ``` -#### Available sub-commands +**Flags:** +- `--archiveFilePath string` - Creates a tar.gz archive with application code +- `-g, --deployGitFolder` - Include the .git folder in the upload +- `--disableLogs` - Disable logs during push +- `--projectId string` - Required when you have access to multiple projects +- `--serviceId string` - Required when you have access to multiple services +- `--setup string` - Choose setup to use from zerops.yml +- `--versionName string` - Adds a custom version name +- `--workingDir string` - Sets a custom working directory (default: "./") +- `-w, --workspaceState string` - Defines version of workspace to push: + - `clean` - pushes the HEAD without local changes + - `staged` - pushes only staged files + - `all` - pushes all staged and unstaged files (default) +- `--zeropsYamlPath string` - Sets a custom path to the zerops.yml file + +:::tip +You can also use `zcli push` as a shorthand for `zcli service push`. +::: + +### service deploy + +Deploys your application to Zerops. Similar to `push` but focuses on deployment only. -- `delete` - Deletes the Zerops service -- `deploy` - Deploys your application to Zerops -- `enable-subdomain` - Enables access through Zerops subdomain -- `list` - Lists all services in the project -- `log` - Get service runtime or build log to stdout -- `push` - Builds your application in Zerops and deploys it -- `start` - Starts the Zerops service -- `stop` - Stops the Zerops service +```sh +zcli service deploy [serviceIdOrName] +``` -#### Available flags +**Flags:** +Same as service push command. -- `delete` +### service start/stop - - `--confirm`: If set, zCLI will not ask for confirmation of destructive operations - - `--projectId `: Required if you have access to multiple projects - - `--serviceId `: Required if you have access to multiple services +Commands to start or stop a Zerops service. -- `deploy` +```sh +zcli service start [serviceIdOrName] [flags] +zcli service stop [serviceIdOrName] [flags] +``` - - `--archiveFilePath `: Creates a tar.gz archive of the application code at the specified path - - `--deployGitFolder`: Includes the `.git` folder in the upload - - `--projectId `: Required if you have access to multiple projects - - `--serviceId `: Required if you have access to multiple services - - `--versionName `: Sets a custom version name - - `--workingDir `: Sets a custom working directory (default: `./`) - - `--zeropsYamlPath `: Specifies a custom path to the `zerops.yaml` file +**Flags for both commands:** +- `--projectId string` - Required when you have access to multiple projects +- `--serviceId string` - Required when you have access to multiple services - See how to use [.deployignore](/zerops-yaml/specification#deployignore) file. +### service delete -- `enable-subdomain` +Deletes a Zerops service. - - `--projectId `: Required if you have access to multiple projects - - `--serviceId `: Required if you have access to multiple services +```sh +zcli service delete [serviceIdOrName] [flags] +``` -- `list` +**Flags:** +- `--confirm` - Skip confirmation prompts for destructive operations +- `--projectId string` - Required when you have access to multiple projects +- `--serviceId string` - Required when you have access to multiple services - - `--projectId `: Required if you have access to multiple projects +### service enable-subdomain -- `log` +Enables access to your service through a Zerops subdomain. - - `--follow`: Continuously poll for new log messages - - `--format `: The format of returned log messages (FULL, SHORT, JSON, JSONSTREAM) - - `--formatTemplate