### Run Project Setup and Start Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NodeJS.md Executes the setup script defined in kool.yml to install dependencies and starts the Node.js application container. ```bash $ kool run setup $ kool start ``` -------------------------------- ### Run Project Setup Script Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/ExpressJS.md Execute the `setup` script defined in `kool.yml` to install dependencies and start your Docker environment. ```bash $ kool run setup ``` -------------------------------- ### Run Setup Command Source: https://github.com/kool-dev/kool/blob/main/docs/20-Troubleshooting/mysql-perm-error.md Execute the setup command after starting your services to initialize or re-initialize your application's environment, including database connections. ```shell kool run setup ``` -------------------------------- ### Run Project Setup Script Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Laravel+Octane.md Execute the `kool run setup` command to copy the `.env.example` to `.env`, start Docker services, install dependencies, generate the app key, and build assets. This script resets your `.env` file. ```bash # CAUTION: this script will reset your ".env" file with ".env.example" $ kool run setup ``` -------------------------------- ### kool cloud setup Help Options Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-cloud-setup.md View the help information for the 'setup' command, listing its specific options. ```bash -h, --help help for setup ``` -------------------------------- ### Run Quickstart Script Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Hugo.md Executes the 'quickstart' script defined in kool.yml to initialize a Hugo site. ```bash $ kool run quickstart ``` -------------------------------- ### Run NestJS Setup Command Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NestJS.md Execute the 'setup' script defined in kool.yml to install dependencies and prepare your NestJS project. This command spins up a temporary Node container for installation. ```bash $ kool run setup $ kool start ``` -------------------------------- ### Kool.yml Scripts Configuration Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/PHP.md An example of the `kool.yml` file, which defines custom scripts. The `setup` script includes multiple commands to be executed sequentially, starting with `kool start`. ```yaml scripts: composer: kool exec app composer php: kool exec app php setup: - kool start # - add more setup commands ``` -------------------------------- ### Kool.yml Configuration for Scripts Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NextJS.md Defines scripts for managing Node.js packages and project setup. The 'setup' script installs dependencies and starts the Docker environment. ```yaml scripts: npm: kool exec app npm # or yarn npx: kool exec app npx setup: - kool docker kooldev/node:20 npm install # or yarn install - kool start ``` -------------------------------- ### Symfony Project Setup Wizard Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Symfony.md An interactive wizard that guides the user through selecting services for a Symfony project, including PHP version, database, cache, and JavaScript package manager. ```bash $ Preset symfony is initializing! ? Which app service do you want to use [Use arrows to move, type to filter] > PHP 7.4 PHP 8.0 ? Which database service do you want to use [Use arrows to move, type to filter] > MySQL 8.0 MySQL 5.7 MariaDB 10.5 PostgreSQL 13.0 none ? Which cache service do you want to use [Use arrows to move, type to filter] > Redis 6.0 Memcached 1.6 none ? Which javascript package manager do you want to use [Use arrows to move, type to filter] > npm yarn $ Preset symfony initialized! ``` -------------------------------- ### Optimized docker-compose.yml Example Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/4-Starting-new-project.md This `docker-compose.yml` provides a Kool-optimized setup for your project's services. It includes an `app` service with a predefined image and network configurations, allowing for easy extension with additional services like databases or caches. ```yaml version: "3.8" # optional since v1.27.0 services: app: image: kooldev/php:8.0-nginx ports: - ${KOOL_APP_PORT:-80}:80 environment: ASUSER: ${KOOL_ASUSER:-0} UID: ${UID:-0} volumes: - .:/app:delegated networks: - kool_local - kool_global networks: kool_local: null kool_global: external: true name: ${KOOL_GLOBAL_NETWORK:-kool_global} ``` -------------------------------- ### Install Kool CLI Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/2-Installation.md Installs the latest Kool CLI binary by downloading and executing a script. Ensure Docker is installed and running. ```bash curl -fsSL https://kool.dev/install | bash ``` -------------------------------- ### Node.js Preset Initialization Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NodeJS.md Example output showing the interactive wizard for the Node.js preset, allowing selection of package managers. ```bash $ Preset nodejs is initializing! ? Which Javascript package manager do you want to use [Use arrows to move, type to filter] > npm yarn None ... ... Preset nodejs created successfully! ``` -------------------------------- ### Full kool.cloud.yml Example Source: https://github.com/kool-dev/kool/blob/main/docs/02-Kool-Cloud/20-kool.cloud.yml-Reference.md This example demonstrates all available features and configuration entries within a kool.cloud.yml file, including build, public access, exposed ports, persistent storage, deployment strategies, daemons, hooks, and cron jobs. ```yaml services: app: # Applications usually will require a special image built for deployment. # Reference: https://docs.docker.com/compose/compose-file/compose-file-v3/#build build: . # Tells Kool.dev Cloud that this service is accessible through the deployment URL. # Note: only one service can be set to be public. public: true # simply defining true is enough to most cases where your `expose` port will be used for routing incoming HTTP requests. # Another option is advanced definition: public: # Tells the port that should be used for routing incoming HTTP traffic. - port: 80 # Sometimes you may have a second process you want to access as well, i.e. some # websocket service that you spin up via a 'daemon' and listens on another port. # You may do so by specifying a second port with a path - so all requests starting # with such path prefix will be routed to that port instead of the default port above. - port: 3000 path: /ws # Tells what port the app will listen to (optional). expose: 80 # Tells your app's root folder so all other paths can be relative (optional). root: /app # Containers are ephemeral, that means their filesystem do not persist across deployments. # If you want to persist stuff into the disk across deployments, you can do so by defining persistent paths here. persists: # Total size of the volume you want to attach to the running container. size: 1Gi # Paths to persist - within that single volume, you can have one or more paths # that are going to be mounted every time your containers are running. Note that # such mounts include before/after hooks as well as daemon containers. paths: # The path within the container. Must be either aboslute or relative to the 'root' config. - path: /app/some/path/persisted # Tells the Deploy API to sync the folder from your built image to the persisted storage. # This is very helpful to start off with a known folder structure. sync: true # Tells what user and group should own the persisted folder (only used along the sync: true) chown: user:group # By default, Kool.dev Cloud will rollout new deployments in a blue-green fashion. # If you want to disable it and make sure the current running container # is stopped before the new one is created, set 'recreate: true'. recreate: false # Sometimes you may make changes to your app that wouldn't necessarily trigger # new containers to be created by the kool cloud deploy process. # # For example, if you change only environment variables or use a fixed image tag # like ':latest' that doesn't change. # # By setting `force: true`, you tell the API to always update this service. force: false # Here we can define processes that behave like services and must be run in the cloud only. # Usually, this is very helpful for queue workers and that kind of stuff. The processes will # run as other containers in your deployment using the very same image as the main service. daemons: - command: [ start-queues, arg1, arg2 ] # As mentioned above in the 'public' config, you may also want to have a daemon # that serves specific requests. A common use case is WebSocket services. You can # define that your daemon exposes a TCP port with the 'expose' entry. - command: [ run-websocker-server, --port=3000 ] expose: 3000 # Hooks # # It's possible that you want to run some extra steps either before or after every # time your application is deployed. Such hooks are executed in standalone containers # using the same Docker image about to be deployed. # # The 'before' hook is a special section where we can define commands to be executed # right before a new deployment happens. # ATTENTION: this hook can only be used after a first successful deploy happened to # create the environment in the first place. If used on first deploy, will halt the deploy. # This limitation should be lifted hopefully soon. before: - script_to_run.sh # The 'after' hook is a special section where we can define procedures to be executed # right after a new deployment finishes. after: - [ run-database-migrations, arg1, arg2 ] # The 'cron' config allows you to set scheduled actions to run in a Cron job fashion. cron: - { schedule: "* * * * *", command: [ run-some-task-every-minute ] } # Environment Variables to the cloud container # # You usually will want to provide a file containing the environment variables # that your deployment should have. Such a file may contain special Kool variables ``` -------------------------------- ### Run kool cloud setup Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-cloud-setup.md Execute the base command to set up local configuration files for Kool.dev Cloud deployment. ```bash kool cloud setup ``` -------------------------------- ### Start Application Services Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/4-Starting-new-project.md Starts the service container(s) defined in your docker-compose.yml file. This command makes your application accessible, typically at http://localhost. ```bash $ kool start ``` -------------------------------- ### Kool.yml Configuration Example Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NodeJS.md Shows the default structure of the kool.yml file generated by the Node.js preset, including scripts for npm, npx, setup, and reset. ```yaml scripts: node: kool exec app node # npm - helpers for JS handling npm: kool docker kooldev/node:20 npm npx: kool docker kooldev/node:20 npx setup: - kool run npm install reset: - kool run npm install ``` -------------------------------- ### PHP Preset Initialization Wizard Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/PHP.md This is an example of the interactive wizard that appears after running `kool create php`. It prompts for choices regarding PHP and Composer versions. ```bash $ Preset php is initializing! ? Which app service do you want to use [Use arrows to move, type to filter] > PHP 7.4 PHP 8.0 ? Which composer version do you want to use [Use arrows to move, type to filter] > 1.x 2.x $ Preset php initialized! ``` -------------------------------- ### Create Next.js Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NextJS.md Initializes a new Next.js project named 'my-project' using the Next.js preset. This command installs Next.js and sets up initial project files. ```bash $ kool create nextjs my-project ``` -------------------------------- ### Next.js Preset Initialization Prompt Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NextJS.md Example of the interactive prompt during Next.js preset initialization, allowing selection of a JavaScript package manager. ```bash $ Preset nextjs is initializing! ? Which javascript package manager do you want to use [Use arrows to move, type to filter] > npm yarn $ Preset nextjs initialized! ``` -------------------------------- ### Connect to Database Container Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/CodeIgniter.md Starts an SQL client session within the 'database' container using predefined scripts in kool.yml for MySQL or PostgreSQL. ```bash kool run mysql # For MySQL kool run psql # For PostgreSQL ``` -------------------------------- ### Stop Current Project and Start Another Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/3-How-it-works.md Use this command sequence to stop the current local Docker environment, navigate to another project directory, and start its environment. ```bash kool stop cd ~/my-other-project kool start ``` -------------------------------- ### Start Service Containers with a Specific Profile Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-start.md Starts service containers using a specific profile defined in your docker-compose configuration. This allows for environment-specific setups. ```bash kool start --profile ``` -------------------------------- ### Kool.yml Configuration for Scripts Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/ExpressJS.md The `kool.yml` file defines scripts for managing your project, such as installing dependencies and starting the server. ```yaml scripts: node: kool exec app node npm: kool exec app npm # or yarn npx: kool exec app npx setup: - kool docker kooldev/node:20 npm install - kool start # - add more setup commands ``` -------------------------------- ### Start All Service Containers Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-start.md Starts all service containers defined in the docker-compose.yml file. If containers are already running, they will be recreated. ```bash kool start ``` -------------------------------- ### Basic Docker Compose Configuration Source: https://github.com/kool-dev/kool/blob/main/docs/02-Kool-Cloud/20-kool.cloud.yml-Reference.md Example of a simple docker-compose.yml file defining a service with an image and port mapping. ```yaml services: app: image: some/image ports: - 80:80 # maps the container port 80 to your localhost ``` -------------------------------- ### Interactive Preset Wizard for Laravel Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Laravel.md After creating the project, a wizard guides you through selecting services like PHP version, database, cache, and JavaScript package manager. ```bash $ Preset laravel is initializing! ? Which app service do you want to use [Use arrows to move, type to filter] > PHP 7.4 PHP 8.0 ? Which database service do you want to use [Use arrows to move, type to filter] > MySQL 8.0 MySQL 5.7 MariaDB 10.5 PostgreSQL 13.0 none ? Which cache service do you want to use [Use arrows to move, type to filter] > Redis 6.0 Memcached 1.6 none ? Which javascript package manager do you want to use [Use arrows to move, type to filter] > npm yarn $ Preset laravel initialized! ``` -------------------------------- ### Start Specific Service Containers Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-start.md Starts one or more specified service containers. If the containers are already running, they are recreated. ```bash kool start [SERVICE...] ``` -------------------------------- ### NestJS Preset Initialization Wizard Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NestJS.md An example of the interactive wizard that appears when initializing the NestJS preset. It prompts for database and cache service choices. ```bash $ Preset nestjs is initializing! ? Which database service do you want to use [Use arrows to move, type to filter] > MySQL 8.0 MySQL 5.7 PostgreSQL 13.0 none ? Which cache service do you want to use [Use arrows to move, type to filter] > Redis 6.0 Memcached 1.6 none $ Preset nestjs initialized! ``` -------------------------------- ### Connect to Database Container Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Laravel.md Starts a new SQL client session inside the running database container. Supports MySQL and PostgreSQL. ```bash kool run mysql kool run psql ``` -------------------------------- ### GitHub Actions: Install Kool Natively Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/5-CI-Integration.md For GitHub Actions runners with Docker available, this snippet shows how to install Kool directly using a curl command. ```yaml jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install kool run: curl -fsSL https://kool.dev/install | bash - run: kool run test ``` -------------------------------- ### Create NestJS Project with Kool Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NestJS.md Initializes a new NestJS project named 'my-project' using the NestJS preset. This command automates the setup of NestJS and Docker configurations. ```bash $ kool create nestjs my-project ``` -------------------------------- ### Connect to Docker Database Container Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Laravel+Octane.md Starts an SQL client session inside a running database container using predefined scripts in kool.yml. ```bash # Example for MySQL $ kool run mysql # Example for PostgreSQL $ kool run psql ``` -------------------------------- ### Synopsis of Kool Cloud Help Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-cloud-help.md This is the basic syntax for using the 'kool cloud help' command to get assistance on a specific command. ```bash kool cloud help [command] [flags] ``` -------------------------------- ### Verify Kool Installation Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/2-Installation.md Checks if the Kool CLI is installed correctly by displaying available commands. ```bash kool ``` -------------------------------- ### Start Service Containers with Increased Verbosity Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-start.md Starts service containers and increases the output verbosity, providing more detailed logs and information about the process. Useful for debugging. ```bash kool start --verbose ``` -------------------------------- ### Start Service Containers from a Different Working Directory Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-start.md Changes the working directory for the 'kool start' command. This is useful if your docker-compose.yml is not located in the root of your project. ```bash kool start -w /path/to/your/project ``` -------------------------------- ### Start Containers in Foreground Mode Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-start.md Starts service containers in foreground mode, keeping them running in the current terminal session. Use this when you need to see the logs directly. ```bash kool start -f ``` -------------------------------- ### Run kool share Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-share.md Execute the basic 'kool share' command to start sharing your local environment. By default, it shares the 'app' service on port 80. ```bash kool share ``` -------------------------------- ### View Docker Container Logs Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NextJS.md Displays the logs from the 'app' Docker container, useful for confirming the Next.js server has started. ```bash $ kool logs app Attaching to my-project_app_1 app_1 | app_1 | > my-project@0.1.0 dev /app app_1 | > next dev app_1 | app_1 | ready - started server on 0.0.0.0:3000, url: http://localhost:3000 ``` -------------------------------- ### Using Pre-built Image from a Private Registry Source: https://github.com/kool-dev/kool/blob/main/docs/02-Kool-Cloud/03-Building-Images-to-Deploy.md Specifies an image directly from a private registry, requiring manual credential setup with Kool.dev Cloud. ```yaml services: app: # ... image: myrepo-registry/my-built-image ``` -------------------------------- ### Kool Preset Command Usage Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-preset.md This snippet shows the basic syntax for the 'kool preset' command. Use it to install configuration files for a specific preset or run the interactive wizard. ```bash kool preset [PRESET] ``` -------------------------------- ### Get Help for the 'run' Command Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-run.md To view detailed help information for the 'kool run' command, use the -h or --help flag. ```bash kool run -h ``` -------------------------------- ### Kool.yml Configuration for Laravel Preset Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/3-How-it-works.md This example shows a typical kool.yml file for a Laravel project, defining various scripts for common development tasks. It includes single-line commands and multi-line setup/reset scripts. ```yaml # ./kool.yml for the Laravel preset scripts: artisan: kool exec app php artisan composer: kool exec app composer mysql: kool exec -e MYSQL_PWD=$DB_PASSWORD database mysql -uroot node: kool docker kooldev/node:20 node npm: kool docker kooldev/node:20 npm # or yarn npx: kool exec app npx setup: - kool run before-start - kool start - kool run composer install - kool run artisan key:generate reset: - kool run composer install - kool run artisan migrate:fresh --seed - kool run yarn install before-start: - cp .env.example .env - kool run yarn install ``` -------------------------------- ### Example kool.yml Configuration Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/4-Starting-new-project.md Define custom scripts for your project in `kool.yml`. Single-line commands can be directly assigned, while multi-line scripts can be defined as a list of commands to be executed sequentially. ```yaml scripts: composer: kool exec app composer2 node: kool docker kooldev/node:20 node yarn: kool docker kooldev/node:20 yarn setup: - cp .env.example .env - kool start - kool run composer install - kool run yarn install ``` -------------------------------- ### GitLab CI Example with Kool Docker Image Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/5-CI-Integration.md Use this snippet in GitLab CI to run Kool commands within the kooldev/kool Docker image, leveraging a Docker-in-Docker service. ```yaml test: image: kooldev/kool:3 services: - name: docker:dind alias: docker variables: DOCKER_TLS_CERTDIR: "" DOCKER_HOST: tcp://docker:2375 script: - kool run test ``` -------------------------------- ### Create Node.js Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NodeJS.md Initializes a new Node.js project with a default 'Hello world!' app.js file using the Node.js preset. ```bash $ kool create nodejs my-project ``` -------------------------------- ### Navigate to Project Directory Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/CodeIgniter.md After project creation, change into the new project's directory. ```bash $ cd my-project ``` -------------------------------- ### Create Project Directory Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/4-Starting-new-project.md Creates a new directory for your project and navigates into it. This is the first step in setting up a new project. ```bash $ mkdir my-project $ cd my-project ``` -------------------------------- ### Create a New Project with a Preset Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-create.md Use this command to create a new project. Specify the preset name and the folder where the project should be created. ```bash kool create PRESET FOLDER ``` -------------------------------- ### kool create Command Help Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-create.md Displays help information for the 'kool create' command. ```bash kool create --help ``` -------------------------------- ### NuxtJS Preset Initialization Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NuxtJS.md This interactive prompt appears during project creation, allowing you to select your preferred package manager. ```bash $ Preset nuxtjs is initializing! ? Which package manager did you choose during NuxtJS setup [Use arrows to move, type to filter] > npm yarn $ Preset nuxtjs initialized! ``` -------------------------------- ### Rebuild and Start Service Images Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-start.md Updates and rebuilds the images for the specified service before starting the containers. Use this when you have made changes to your Dockerfile or service dependencies. ```bash kool start -b ``` -------------------------------- ### Restart Service Containers Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-restart.md Use this command to stop and then start all running service containers for your Kool project. ```bash kool restart ``` -------------------------------- ### Increase Output Verbosity Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-cloud.md Enable verbose output for 'kool cloud' commands to get more detailed information during execution. ```bash kool cloud --verbose deploy ``` -------------------------------- ### Create New Symfony Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Symfony.md Initializes a new Symfony project named 'my-project' using the 'symfony' preset. This command utilizes a customized Docker image (kooldev/php:7.4) and an interactive wizard to configure the project's tech stack. ```bash $ kool create symfony my-project ``` -------------------------------- ### Create New Hugo Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Hugo.md Initializes a new Hugo project named 'my-project' using the Hugo preset. For Windows WSL or Linux, use 'sudo' to avoid permission issues. ```bash $ kool create hugo my-project ``` -------------------------------- ### Create Public Directory and Index File Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/4-Starting-new-project.md Creates a 'public' subdirectory and an 'index.php' file within it. The 'index.php' file contains a simple 'Hello World!' message to be displayed by the web server. ```bash $ mkdir public $ echo "" > public/index.php ``` -------------------------------- ### Express.js Project Initialization Wizard Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/ExpressJS.md During project creation, a wizard prompts you to select a JavaScript package manager. ```bash $ Preset expressjs is initializing! ? Which javascript package manager do you want to use [Use arrows to move, type to filter] > npm yarn $ Preset expressjs initialized! ``` -------------------------------- ### Create New PHP Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/PHP.md Use this command to create a new PHP project named 'my-project'. It automatically sets up a basic NGINX configuration with a default index.php file. ```bash $ kool create php my-project ``` -------------------------------- ### List Available Kool Recipes Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/3-How-it-works.md Use this command to see all recipes available for your project. This helps in choosing which enhancements to add. ```bash # see a list with all recipes available to pick from kool recipe ``` -------------------------------- ### Update Kool CLI Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/2-Installation.md Updates the Kool CLI to the latest available version. This command checks for newer releases and automatically installs them if found. ```bash kool self-update ``` -------------------------------- ### Create New Laravel Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Laravel.md Use the `kool create` command with the 'laravel' preset to scaffold a new Laravel project in a specified directory. ```bash $ kool create laravel my-project ``` -------------------------------- ### Create NuxtJS Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/NuxtJS.md Use the kool create command with the nuxtjs preset to scaffold a new NuxtJS project. ```bash $ kool create nuxtjs my-project ``` -------------------------------- ### Hugo Scripts in kool.yml Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/Hugo.md Defines scripts for Hugo development, including starting the Docker environment, initializing a project, and running the Hugo server. ```yaml scripts: hugo: kool docker -p 1313:1313 klakegg/hugo:ext-alpine dev: kool run hugo server -D # remove or modify to suit the needs of your project quickstart: - kool start - git init - git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke - echo theme = "ananke" >> config.toml - kool run hugo new posts/my-first-post.md - kool run dev setup: - kool start - kool run dev ``` -------------------------------- ### Generated Configuration Files Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/WordPress.md The 'kool preset' command automatically generates essential configuration files for your project. These files can be modified to customize your setup. ```bash +.env +docker-compose.yml +kool.yml ``` -------------------------------- ### Update Documentation Source: https://github.com/kool-dev/kool/blob/main/RELEASE.md Run this command to update the project's documentation. ```bash kool run make-docs ``` -------------------------------- ### Create New WordPress Project Source: https://github.com/kool-dev/kool/blob/main/docs/03-Presets/WordPress.md Use this command to create a new WordPress project directory. It automatically runs the 'kool preset wordpress' command to set up the initial tech stack via an interactive wizard. ```bash $ kool create wordpress my-project ``` -------------------------------- ### Kool Cloud Configuration for Public Port Source: https://github.com/kool-dev/kool/blob/main/docs/02-Kool-Cloud/20-kool.cloud.yml-Reference.md Example of a kool.cloud.yml file to expose port 80 of the 'app' service publicly for cloud deployment. ```yaml services: app: public: - port: 80 ``` -------------------------------- ### Info Command Verbose Option Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-info.md Run the 'kool info' command with increased output verbosity. This can be useful for debugging or getting more detailed environment information. ```bash kool info --verbose ``` -------------------------------- ### kool recipe Help Option Source: https://github.com/kool-dev/kool/blob/main/docs/05-Commands-Reference/kool-recipe.md Use this option to display help information for the 'kool recipe' command. ```bash kool recipe --help ``` -------------------------------- ### GitHub Actions: Kool Docker Image with Docker-in-Docker Source: https://github.com/kool-dev/kool/blob/main/docs/01-Getting-Started/5-CI-Integration.md This GitHub Actions configuration uses the kooldev/kool image and a Docker-in-Docker service, similar to the GitLab CI setup. ```yaml jobs: test: runs-on: ubuntu-latest container: image: kooldev/kool:3 services: docker: image: docker:dind options: --privileged env: DOCKER_TLS_CERTDIR: "" env: DOCKER_HOST: tcp://docker:2375 steps: - uses: actions/checkout@v4 - run: kool run test ``` -------------------------------- ### Kool CLI Quick Reference Source: https://github.com/kool-dev/kool/blob/main/skills/kool-cli/SKILL.md A quick reference for common Kool CLI commands, including starting/stopping services, executing commands, viewing logs, and running scripts. ```bash kool start # Start all services from docker-compose.yml kool stop # Stop all services kool restart --rebuild # Restart and rebuild images kool status # Show running containers kool exec # Run command in service container kool logs -f # Follow service logs kool run --json # List available scripts as JSON kool run