diff --git a/docs/README.md b/docs/README.md index 7ccf915..9c7dda5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,9 +8,9 @@ Our docs are built using [Astro Starlight](https://starlight.astro.build), desig ## 💡 About -This repository powers all the public documentation for [**Diploi**](https://diploi.com) — a next-generation SaaS platform for developing and hosting your applications with zero friction. +This repository powers all the public documentation for [**Diploi**](https://diploi.com) - a next-generation SaaS platform for developing and hosting your applications with zero friction. -If you spot something unclear, outdated, or missing — please help us improve it! +If you spot something unclear, outdated, or missing - please help us improve it! Every pull request helps make Diploi easier to use for everyone. @@ -41,7 +41,7 @@ pnpm install pnpm run dev ``` -Then visit [http://localhost:4321](http://localhost:4321) — your local Diploi Docs will be running there +Then visit [http://localhost:4321](http://localhost:4321) - your local Diploi Docs will be running there ## Structure @@ -57,7 +57,7 @@ Then visit [http://localhost:4321](http://localhost:4321) — your local Diploi ## Deployment Docs are automatically deployed when changes are merged into `main`. -The site is hosted directly on Diploi’s infrastructure — so edits will go live within minutes. +The site is hosted directly on Diploi’s infrastructure - so edits will go live within minutes. ## Useful Links diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 99f688b..663600c 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -90,7 +90,40 @@ export default defineConfig({ label: "Building", items: [ "building/components", + { + label: "Components supported", + collapsed: true, + items: [ + "building/components/astro", + "building/components/bun", + "building/components/deno", + "building/components/django", + "building/components/fastapi", + "building/components/flask", + "building/components/ghost", + "building/components/hono", + "building/components/laravel", + "building/components/n8n", + "building/components/nextjs", + "building/components/nodejs", + "building/components/nue", + "building/components/react-vite", + "building/components/supabase", + "building/components/sveltekit", + ], + }, "building/add-ons", + { + label: "Add-ons supported", + collapsed:true, + items: [ + "building/add-ons/mariadb", + "building/add-ons/minio", + "building/add-ons/mongo", + "building/add-ons/postgres", + "building/add-ons/redis", + ], + }, "building/add-ssh-key", "building/remote-development", ], diff --git a/docs/src/assets/CreateProjectDiagram.svg b/docs/src/assets/CreateProjectDiagram.svg index da2e76c..12437d0 100644 --- a/docs/src/assets/CreateProjectDiagram.svg +++ b/docs/src/assets/CreateProjectDiagram.svg @@ -1,4 +1,4 @@ - + @@ -20,12 +20,12 @@ - - - - - - + + + + + + diff --git a/docs/src/assets/CreateProjectRepo.png b/docs/src/assets/CreateProjectRepo.png index 20a3402..c92a5b7 100644 Binary files a/docs/src/assets/CreateProjectRepo.png and b/docs/src/assets/CreateProjectRepo.png differ diff --git a/docs/src/assets/CreateProjectWithoutRepo.png b/docs/src/assets/CreateProjectWithoutRepo.png new file mode 100644 index 0000000..573d849 Binary files /dev/null and b/docs/src/assets/CreateProjectWithoutRepo.png differ diff --git a/docs/src/assets/QuickStartBuilder.png b/docs/src/assets/QuickStartBuilder.png index eb38c59..ac6f4c7 100644 Binary files a/docs/src/assets/QuickStartBuilder.png and b/docs/src/assets/QuickStartBuilder.png differ diff --git a/docs/src/content/docs/building/add-ons/mariadb.mdx b/docs/src/content/docs/building/add-ons/mariadb.mdx new file mode 100644 index 0000000..5f206fb --- /dev/null +++ b/docs/src/content/docs/building/add-ons/mariadb.mdx @@ -0,0 +1,39 @@ +--- +title: MariaDB +description: Provision MariaDB when your Diploi app needs MySQL compatibility. +--- + +MariaDB is a relational database that's compatible with MySQL, and adds performance and tooling improvements. You can use MariaDB when your project requires a db compatible with MySQL or if you are migrating existing MySQL workloads. + +## Add to your project + +Paste this entry into the `addons` list in `diploi.yaml` to add MariaDB to your project. + +```yaml +addons: + - name: MariaDB + identifier: mariadb + package: https://github.com/diploi/addon-mariadb#main +``` + +:::note +- identifier must match the folder name you use for this add-on in your repo. +- Components can import ENV from this add-on using env.include: + +```yaml +components: + - name: Bun + identifier: bun + package: https://github.com/diploi/component-bun#main + env: + include: + - mariadb.* +``` +::: + +## See also + +- [Using Add-ons](/building/add-ons) +- [MariaDB add-on repository](https://github.com/diploi/addon-mariadb) +- [MariaDB docs](https://mariadb.com/kb/en/documentation/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/add-ons/minio.mdx b/docs/src/content/docs/building/add-ons/minio.mdx new file mode 100644 index 0000000..7c8ebf7 --- /dev/null +++ b/docs/src/content/docs/building/add-ons/minio.mdx @@ -0,0 +1,39 @@ +--- +title: MinIO +description: Provision MinIO as an S3-compatible Diploi add-on. +--- + +MinIO is an open-source, S3-compatible, object storage system that you can run in Diploi. Use this add-on when your components need to store uploads, backups, or other binary data without relying on an external cloud bucket. + +## Add to your project + +Paste this entry into the `addons` list in `diploi.yaml` to add MinIO to your project. + +```yaml +addons: + - name: MinIO + identifier: minio + package: https://github.com/diploi/addon-minio#main +``` + +:::note +- identifier must match the folder name you use for this add-on in your repo. +- Components can import ENV from this add-on using env.include. For example, an Astro component can expose the MinIO credentials like this: + +```yaml +components: + - name: Astro + identifier: astro + package: https://github.com/diploi/component-astro#main + env: + include: + - minio.* +``` +::: + +## See also + +- [Using Add-ons](/building/add-ons) +- [MinIO add-on repository](https://github.com/diploi/addon-minio) +- [MinIO docs](https://docs.min.io/enterprise/aistor-object-store/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/add-ons/mongo.mdx b/docs/src/content/docs/building/add-ons/mongo.mdx new file mode 100644 index 0000000..50308c0 --- /dev/null +++ b/docs/src/content/docs/building/add-ons/mongo.mdx @@ -0,0 +1,39 @@ +--- +title: Mongo +description: Attach a Mongo database to Diploi components. +--- + +Mongo is a document database that stores flexible JSON-like records with dynamic schemas. Use this add-on when your application benefits from schema-less data modeling or rapid iteration. + +## Add to your project + +Paste this entry into the `addons` list in `diploi.yaml` to add Mongo to your project. + +```yaml +addons: + - name: Mongo + identifier: mongo + package: https://github.com/diploi/addon-mongo#main +``` + +:::note +- identifier must match the folder name you use for this add-on in your repo. +- Components can import ENV from this add-on using env.include. For example, a Next.js API route can rely on Mongo variables like this: + +```yaml +components: + - name: Next.js + identifier: nextjs + package: https://github.com/diploi/component-nextjs#main + env: + include: + - mongo.* +``` +::: + +## See also + +- [Using Add-ons](/building/add-ons) +- [Mongo add-on repository](https://github.com/diploi/addon-mongo) +- [MongoDB docs](https://www.mongodb.com/docs/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/add-ons/postgres.mdx b/docs/src/content/docs/building/add-ons/postgres.mdx new file mode 100644 index 0000000..b42fd6f --- /dev/null +++ b/docs/src/content/docs/building/add-ons/postgres.mdx @@ -0,0 +1,39 @@ +--- +title: PostgreSQL +description: Provision PostgreSQL as a Diploi add-on for relational data. +--- + +PostgreSQL is a popular relational database suited for transactional workloads and complex queries. Use this add-on when your application needs structured data storage with ACID guarantees. + +## Add to your project + +Paste this entry into the `addons` list in `diploi.yaml` to add PostgreSQL to your project. + +```yaml +addons: + - name: PostgreSQL + identifier: postgres + package: https://github.com/diploi/addon-postgres#main +``` + +:::note +- identifier must match the folder name you use for this add-on in your repo. +- Components can import ENV from this add-on using env.include. For example, a FastAPI component can pull Postgres connection variables like this: + +```yaml +components: + - name: FastAPI + identifier: fastapi + package: https://github.com/diploi/component-fastapi#main + env: + include: + - postgres.* +``` +::: + +## See also + +- [Using Add-ons](/building/add-ons) +- [PostgreSQL add-on repository](https://github.com/diploi/addon-postgres) +- [PostgreSQL docs](https://www.postgresql.org/docs/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/add-ons/redis.mdx b/docs/src/content/docs/building/add-ons/redis.mdx new file mode 100644 index 0000000..8e78969 --- /dev/null +++ b/docs/src/content/docs/building/add-ons/redis.mdx @@ -0,0 +1,39 @@ +--- +title: Redis +description: Add Redis for caching, queues, and ephemeral data in Diploi. +--- + +Redis is an in-memory data store ideal for caching, rate limiting, queues, and other latency-sensitive workloads. Choose this add-on when your components need fast key-value access or pub/sub messaging. + +## Add to your project + +Paste this entry into the `addons` list in `diploi.yaml` to add Redis to your project. + +```yaml +addons: + - name: Redis + identifier: redis + package: https://github.com/diploi/addon-redis#main +``` + +:::note +- identifier must match the folder name you use for this add-on in your repo. +- Components can import ENV from this add-on using env.include. For example, a Node.js worker can grab the Redis host and password like this: + +```yaml +components: + - name: Node.js + identifier: nodejs + package: https://github.com/diploi/component-nodejs#main + env: + include: + - redis.* +``` +::: + +## See also + +- [Using Add-ons](/building/add-ons) +- [Redis add-on repository](https://github.com/diploi/addon-redis) +- [Redis docs](https://redis.io/docs/latest/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/astro.mdx b/docs/src/content/docs/building/components/astro.mdx new file mode 100644 index 0000000..ab04f36 --- /dev/null +++ b/docs/src/content/docs/building/components/astro.mdx @@ -0,0 +1,42 @@ +--- +title: Astro +description: Ship Astro sites with Diploi-managed builds and hosting. +--- + +Astro is a modern static site builder focused on shipping minimal JavaScript to the browser. Choose this component when you are delivering content-heavy marketing sites, blogs, or documentation that benefit from fast page loads. Diploi handles the SSR build pipeline and pushes assets where they need to run. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Astro to your project. + +```yaml +components: + - name: Astro + identifier: astro + package: https://github.com/diploi/component-astro#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include, depending on the db your project uses. + +Example: + +```yaml +env: + include: + - mariadb.* + - minio.* + - mongo.* + - postgres.* + - redis.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Astro component repository](https://github.com/diploi/component-astro) +- [Astro docs](https://docs.astro.build/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/bun.mdx b/docs/src/content/docs/building/components/bun.mdx new file mode 100644 index 0000000..62dc9e3 --- /dev/null +++ b/docs/src/content/docs/building/components/bun.mdx @@ -0,0 +1,39 @@ +--- +title: Bun +description: Deploy Bun apps and tooling with Diploi. +--- + +Bun is a high-performance JavaScript runtime that includes a bundler, test runner, and package manager. Use this component when you want Bun's fast startup times and all-in-one tooling for web services or utilities. Diploi handles the deployment so you can take advantage of Bun without custom infrastructure. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Bun to your project. + +```yaml +components: + - name: Bun + identifier: bun + package: https://github.com/diploi/component-bun#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - postgres.* + - redis.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Bun component repository](https://github.com/diploi/component-bun) +- [Bun docs](https://bun.sh/docs) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/deno.mdx b/docs/src/content/docs/building/components/deno.mdx new file mode 100644 index 0000000..c7ebc8d --- /dev/null +++ b/docs/src/content/docs/building/components/deno.mdx @@ -0,0 +1,39 @@ +--- +title: Deno +description: Run Deno apps on Diploi with automated builds and deploys. +--- + +Deno is a secure JavaScript and TypeScript runtime with batteries-included tooling and standards-based APIs. Use this component when you want Diploi to manage cache-friendly builds and keep Deno services updated without self-hosting. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Deno to your project. + +```yaml +components: + - name: Deno + identifier: deno + package: https://github.com/diploi/component-deno#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - postgres.* + - minio.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Deno component repository](https://github.com/diploi/component-deno) +- [Deno docs](https://docs.deno.com/runtime/manual) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/django.mdx b/docs/src/content/docs/building/components/django.mdx new file mode 100644 index 0000000..0e86cf4 --- /dev/null +++ b/docs/src/content/docs/building/components/django.mdx @@ -0,0 +1,38 @@ +--- +title: Django +description: Run Django projects on Diploi with managed deploys. +--- + +Django is a batteries-included Python framework for building secure, database-driven applications. Use this component when you need an admin interface, ORM, and templating system out of the box. Diploi provisions the deployment pipeline so you can focus on models and views instead of infrastructure. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Django to your project. + +```yaml +components: + - name: Django + identifier: django + package: https://github.com/diploi/component-django#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - mariadb.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Django component repository](https://github.com/diploi/component-django) +- [Django docs](https://docs.djangoproject.com/en/stable/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/fastapi.mdx b/docs/src/content/docs/building/components/fastapi.mdx new file mode 100644 index 0000000..72829e5 --- /dev/null +++ b/docs/src/content/docs/building/components/fastapi.mdx @@ -0,0 +1,38 @@ +--- +title: FastAPI +description: Deploy FastAPI services through Diploi’s managed component. +--- + +FastAPI is a modern, async Python framework that makes it easy to build performant APIs with automatic OpenAPI docs. Use this component when you want Diploi to run uvicorn builds and handle deploys so you can focus on type-safe endpoints and business logic. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add FastAPI to your project. + +```yaml +components: + - name: FastAPI + identifier: fastapi + package: https://github.com/diploi/component-fastapi#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - mongo.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [FastAPI component repository](https://github.com/diploi/component-fastapi) +- [FastAPI docs](https://fastapi.tiangolo.com/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) \ No newline at end of file diff --git a/docs/src/content/docs/building/components/flask.mdx b/docs/src/content/docs/building/components/flask.mdx new file mode 100644 index 0000000..a87bf65 --- /dev/null +++ b/docs/src/content/docs/building/components/flask.mdx @@ -0,0 +1,38 @@ +--- +title: Flask +description: Deploy lightweight Flask services on Diploi without custom infra. +--- + +Flask is a minimalist Python framework for APIs, dashboards, and microservices. Use this component when you want Diploi to handle the build steps, gunicorn/uvicorn configuration, and deployments while you focus on routes and extensions. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Flask to your project. + +```yaml +components: + - name: Flask + identifier: flask + package: https://github.com/diploi/component-flask#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - redis.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Flask component repository](https://github.com/diploi/component-flask) +- [Flask docs](https://flask.palletsprojects.com/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/ghost.mdx b/docs/src/content/docs/building/components/ghost.mdx new file mode 100644 index 0000000..b659c34 --- /dev/null +++ b/docs/src/content/docs/building/components/ghost.mdx @@ -0,0 +1,44 @@ +--- +title: Ghost +description: Host Ghost to publish blogs and newsletters with Diploi. +--- + +Ghost is an open-source content platform for publishing blogs, newsletters, and membership sites. Use this component when you want Diploi to manage builds and deployments for a Ghost site. It keeps your content workflow together with the infrastructure that serves it. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Ghost to your project. + +```yaml +components: + - name: Ghost + identifier: ghost + package: https://github.com/diploi/component-ghost#main + env: + include: + - mariadb.MARIADB_HOST:database__connection__host + - mariadb.MARIADB_USER:database__connection__user + - mariadb.MARIADB_PASSWORD:database__connection__password +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- Your project must have a MariaDB instance, [click here for more info](/building/add-ons/mariadb). +- In Diploi, Ghost uses MariaDB for storage, so you need to add a MariaDB to your deployment and use the environment variables as defined here: + +```yaml +env: + include: + - mariadb.MARIADB_HOST:database__connection__host + - mariadb.MARIADB_USER:database__connection__user + - mariadb.MARIADB_PASSWORD:database__connection__password +``` + +::: + +## See also + +- [Using Components](/building/components) +- [Ghost component repository](https://github.com/diploi/component-ghost) +- [Ghost docs](https://ghost.org/docs/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/hono.mdx b/docs/src/content/docs/building/components/hono.mdx new file mode 100644 index 0000000..01dcccf --- /dev/null +++ b/docs/src/content/docs/building/components/hono.mdx @@ -0,0 +1,39 @@ +--- +title: Hono +description: Deploy lightweight Hono APIs across Diploi’s infrastructure. +--- + +Hono is a tiny, high-performance web framework tuned for edge and serverless workloads. Choose this component when you need fast APIs or request handlers with minimal overhead. Diploi takes care of packaging and deploying so you can focus on routing and middleware logic. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Hono to your project. + +```yaml +components: + - name: Hono + identifier: hono + package: https://github.com/diploi/component-hono#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - postgres.* + - redis.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Hono component repository](https://github.com/diploi/component-hono) +- [Hono docs](https://hono.dev/docs) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/laravel.mdx b/docs/src/content/docs/building/components/laravel.mdx new file mode 100644 index 0000000..f4014ce --- /dev/null +++ b/docs/src/content/docs/building/components/laravel.mdx @@ -0,0 +1,41 @@ +--- +title: Laravel +description: Deploy Laravel applications on Diploi with managed builds and releases. +--- + +Laravel is a modern PHP framework with expressive routing, ORM, queues, and first-class testing utilities. Use this component when you want Diploi to run the build pipeline, publish assets, and keep your Laravel workloads updated without manually scripting servers. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Laravel to your project. + +```yaml +components: + - name: Laravel + identifier: laravel + package: https://github.com/diploi/component-laravel#main + # Optional: + # env: + # include: + # - mariadb.* +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - mariadb.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Laravel component repository](https://github.com/diploi/component-laravel) +- [Laravel docs](https://laravel.com/docs) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/n8n.mdx b/docs/src/content/docs/building/components/n8n.mdx new file mode 100644 index 0000000..c60a97d --- /dev/null +++ b/docs/src/content/docs/building/components/n8n.mdx @@ -0,0 +1,54 @@ +--- +title: n8n +description: Automate workflows with the n8n component managed by Diploi. +--- + +n8n is a workflow automation platform for connecting APIs, services, and custom logic. Use this component when you need Diploi to build and deploy n8n so you can focus on building workflows, not configuring runtime environments. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add n8n to your project. + +```yaml +components: + - name: n8n + identifier: n8n + package: https://github.com/diploi/component-n8n#v1.112.4 + env: + include: + - postgres.POSTGRES_HOST:DB_POSTGRESDB_HOST + - postgres.POSTGRES_PORT:DB_POSTGRESDB_PORT + - postgres.POSTGRES_USER:DB_POSTGRESDB_USER + - postgres.POSTGRES_PASSWORD:DB_POSTGRESDB_PASSWORD +addons: + - name: PostgreSQL + identifier: postgres + package: https://github.com/diploi/addon-postgres#v17.2 + +``` + +:::note +- In Diploi, n8n uses Postgres for database, so you need to add a Postgres db if your deployment doesn't have one available. [Click here to learn how to add Postgres to your project](/building/add-ons/postgres). +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include: + +```yaml +env: + include: + - postgres.POSTGRES_HOST:DB_POSTGRESDB_HOST + - postgres.POSTGRES_PORT:DB_POSTGRESDB_PORT + - postgres.POSTGRES_USER:DB_POSTGRESDB_USER + - postgres.POSTGRES_PASSWORD:DB_POSTGRESDB_PASSWORD +``` +::: + +:::caution +In n8n, you must use the environment variable names defined by their documentation. For more information check: https://docs.n8n.io/hosting/configuration/environment-variables/database/#postgresql +::: + +## See also + +- [Using Components](/building/components) +- [n8n component repository](https://github.com/diploi/component-n8n) +- [n8n docs](https://docs.n8n.io/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/nextjs.mdx b/docs/src/content/docs/building/components/nextjs.mdx new file mode 100644 index 0000000..a3c73dd --- /dev/null +++ b/docs/src/content/docs/building/components/nextjs.mdx @@ -0,0 +1,38 @@ +--- +title: Next.js +description: Deploy production-ready Next.js apps with server rendering on Diploi. +--- + +Next.js is a React framework for building server-rendered and statically generated applications. Choose this component when you want Diploi to handle optimized builds, routing, and image processing without extra configuration. It works well for SaaS dashboards, marketing pages, and any React project that needs reliable hosting. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Next.js to your project. + +```yaml +components: + - name: Next.js + identifier: nextjs + package: https://github.com/diploi/component-nextjs#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - postgres.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Next.js component repository](https://github.com/diploi/component-nextjs) +- [Next.js docs](https://nextjs.org/docs) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/nodejs.mdx b/docs/src/content/docs/building/components/nodejs.mdx new file mode 100644 index 0000000..a01a386 --- /dev/null +++ b/docs/src/content/docs/building/components/nodejs.mdx @@ -0,0 +1,38 @@ +--- +title: Node.js +description: Run general-purpose Node.js services on Diploi. +--- + +The Node.js component gives you a standard runtime for JavaScript or TypeScript backends. Reach for it when you need an API, webhook processor, or background worker built with the Node ecosystem. Diploi builds and deploys your code while keeping environment variables and dependencies managed. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Node.js to your project. + +```yaml +components: + - name: Node.js + identifier: nodejs + package: https://github.com/diploi/component-nodejs#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - postgres.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Node.js component repository](https://github.com/diploi/component-nodejs) +- [Node.js docs](https://nodejs.org/en/docs) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/nue.mdx b/docs/src/content/docs/building/components/nue.mdx new file mode 100644 index 0000000..f132c8a --- /dev/null +++ b/docs/src/content/docs/building/components/nue.mdx @@ -0,0 +1,38 @@ +--- +title: Nue.js +description: Deploy Nue.js apps with Diploi handling builds and deploys. +--- + +Nue.js is a minimal framework for composing modular web applications with fast SSR. Pick this component when you want Nue's lean runtime while keeping deployment automation simple. Diploi runs the build and serves the output so you can focus on your UI modules. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Nue.js to your project. + +```yaml +components: + - name: Nue.js + identifier: nue + package: https://github.com/diploi/component-nue#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - mariadb.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Nue.js component repository](https://github.com/diploi/component-nue) +- [Nue.js docs](https://nuejs.org/docs/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/react-vite.mdx b/docs/src/content/docs/building/components/react-vite.mdx new file mode 100644 index 0000000..7e910fe --- /dev/null +++ b/docs/src/content/docs/building/components/react-vite.mdx @@ -0,0 +1,39 @@ +--- +title: React + Vite +description: Bundle React apps quickly with the React + Vite component. +--- + +The React + Vite component pairs Vite's fast bundler with a ready-to-serve React runtime. Use it when you need quick rebuilds, hot module reload, and a lightweight deployment target for frontend projects. Diploi handles the build pipeline so you can focus on UI work. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add React + Vite to your project. + +```yaml +components: + - name: React + Vite + identifier: react-vite + package: https://github.com/diploi/component-react-vite#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - mongo.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [React + Vite component repository](https://github.com/diploi/component-react-vite) +- [React docs](https://react.dev/learn) +- [Vite docs](https://vitejs.dev/guide/) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/supabase.mdx b/docs/src/content/docs/building/components/supabase.mdx new file mode 100644 index 0000000..17e9621 --- /dev/null +++ b/docs/src/content/docs/building/components/supabase.mdx @@ -0,0 +1,38 @@ +--- +title: Supabase +description: Deploy Supabase edge functions and services using Diploi components. +--- + +Supabase bundles Postgres, real-time listeners, storage, and auth with edge functions. Use this component when you want Diploi to manage Supabase deployments alongside the rest of your stack so you can ship a unified backend without wiring infrastructure by hand. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add Supabase to your project. + +```yaml +components: + - name: Supabase + identifier: supabase + package: https://github.com/diploi/component-supabase#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - redis.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [Supabase component repository](https://github.com/diploi/component-supabase) +- [Supabase docs](https://supabase.com/docs) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/building/components/sveltekit.mdx b/docs/src/content/docs/building/components/sveltekit.mdx new file mode 100644 index 0000000..de7f35a --- /dev/null +++ b/docs/src/content/docs/building/components/sveltekit.mdx @@ -0,0 +1,38 @@ +--- +title: SvelteKit +description: Deploy full-stack SvelteKit apps through Diploi. +--- + +SvelteKit combines Svelte's component model with server-side rendering, routing, and adapters. Use this component when you need a fast Svelte frontend that can fetch data server-side or run API endpoints. Diploi runs the build and deployment steps so your project ships with predictable infrastructure. + +## Add to your project + +Paste this entry into the `components` list in `diploi.yaml` to add SvelteKit to your project. + +```yaml +components: + - name: SvelteKit + identifier: sveltekit + package: https://github.com/diploi/component-sveltekit#main + +``` + +:::note +- identifier must match the folder name you use for this component in your repo. +- You can import ENV from add-ons into components using env.include. + +Example: + +```yaml +env: + include: + - postgres.* +``` +::: + +## See also + +- [Using Components](/building/components) +- [SvelteKit component repository](https://github.com/diploi/component-sveltekit) +- [SvelteKit docs](https://kit.svelte.dev/docs) +- [Learn more about the `diploi.yaml` file](reference/diploi-yaml) diff --git a/docs/src/content/docs/deploying/creating-a-project.mdx b/docs/src/content/docs/deploying/creating-a-project.mdx index 5f8c1ad..ca4b989 100644 --- a/docs/src/content/docs/deploying/creating-a-project.mdx +++ b/docs/src/content/docs/deploying/creating-a-project.mdx @@ -56,13 +56,13 @@ In the preview you can edit the identifier for each component and add-on you hav -### Choosing the type of project +### Choosing a GitHub Repository The last step before launching your project is to configure how your new application's code will be stored. You have two options available: -- **Quick Launch** where you can launch a project without a repository to store your code. This is ideal for testing quick, where you will run simple scripts or applications which must be accessible online. Learn more about [Quick Launch](/reference/projects/project#quick-launch). +- **Launch Without a Repository** where you can launch a project without a repository to store your code. This is ideal for testing, where you can run simple scripts or applications which must be accessible online. Learn more about [Launch Without a Repository](/reference/projects/project#launch-without-a-repository). - **Create Repository** where a new repository will be created for your project. Ideal for launching new application intended for production. By creating a new repository for your project, you automagically enable Diploi's push-to-deployment pipeline, where changes in your repository's will update the state of your deployment. Learn more about [Create Repository](/reference/projects/project#project-with-repository). @@ -71,7 +71,3 @@ You have two options available: Now that you have selected your preferred stack and the configuration of your project, you can complete the creation of the project by clicking **Launch Stack**. For both types of projects, when you finish creating a new project, a new development deployment will be started for your project, which you can use to start developing your application right away. - -:::caution -**Quick Launch** projects are **not intended for production**, as your code will only exist on the deployment launched, and changes will not be persisted to other deployments you launch within the project. -::: \ No newline at end of file diff --git a/docs/src/content/docs/get-started.mdx b/docs/src/content/docs/get-started.mdx index 3c060d0..5262e89 100644 --- a/docs/src/content/docs/get-started.mdx +++ b/docs/src/content/docs/get-started.mdx @@ -2,6 +2,10 @@ title: Get Started description: How to set up a server with components and add-ons. --- +import QuickStartBuilder from '../../assets/QuickStartBuilder.png' +import QuickLaunchLoading from '../../assets/QuickLaunchLoading.png' +import QuickLaunchHome from '../../assets/QuickLaunchHome.png' +import ImageToPNG from "../../components/ImageToPNG.astro" ## Using Diploi @@ -19,7 +23,31 @@ When you register, you get access to diploi.com/#StackBuilder. +You can try out Diploi without registering, by starting a trial from our homepage, visit diploi.com/#StackBuilder, select the stack you want to test out and click launch. This will start a trial environment where you can try most features that Diploi has to offer in a development deployment. This deployment stays active for 1 hour and can be claimed by registering an account. + +#### Starting a trial from the Homepage + +Quick Launch is the fastest way to get started with Diploi. It allows you to quickly launch a new application online without the need to create a repository or configure anything. You can start a deployment right away from our homepage. + +:::tip +No registration or credit card needed to get started! +::: + + + +In the stack builder, you can can choose the components and add-ons you want to have in your deployment, and that's it! + +You can click "**Launch stack**" and your deployment will be ready in about 30 seconds. + + + +Once the launch is complete, you will be able to connect to the remote server and your deployment will be accessible online with https. + + + +:::note +Quick Launch is intended to quickly try things out. To save your work in a repository you need to sign up. +::: ### Using Diploi for Production diff --git a/docs/src/content/docs/reference/deployments/deployment-lifecycle.mdx b/docs/src/content/docs/reference/deployments/deployment-lifecycle.mdx index 343f908..a6365c3 100644 --- a/docs/src/content/docs/reference/deployments/deployment-lifecycle.mdx +++ b/docs/src/content/docs/reference/deployments/deployment-lifecycle.mdx @@ -82,7 +82,7 @@ In this section you will be able to define the branch that your deployment will :::note -The Repository section is only available for projects that are started with a new repository, while Quick launch projects do not have a way to attach a repository at the moment. +The Repository section is only available for projects that are started with a repository. ::: ### Component and Add-on Settings @@ -166,9 +166,9 @@ In this section you can visualize the status of each component and add-on that d After a deployment is started you can check its status from the Deployments Overview page. Diploi assigns a color to indicate the overall state of the deployment components -* **Green** – the deployment is working correctly -* **Yellow** – there is some issue but the deployment still runs -* **Red** – there is some bigger issue that needs to be addressed +* **Green** - the deployment is working correctly +* **Yellow** - there is some issue but the deployment still runs +* **Red** - there is some bigger issue that needs to be addressed ##### Logs diff --git a/docs/src/content/docs/reference/glossary.mdx b/docs/src/content/docs/reference/glossary.mdx new file mode 100644 index 0000000..3188c7e --- /dev/null +++ b/docs/src/content/docs/reference/glossary.mdx @@ -0,0 +1,445 @@ +--- +title: diploi.yaml Explained +description: A deployment is a full instance of your application. +--- + +This glossary clarifies the common terms you’ll find while reviewing our docs, managing deployments, and operating production services on Diploi. + +[A](#a) · [B](#b) · [C](#c) · [D](#d) · [E](#e) · [F](#f) · [G](#g) · [H](#h) · [I](#i) · [J](#j) · [K](#k) · [L](#l) · [M](#m) · [N](#n) · [O](#o) · [P](#p) · [Q](#q) · [R](#r) · [S](#s) · [T](#t) · [U](#u) · [V](#v) · [W](#w) · [X](#x) · [Y](#y) · [Z](#z) + +## A + +### Add-on +A managed service your application relies on without embedding its code, such as a database, cache, or broker. +_In Diploi:_ Diploi provisions add-ons inside each project's private network and exposes credentials to components through the console. +_See also:_ [/building/add-ons/](/building/add-ons/), [Component](#component) + +### Access Token +A short-lived credential that grants programmatic access to APIs or CLIs without sharing a human password. +_In Diploi:_ Diploi issues access tokens for automation tasks and scopes them to project roles. +_See also:_ [Project](#project), [User Role](#user-role) + +### Astro +A static-first web framework built for content-driven sites with selective hydration. +_In Diploi:_ Diploi offers Astro as a component. +_See also:_ [/building/components/](/building/components/), [Component](#component) + +### Audit Log +A chronological record of operational and security events across your systems. +_In Diploi:_ Diploi records project configuration, deployments, and access events in an immutable audit log for owners and maintainers. +_See also:_ [Project](#project), [Owner Role](#owner-role) + +## B + +### Backup Policy +A set of rules defining how and when data snapshots are retained. +_In Diploi:_ Diploi applies backup policies per add-on service and surfaces restoration points in the console. +_See also:_ [Add-on](#add-on), [Failover Plan](#failover-plan) + +### Base Image +A foundational filesystem layer used to build container images. +_In Diploi:_ Diploi supplies maintained base images for components to ensure consistent runtimes. +_See also:_ [Container Image](#container-image) + +### Build Pipeline +An automated sequence that compiles, tests, and packages your code. +_In Diploi:_ Diploi kicks off build pipelines through GitHub Actions whenever repository launch workflows run. +_See also:_ [CI/CD](#ci-cd), [GitHub Actions](#github-actions) + +### Branch Protection +Repository rules that restrict who can push or merge into specific branches. +_In Diploi:_ Diploi honors existing GitHub branch protection when promoting code through deployment stages. +_See also:_ [Repository Launch](#repository-launch), [Deployment Stage (Development/Staging/Production)](#deployment-stage-developmentstagingproduction) + +## C + +### Component +A deployable code service that forms part of a project’s stack. +_In Diploi:_ Diploi provisions each component as its own workload with independent builds, environments, and endpoints. +_See also:_ [/building/components/](/building/components/), [Stack](#stack) + +### Container Image +An immutable package containing application code, runtime, and dependencies. +_In Diploi:_ Diploi builds container images via GitHub Actions and stores them in the configured image registry. +_See also:_ [Image Registry](#image-registry), [GitHub Actions](#github-actions) + +### CI/CD +Continuous integration and delivery practices that automate testing and deployment. +_In Diploi:_ Diploi wires default CI/CD workflows that run on GitHub Actions and deploy to each stage. +_See also:_ [/reference/deployments/deployment-lifecycle/](/reference/deployments/deployment-lifecycle/), [Deployment Stage (Development/Staging/Production)](#deployment-stage-developmentstagingproduction) + +### CNAME +A DNS record that aliases one domain name to another host. +_In Diploi:_ Custom domains use a CNAME pointing to `edge.diploi.com` for Diploi-managed endpoints. +_See also:_ [/deploying/custom-domain/](/deploying/custom-domain/), [DNS](#dns) + +### Custom Domain +A human-friendly address that you configure to serve your application. +_In Diploi:_ Diploi provisions certificates and routing once you map a custom domain to the deployment’s endpoint. +_See also:_ [CNAME](#cname), [SSL/TLS](#ssltls) + +### Cluster +A coordinated set of compute resources managed by Kubernetes. +_In Diploi:_ Each deployment runs on its own single-node Kubernetes cluster managed by Diploi. +_See also:_ [Kubernetes](#kubernetes), [Single-node Kubernetes Cluster](#single-node-kubernetes-cluster) + +## D + +### Deployment +A released instance of your application that users can access. +_In Diploi:_ A deployment contains every component, add-on, and environment for a project stage. +_See also:_ [/reference/deployments/deployment-lifecycle/](/reference/deployments/deployment-lifecycle/), [Status Tree](#status-tree) + +### Deployment Stage (Development/Staging/Production) +A lifecycle progression that separates code promotion into Development, Staging, and Production environments. +_In Diploi:_ Diploi links stages to GitHub branches and requires explicit approvals before promoting to Production. +_See also:_ [Deployment](#deployment), [Repository Launch](#repository-launch) + +### `diploi.yaml` +A declarative manifest that defines project components, add-ons, environments, and automation. +_In Diploi:_ `diploi.yaml` drives provisioning, stack composition, and env import rules for every deployment. +_See also:_ [/reference/diploi-yaml/](/reference/diploi-yaml/), [Stack](#stack) + +### DNS +The system that translates domain names into IP addresses. +_In Diploi:_ Diploi manages DNS targets for default endpoints and guides CNAME configuration for custom domains. +_See also:_ [CNAME](#cname), [Endpoint](#endpoint) + +### Drift Detection +The process of spotting differences between declared infrastructure and the actual runtime state. +_In Diploi:_ Diploi surfaces drift through the status tree so you can reconcile deployments quickly. +_See also:_ [Status Tree](#status-tree), [Deployment](#deployment) + +## E + +### Endpoint +A network-accessible URL or socket where a service listens for requests. +_In Diploi:_ Diploi assigns endpoints per component and stage, with optional custom domains. +_See also:_ [Deployment Stage (Development/Staging/Production)](#deployment-stage-developmentstagingproduction), [Custom Domain](#custom-domain) + +### Environment Variable Import +A configuration pattern that pulls environment values from an external source into your application. +_In Diploi:_ Use the `env import` keys in `diploi.yaml` to copy secrets or configs across components with wildcard support. +_See also:_ [/reference/diploi-yaml/](/reference/diploi-yaml/), [Secrets Manager](#secrets-manager) + +### Error Budget +The acceptable amount of downtime or failures within a service-level objective. +_In Diploi:_ Diploi reports deployment status and alerts when errors consume your budget faster than expected. +_See also:_ [Metric](#metric), [Status Tree](#status-tree) + +## F + +### Feature Flag +A runtime switch that toggles features on or off without redeploying. +_In Diploi:_ Define feature flags through stage-specific environment variables or config sections in `diploi.yaml`. +_See also:_ [Environment Variable Import](#environment-variable-import), [Deployment Stage (Development/Staging/Production)](#deployment-stage-developmentstagingproduction) + +### Failover Plan +A documented strategy for restoring service after infrastructure failure. +_In Diploi:_ Diploi encourages teams to script failover steps because single-node clusters do not provide automatic redundancy. +_See also:_ [Single-node Kubernetes Cluster](#single-node-kubernetes-cluster), [Zero Downtime](#zero-downtime) + +### Front-end Component +A component dedicated to serving web assets or UI logic. +_In Diploi:_ Front-end components supported include frameworks like Astro, React and SvelteKit. +_See also:_ [Component](#component) + +## G + +### GitHub Actions +GitHub’s automation platform for running workflows triggered by repository events. +_In Diploi:_ Diploi seeds GitHub Actions workflows for builds, tests, and deployments across stages. +_See also:_ [CI/CD](#ci-cd), [Repository Launch](#repository-launch) + +### Git Repository +A version-controlled store containing your project's source history. +_In Diploi:_ Each project links to a Git repository that triggers builds and deployments on push. +_See also:_ [Project](#project), [GitHub Actions](#github-actions) + +### Global Configuration +Shared settings applied across multiple components or environments. +_In Diploi:_ Global configuration lives in `diploi.yaml` and merges into every stage unless overridden. +_See also:_ [/reference/diploi-yaml/](/reference/diploi-yaml/), [Stack](#stack) + +## H + +### Helm Chart +A templated bundle of Kubernetes manifests used to install applications. +_In Diploi:_ Diploi installs workloads through Helm charts to codify each deployment's desired state. +_See also:_ [/reference/technical-deep-dive/](/reference/technical-deep-dive/), [Kubernetes](#kubernetes) + +### Health Check +A probe that tests whether a service instance is ready or alive. +_In Diploi:_ Configure health checks per component so Diploi can restart pods and report status accurately. +_See also:_ [Component](#component), [Status Tree](#status-tree) + +### High Availability +An architecture that tolerates failures without noticeable downtime. +_In Diploi:_ Diploi's default single-node cluster means high availability requires external redundancy strategies. +_See also:_ [Single-node Kubernetes Cluster](#single-node-kubernetes-cluster), [Failover Plan](#failover-plan) + +## I + +### Identifier +A unique, stable value used to reference a resource or configuration entry. +_In Diploi:_ Identifiers in `diploi.yaml` name components, add-ons, and environments for automation. +_See also:_ [Stack](#stack), [/reference/diploi-yaml/](/reference/diploi-yaml/) + +### Image Registry +A service that stores and distributes container images. +_In Diploi:_ Diploi pushes build artifacts to the project's configured image registry before deploying. +_See also:_ [Container Image](#container-image), [CI/CD](#ci-cd) + +### Infrastructure Secret +Sensitive credentials required to provision or connect infrastructure. +_In Diploi:_ Store infrastructure secrets via environment imports so Diploi can inject them at deploy time. +_See also:_ [Environment Variable Import](#environment-variable-import), [Secrets Manager](#secrets-manager) + +## J + +### Job Runner +A worker process designed for asynchronous or scheduled tasks. +_In Diploi:_ Create background job runners as separate components with tailored scaling and schedules. +_See also:_ [Component](#component), [Stack](#stack) + +### JSON Schema +A specification describing the structure and validation rules for JSON documents. +_In Diploi:_ Diploi validates `diploi.yaml` against its JSON schema to prevent misconfiguration. +_See also:_ [diploi.yaml](#diploiyaml), [/reference/diploi-yaml/](/reference/diploi-yaml/) + +## K + +### Kubernetes +An orchestration platform for deploying and managing containerized workloads. +_In Diploi:_ Diploi provisions dedicated Kubernetes clusters per deployment and manages them on your behalf. +_See also:_ [/reference/technical-deep-dive/](/reference/technical-deep-dive/), [Helm Chart](#helm-chart) + +### Kubeconfig +A configuration file that stores cluster access credentials and contexts. +_In Diploi:_ Diploi provides read-only kubeconfig downloads for advanced debugging when enabled. +_See also:_ [Kubernetes](#kubernetes), [User Role](#user-role) + +### Key Rotation +Regularly replacing secrets or cryptographic keys to reduce compromise risk. +_In Diploi:_ Rotate keys by updating source secrets and re-running environment variable imports. +_See also:_ [Infrastructure Secret](#infrastructure-secret), [Environment Variable Import](#environment-variable-import) + +## L + +### Load Balancer +A network component that distributes traffic across service instances. +_In Diploi:_ Diploi's managed ingress layer load balances requests across pods within the deployment cluster. +_See also:_ [Endpoint](#endpoint), [Kubernetes](#kubernetes) + +### Log Stream +A continuous feed of application or system logs. +_In Diploi:_ Access log streams per component from the Diploi console or CLI for debugging. +_See also:_ [Component](#component), [Remote Development](#remote-development) + +### Lifecycle Hook +A script or automation triggered at a specific phase in the deployment lifecycle. +_In Diploi:_ Customize lifecycle hooks via GitHub Actions workflows to run migrations or smoke tests. +_See also:_ [GitHub Actions](#github-actions), [Deployment Stage (Development/Staging/Production)](#deployment-stage-developmentstagingproduction) + +## M + +### Monorepo +A repository that stores multiple services or libraries in a single codebase. +_In Diploi:_ Diploi scaffolds projects as monorepos so components share tooling while deploying independently. +_See also:_ [Project](#project), [Component](#component) + +### Managed Service +An infrastructure capability operated by a provider instead of your team. +_In Diploi:_ Diploi-managed services include cluster provisioning, certificates, and add-on lifecycle. +_See also:_ [Add-on](#add-on), [Single-node Kubernetes Cluster](#single-node-kubernetes-cluster) + +### Metric +A measurable value that helps observe system performance. +_In Diploi:_ Diploi surfaces CPU, memory, and deployment metrics alongside status tree signals. +_See also:_ [Status Tree](#status-tree), [Observability Stack](#observability-stack) + +## N + +### Namespace +A Kubernetes partition that scopes resources within a cluster. +_In Diploi:_ Each project deployment lives in its own namespace to isolate workloads and add-ons. +_See also:_ [Kubernetes](#kubernetes), [Project](#project) + +### Network Policy +Rules that control how pods communicate within a cluster. +_In Diploi:_ Diploi applies restrictive network policies so only authorized components reach add-ons. +_See also:_ [Add-on](#add-on), [Component](#component) + +### Node +A compute instance that runs Kubernetes pods. +_In Diploi:_ Every deployment node runs all workloads because Diploi operates single-node clusters. +_See also:_ [Single-node Kubernetes Cluster](#single-node-kubernetes-cluster), [Kubernetes](#kubernetes) + +## O + +### Observability Stack +The tooling used to collect logs, metrics, and traces. +_In Diploi:_ Diploi integrates with third-party observability stacks via add-ons and environment variables. +_See also:_ [Metric](#metric), [Add-on](#add-on) + +### Owner Role +A permission level with full administrative control over a project. +_In Diploi:_ Owners can manage billing, repositories, deployments, and access within the Diploi console. +_See also:_ [Project](#project), [User Role](#user-role) + +## P + +### Package (Component Package URL) +A reference to a component’s template package hosted at a URL. +_In Diploi:_ Set the `package` key in `diploi.yaml` to pull scaffolding from the Diploi package registry. +_See also:_ [/reference/diploi-yaml/](/reference/diploi-yaml/), [Component](#component) + +### Parent Domain +The apex domain under which subdomains are delegated. +_In Diploi:_ Configure the parent domain before attaching custom domains so Diploi can validate DNS ownership. +_See also:_ [Custom Domain](#custom-domain), [DNS](#dns) + +### Project +The top-level grouping of components, add-ons, and environments for an application. +_In Diploi:_ A project governs repositories, deployments, permissions, and billing across all stages. +_See also:_ [/reference/projects/project-lifecycle/](/reference/projects/project-lifecycle/), [Stack](#stack) + +### Pod +The smallest deployable unit in Kubernetes containing one or more containers. +_In Diploi:_ Diploi schedules each component as pods managed by Helm releases inside the deployment cluster. +_See also:_ [Kubernetes](#kubernetes), [Helm Chart](#helm-chart) + +## Q + +### Queue Worker +A service dedicated to processing asynchronous tasks from a queue. +_In Diploi:_ Model queue workers as standalone components so they scale independently from web workloads. +_See also:_ [Component](#component), [Job Runner](#job-runner) + +## R + +### Remote Development +Developing against cloud-hosted environments instead of a full local setup. +_In Diploi:_ Diploi exposes staging endpoints and synced environments to support remote development workflows. +_See also:_ [Deployment Stage (Development/Staging/Production)](#deployment-stage-developmentstagingproduction), [Endpoint](#endpoint) + +### Repository Launch +The process of connecting a repository and enabling automated deployments for it. +_In Diploi:_ Repository launch configures GitHub Actions, secrets, and stage mappings for the project. +_See also:_ [Project](#project), [CI/CD](#ci-cd) + +### Resource Quota +Limits that cap CPU, memory, or storage usage for workloads. +_In Diploi:_ Diploi enforces resource quotas per component to keep single-node clusters healthy. +_See also:_ [Component](#component), [Single-node Kubernetes Cluster](#single-node-kubernetes-cluster) + +### Rollback +Restoring a system to a previous known-good state. +_In Diploi:_ Diploi can redeploy prior container images via Helm to roll back failed releases. +_See also:_ [Container Image](#container-image), [Deployment](#deployment) + +## S + +### Stack +A set of components and add-ons that are part of a project. +_In Diploi:_ users select the components and add-ons, which generates a `diploi.yaml` file to define how an application is built. +_See also:_ [Project](#project), [Component](#component) + +### Secrets Manager +A system for securely storing and distributing sensitive values. +_In Diploi:_ Diploi syncs secrets from external managers through environment variable imports. +_See also:_ [Environment Variable Import](#environment-variable-import), [Infrastructure Secret](#infrastructure-secret) + +### Service Account +A machine identity used by services to authenticate with APIs. +_In Diploi:_ Create service accounts as secrets and map them into components via `diploi.yaml`. +_See also:_ [Environment Variable Import](#environment-variable-import), [Identifier](#identifier) + +### Single-node Kubernetes Cluster +A Kubernetes environment where control plane and workloads run on one node. +_In Diploi:_ Every deployment operates on its own single-node Kubernetes cluster maintained by Diploi. +_See also:_ [Cluster](#cluster), [/reference/technical-deep-dive/](/reference/technical-deep-dive/) + +### SSL/TLS +Protocols that encrypt data in transit between clients and servers. +_In Diploi:_ Diploi issues and renews SSL/TLS certificates for default and custom endpoints. +_See also:_ [Custom Domain](#custom-domain), [Endpoint](#endpoint) + +### Status Tree +A hierarchical view that summarizes the health of related resources. +_In Diploi:_ Diploi's status tree traces from deployment down to pods to highlight failures. +_See also:_ [Deployment](#deployment), [Metric](#metric) + +## T + +### Template Project +A preconfigured project layout that accelerates new application setups. +_In Diploi:_ Template projects underpin quick launch flows and mirror best-practice stacks. +_See also:_ [Package (Component Package URL)](#package-component-package-url) + +### Test Pipeline +Automated checks that validate code before deployment. +_In Diploi:_ Diploi includes stage-specific test pipelines inside the generated GitHub Actions workflows. +_See also:_ [Build Pipeline](#build-pipeline), [CI/CD](#ci-cd) + +## U + +### Upgrade Window +A scheduled period reserved for applying updates. +_In Diploi:_ Plan upgrades within maintenance windows to restart single-node clusters with minimal impact. +_See also:_ [Failover Plan](#failover-plan), [Zero Downtime](#zero-downtime) + +### User Role +A permission level that defines what actions a user can perform. +_In Diploi:_ User roles such as Owner, Maintainer, and Viewer control access to projects and deployments. +_See also:_ [Owner Role](#owner-role), [Project](#project) + +## V + +### Version Pinning +Locking dependencies or images to specific versions. +_In Diploi:_ Pin versions in `diploi.yaml` so rebuilds use consistent component packages and base images. +_See also:_ [Package (Component Package URL)](#package-component-package-url), [Base Image](#base-image) + +### Volume +Persistent or shared storage mounted into containers. +_In Diploi:_ Diploi provisions volumes through Helm values to persist add-on data or component state. +_See also:_ [Helm Chart](#helm-chart), [Component](#component) + +## W + +### Workspace +The collaborative area where teams plan, build, and deploy applications. +_In Diploi:_ A workspace groups multiple projects and members under one organizational umbrella. +_See also:_ [Project](#project), [User Role](#user-role) + +### Webhook +An HTTP callback triggered by events to notify external systems. +_In Diploi:_ Configure GitHub or third-party webhooks to react to deployment lifecycle events. +_See also:_ [Repository Launch](#repository-launch), [Deployment](#deployment) + +## X + +### X-Forwarded-For Header +A proxy header that preserves the original client IP address. +_In Diploi:_ Diploi's edge layer sets `X-Forwarded-For` so applications can log user IPs correctly. +_See also:_ [Endpoint](#endpoint), [Load Balancer](#load-balancer) + +## Y + +### YAML Key +A field name within a YAML document. +_In Diploi:_ Use descriptive YAML keys in `diploi.yaml` so automation scripts remain readable. +_See also:_ [diploi.yaml](#diploiyaml), [Identifier](#identifier) + +### YAML Schema +Rules that describe the allowed structure of YAML files. +_In Diploi:_ Diploi validates configuration updates against its YAML schema before applying changes. +_See also:_ [JSON Schema](#json-schema), [/reference/diploi-yaml/](/reference/diploi-yaml/) + +## Z + +### Zero Downtime +Deployments that avoid noticeable service interruption. +_In Diploi:_ Diploi sequences Helm upgrades to minimize restarts, but single-node clusters may incur brief pauses. +_See also:_ [Helm Chart](#helm-chart), [Failover Plan](#failover-plan) diff --git a/docs/src/content/docs/reference/projects/project-lifecycle.mdx b/docs/src/content/docs/reference/projects/project-lifecycle.mdx index e7a44c7..0388672 100644 --- a/docs/src/content/docs/reference/projects/project-lifecycle.mdx +++ b/docs/src/content/docs/reference/projects/project-lifecycle.mdx @@ -19,7 +19,7 @@ import AddonList from "../../../../components/AddonList.astro" This is the first step to deploy a new application using Diploi. To create a project you must: 1. Select the stack of components and add-ons that your application will be using -2. Choose between creating a new repository to store your application's code or quick launching without a repository associated for testing purposes +2. Choose between creating a new repository to store your application's code or launching without a repository associated for testing purposes Every project is started from the set of components and add-ons you choose and this defines the structure of your project. @@ -52,14 +52,14 @@ From the preview, you can rename the folders that contain your components and th ::: -### Choosing Between Creating a Project with Repository or a Quick Launch +### Choosing Between Creating a Project with or without a Repository -A **Repository Launch** is the easiest way to set up a project is to let Diploi bootstrap a new GitHub repository for you. This will ensure that the repository contains the right files to make the project run. +A **Project with a repository** is the default way to set up a project, Diploi bootstraps a new GitHub repository for you and generates a scaffold for your app based on the Stack you choose. additionally Diploi creates a CI/CD pipeline so changes can be persisted across multiple environments and allows your project to be launch in Staging and Production. -A **Quick launck** is the fatest way to launch a VM in seconds and it can be used when you need to run a simple script online or just want to test drive Diploi. With a Quick Launch, you create an project without a repository attached to it. +A **Project without a repository** used when you want to test a Stack or you want to run a simple scripts and apps online without a repository. :::caution -Once you choose between using a new repository or quick launching without a repository, you will not be able to change the repository or add a repository. +Once you choose between using a new repository or launching without a repository, you will not be able to change the repository or add a repository. ::: :::note diff --git a/docs/src/content/docs/reference/projects/project.mdx b/docs/src/content/docs/reference/projects/project.mdx index 08d2e9f..8f99989 100644 --- a/docs/src/content/docs/reference/projects/project.mdx +++ b/docs/src/content/docs/reference/projects/project.mdx @@ -6,10 +6,7 @@ description: A project contains the deployments of your application. import ImageToPNG from "../../../../components/ImageToPNG.astro" import CreateDeploymentRepository from '../../../../assets/CreateDeploymentRepository.png' import ContactInfo from "../../../../components/ContactInfo.mdx" -import QuickStartBuilder from '../../../../assets/QuickStartBuilder.png' -import QuickLaunchLoading from '../../../../assets/QuickLaunchLoading.png' -import QuickLaunchHome from '../../../../assets/QuickLaunchHome.png' -import CreateProjectRepo from '../../../../assets/CreateProjectRepo.png' +import CreateProjectWithoutRepo from '../../../../assets/CreateProjectWithoutRepo.png' ## What is a Diploi Project? @@ -33,40 +30,22 @@ By default, when you create a new project, a development deployment will be star If you want to create a new project with a repository, you can do so by following the steps in our [Creating a Project](/deploying/creating-a-project) guide. ::: -### Quick Launch +### Project Without a Repository -With a Quick Launch project, you get a ready-to-use development deployment that you can use to test new technologies, frameworks, or just to try out Diploi without the need to create a repository. +When starting a project without a repository, you get a development environment that you can use to test new technologies, simple scripts, cron jobs, or just to try out Diploi without the need to create a repository. -You can create a Quick Launch project by choosing the "**Quick Launch**" repository option when creating a new project or from the homepage. - -#### Quick Launch from the Homepage - -Quick Launch is the fastest way to get started with Diploi. It allows you to quickly launch a new application online without the need to create a repository or configure anything. You can start a deployment right away from our homepage. - -:::tip -No registration or credit card needed to get started! +:::caution +When you start a project a without a repository, **you cannot add a repository later**. Which is why we do not recommend it for projects meant for production. ::: - - -In the stack builder, you can can choose the components and add-ons you want to have in your deployment, and that's it! - -You can click "**Launch stack**" and your deployment will be ready in about 30 seconds. - - - -Once the launch is complete, you will be able to connect to the remote server and your deployment will be accessible online with https. - - - -:::note -Quick Launch is intended to quickly try things out. To save your work in a repository you need to sign up. +:::caution +**Projects without a repository** are **not intended for production**, as your code will only exist on the deployment launched, and changes will not be persisted to other deployments you launch within the project. ::: -#### Quick Launch from Project Creation +You can create a project without a repository by clicking on the "**Launch Without a Repository**" option inside the "GitHub Repository" section, when creating a new project. -You can also create a Quick Launch project from the project creation page, all you need to do is choose the "**Quick Launch**" option from the repository options when creating a new project. + - +*** \ No newline at end of file