You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All deployed environments will run under HTTPS. Kool.dev Cloud will automatically generate certificates for your environment the first time it is deployed using the Let'sEncrypt engine.
1
+
# Managing domains and HTTPS
2
2
3
-
You always need to provide the environment domain when running a deploy.
3
+
All deployed environments will run under HTTPS. Kool.dev Cloud will automatically generate certificates for your environment the first time it is deployed using the Let'sEncrypt engine (via K8S `certmanager`).
4
+
5
+
## Environment domain
6
+
7
+
You always need to provide the environment domain when running a deploy. The domain is going to be the key identifier of your environment when accessing it via the Kool CLI.
4
8
5
9
```bash
6
10
kool cloud --token="<my token>" deploy --domain="my-app-domain.com"
@@ -13,12 +17,28 @@ You can provide those values via environment variables as well if that's easier
13
17
14
18
Important to notice: if you deploy to a new domain that doesn't currently exist in your Kool.dev Cloud panel, that is totally fine and will just create a very new environment for that domain.
15
19
16
-
### Test deployment domains
20
+
## Using multiple domains
21
+
22
+
Some applications may require serving more than just one domain. This can be easily achieve with Kool.dev Cloud.
23
+
24
+
When deploying via the CLI, you can specify any number of extra domains that should point to your application:
25
+
26
+
```bash
27
+
kool cloud --token="<my token>" deploy --domain="my-app-domain.com" --domain-extra="another-domain.com"
28
+
```
29
+
30
+
## Using a test deployment domain - `*.kool.cloud`
17
31
18
32
You are welcome to use a subdomain like `my-super-app.kool.cloud` on your staging or development environments. By using that, you will have HTTPS certificates up and running instantly for that environment after the first deploy.
19
33
20
-
### Production and custom domains
34
+
##Custom domains - DNS records
21
35
22
-
When you create an environment to be deployed using your own custom domain name, you will need to check out in the Kool.dev Cloud panel for that environment the instructions to where to point your A/CNAME for that domain.
36
+
When you create an environment to be deployed using your own custom domain name, you will need to check out in the Kool.dev Cloud panel for that environment the instructions to where to point your A/CNAME DNS records for that domain.
23
37
24
38
HTTPS certificates will only be successfully generated once the DNS is correctly pointing your domain to Kool.dev Cloud.
39
+
40
+
## HTTPS certificates
41
+
42
+
As stated above for all environments Kool.dev Cloud will trigger LetsEncrypt routines to generate a valid TLS certificate for your environment domain. All that is required for that to succeed is that the used domain points properly to Kool.dev Cloud IP addresses.
43
+
44
+
That is why it's important to notice that when deploying a custom domain (not a `*.kool.cloud`) your will only work properly after the DNS records point properly to Kool.dev Cloud and the LetsEncrypt process had time to perform the HTTP01 Acme challenge process.
Copy file name to clipboardExpand all lines: docs/02-Kool-Cloud/15-Deploy-Lifecycle-Hooks.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,11 @@
1
+
# Hooks
2
+
1
3
You have the ability to define hooks to run before or after every deploy you make.
2
4
3
5
These hooks will run using the very same image that is being deployed. This is usually needed for common routines, such as running database migrations, sending alerts of updates to some other service, etc.
4
6
7
+
# Before and After
8
+
5
9
To illustrate the options you have in the `kool.cloud.yml` file:
6
10
7
11
```yaml
@@ -11,6 +15,7 @@ services:
11
15
12
16
# The 'before' hook is a special section where we can define commands to be executed
13
17
# right before a new deployment happens.
18
+
# ATTENTION: current limitation - can only have a 'before' hook after a first deploy has created the environment.
14
19
before:
15
20
- [ sh, run-database-migrations.sh, arg1, arg2 ]
16
21
@@ -20,6 +25,10 @@ services:
20
25
- [ sh, run-cache-version-update.sh, arg1, arg2 ]
21
26
```
22
27
23
-
### Failures on lifecycle hooks
28
+
## Failures on lifecycle hooks
24
29
25
30
Please notice that these lifecycle hooks are required for the new deploy to be successful—this means that **if any of them fail**—either `before` or `after` newly deployed container versions are running—**the whole deploy is going to be rolled back**. As you can imagine, this poses a challenge, especially on database migrations since they can be problematic and not backwards compatible with the previously running container version.
31
+
32
+
## Limitations
33
+
34
+
The `before` hook can only be used after a first deploy has succeded for your environment - that is a limitation that should be lifted in the future, but currently can halt your first deploy if it includes a `before` hook.
Most real-world web applications will go beyond just computing containers with your code—there's a vast myriad of other resources you will eventually need, like dedicated database services (i.e., RDS), replication, object storage (i.e., S3), CDN (i.e., CloudFront), just to name a few.
1
+
# Custom Resources
2
2
3
-
The Kool.dev Cloud team is ready to set it up for you when needed—providing you the Infrastructure-as-Code to live close to your application. While this is not built into our panel for self-service usage, you can just [contact us via email with your needs](mailto:[email protected]), and we will work through your request.
3
+
Most real-world web applications will go beyond just computing containers with your code — there's a vast myriad of other resources you will eventually need, like dedicated database services (i.e., RDS), replication, object storage (i.e., S3), CDN (i.e., CloudFront), just to name a few.
4
+
5
+
The Kool.dev Cloud team is ready to set it up for you when needed — providing you the Infrastructure-as-Code to live close to your application. While this is not built into our panel for self-service usage yet, you can just [contact us via email with your needs](mailto:[email protected]), and we will work through your request.
6
+
7
+
## Bring Your Own Cloud
8
+
9
+
Important to notice - current cloud scenario is flexible enough where you can use Kool.dev Shared cloud, or hire a dedicated stack fully managed by Kool.dev, or even better - if you want total control and access we can set up the Kool.dev Cloud cluster and resources on your own AWS account. [Contact us](mailto:[email protected]) to learn more about this possibility.
10
+
11
+
## Consulting
4
12
5
13
If you lack the DevOps expertise to determine your needs, we also have consulting services available to best serve you.
Copy file name to clipboardExpand all lines: docs/25-Upgrade-Guide/0-Upgrading-Kool.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,3 +18,9 @@ Version 3.x introduces two significant changes:
18
18
19
19
- The YAML syntax for `services.<service>.build` in the `kool.cloud.yml` file must now align with the official Docker Compose reference for the `service.<service>.build` entry.
20
20
- Image building now occurs in your local environment—specifically, on the host where you execute `kool cloud deploy`. Therefore, ensure that the environment from which you run this command has a properly configured Docker-image build engine (that means Kool to be able to run `docker build` command).
21
+
22
+
### Github Action `kool-dev/action`
23
+
24
+
There's a new version of our official installation GH action `kool-dev/action@v3` - that will always install the latest v3 series release.
25
+
26
+
The first and now legacy `kool-dev/action@v1` has been updated and froze to its past behavior of installing the latest version regardless of the major version mismatch. That is why `kool-dev/action@v1` will for now on always install the latest v2 series release - currently `2.2.0`.
0 commit comments