Skip to content

Commit e7829cc

Browse files
authored
Adds zero quickstart draft (#1326)
* adds initial steps * zero quickstart first draft * adds next steps * updates quickstart * makes updates to Quickstart * address quickstart feedback * deletes unused img * updates quickstart text * cleans up imgs * moves core quickstart * runs prettier * fixes formatting * fixes broken links * updates version in quickstart * replace Courses link with Custom Domains
1 parent 969960b commit e7829cc

16 files changed

+209
-49
lines changed

content/docs/core.mdx

-6
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,6 @@ import TabItem from '@theme/TabItem';
1717

1818
# Pomerium Core (Server)
1919

20-
:::note
21-
22-
If you are new to Pomerium, this is probably what you are looking for.
23-
24-
:::
25-
2620
Pomerium Core (sometimes referred to as _Pomerium Open Source_) is the primary server component. Pomerium Core is open source, and all other components build on top of it.
2721

2822
- Supported Operating Systems: Linux and macOS

content/docs/core/binary.mdx

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ keywords:
1010
- pre-built binaries
1111
pagination_prev: null
1212
pagination_next: null
13-
sidebar_label: With Binaries
14-
sidebar_position: 1
13+
sidebar_label: Binaries
1514
---
1615

1716
import ConfigMinimal from '@site/content/examples/config/config.minimal.yaml.md';

content/docs/core/changelog.mdx

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: Changelog
33
lang: en-US
4+
sidebar_position: 2
45
# cSpell:disable
56
---
67

content/docs/core/from-source.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ keywords:
1313
identity aware proxy,
1414
]
1515
sidebar_label: From Source
16-
sidebar_position: 2
16+
sidebar_position: 4
1717
---
1818

1919
import ConfigMinimal from '@site/content/examples/config/config.minimal.yaml.md';

content/docs/core/quickstart.md

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
# cSpell:ignore thisisunsafe, genkey, noout
3+
4+
title: Run Pomerium Core With Docker
5+
lang: en-US
6+
sidebar_label: Quickstart
7+
sidebar_position: 1
8+
pagination_prev: null
9+
pagination_next: null
10+
description: Get Pomerium up and running quickly with Docker.
11+
keywords:
12+
[
13+
pomerium,
14+
identity access proxy,
15+
oidc,
16+
docker,
17+
reverse proxy,
18+
containers,
19+
identity aware proxy,
20+
quickstart pomerium,
21+
docker,
22+
docker-compose,
23+
]
24+
---
25+
26+
import ConfigDocker from '@site/content/examples/config/config.docker.yaml.md'; import DockerCompose from '@site/content/examples/docker/basic.docker-compose.yml.md';
27+
28+
# Run Pomerium Core With Docker
29+
30+
Run Pomerium Core with Docker containers in **under 5 minutes**.
31+
32+
The Core quickstart uses Pomerium's [**Hosted Authenticate Service**](/docs/capabilities/hosted-authenticate-service), but you can also configure a [**self-hosted authenticate service**](/docs/capabilities/self-hosted-authenticate-service) to integrate with Pomerium.
33+
34+
## Prerequisites
35+
36+
[Docker] and [Docker Compose]
37+
38+
## Configure Pomerium
39+
40+
Create a `config.yaml` file in the root of your project.
41+
42+
Add the configuration below to `config.yaml`:
43+
44+
<ConfigDocker />
45+
46+
Replace `[email protected]` with your email address.
47+
48+
## Configure Docker
49+
50+
Create a `docker-compose.yaml` file in the root of your project.
51+
52+
Add the configuration below to `docker-compose.yaml`:
53+
54+
<DockerCompose />
55+
56+
## Run Docker Compose
57+
58+
```bash
59+
docker compose up
60+
```
61+
62+
Access the **verify route** you built in your policy: `https://verify.localhost.pomerium.io`
63+
64+
If you get a self-signed certificate warning, see [Handle Self-Signed Certificate Warning](/docs/troubleshooting#handle-self-signed-certificate-warning) to bypass it.
65+
66+
You should be redirected to the **verify** service. You'll see a page like this:
67+
68+
![Verify page](./img/verify-service.png)
69+
70+
Although identity verification failed, you successfully integrated Pomerium with the upstream verify service.
71+
72+
:::tip
73+
74+
Because this guide doesn't include a [signing key](/docs/reference/signing-key) in the configuration, identity verification will fail.
75+
76+
See [Identity Verification](/docs/capabilities/getting-users-identity) for more information on how Pomerium can use JWTs for authentication.
77+
78+
:::
79+
80+
## Next Steps
81+
82+
If you want to [try Enterprise](https://www.pomerium.com/enterprise-sales/), check out the [Enterprise with Docker quickstart](/docs/enterprise/quickstart).
83+
84+
If you want to try connecting Pomerium with other services, see some of our [Guides](/docs/guides).
85+
86+
**Did you finish this quickstart guide?** We'd love to hear what you think. Get in touch with us on our [Discuss forum](https://discuss.pomerium.com/), message us on [Twitter](https://twitter.com/pomerium_io), [LinkedIn](https://www.linkedin.com/company/pomerium-inc), or check out our [Community](https://www.pomerium.com/docs/community) page.
87+
88+
:::caution
89+
90+
This is a test environment! If you followed all the steps in this doc your Pomerium environment is not using trusted certificates. Remember to use a valid certificate solution before moving this configuration to a production environment. See [Certificates](/docs/reference/certificates) for more information.
91+
92+
:::
93+
94+
[configuration file]: /docs/reference
95+
[container images]: https://hub.docker.com/r/pomerium/pomerium
96+
[docker]: https://docs.docker.com/install/
97+
[docker compose]: https://docs.docker.com/compose/install/

content/docs/core/upgrading.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ description: >-
88
99
pagination_prev: null
1010
pagination_next: null
11-
sidebar_position: 10
11+
sidebar_position: 3
1212
---
1313

1414
# Upgrade guide
44.3 KB
Loading
-67.5 KB
Binary file not shown.
Loading
Loading
Loading
5.3 KB
Loading
-49.5 KB
Binary file not shown.
Loading

content/docs/quickstart.mdx

+108-39
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
---
22
# cSpell:ignore thisisunsafe, genkey, noout
33

4-
title: Run Pomerium Core With Docker
54
lang: en-US
65
sidebar_label: Quickstart
76
pagination_prev: null
87
pagination_next: null
9-
description: Get Pomerium up and running quickly with Docker.
8+
description: Learn how to install and run Pomerium Zero in a Docker container.
109
keywords:
1110
[
1211
pomerium,
@@ -22,76 +21,146 @@ keywords:
2221
]
2322
---
2423

25-
import ConfigDocker from '@site/content/examples/config/config.docker.yaml.md';
26-
import DockerCompose from '@site/content/examples/docker/basic.docker-compose.yml.md';
24+
import Tabs from '@theme/Tabs';
25+
import TabItem from '@theme/TabItem';
2726

28-
# Run Pomerium Core With Docker
27+
# Pomerium Zero Quickstart
2928

30-
Run Pomerium Core with Docker containers in **under 5 minutes**.
29+
The Zero Quickstart shows you how to install and run Pomerium Zero in a Docker container.
3130

32-
The Core quickstart uses Pomerium's [**Hosted Authenticate Service**](/docs/capabilities/hosted-authenticate-service), but you can also configure a [**self-hosted authenticate service**](/docs/capabilities/self-hosted-authenticate-service) to integrate with Pomerium.
31+
## Before you start
3332

34-
## Prerequisites
33+
- Install [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/)
34+
- Create a (free) [**Pomerium Zero account**](https://console.pomerium.app/create-account)
3535

36-
[Docker] and [Docker Compose]
36+
## Get Pomerium Zero configuration
3737

38-
## Configure Pomerium
38+
After you create an account, you'll be directed to the Zero onboarding screen. In the onboarding screen, select the **Docker** tab and copy the Docker Compose configuration.
3939

40-
Create a `config.yaml` file in the root of your project.
40+
(If you selected **Finish** before copying the Docker configuration, we've provided a copy below.)
4141

42-
Add the configuration below to `config.yaml`:
42+
Paste the configuration in a `compose.yaml` file:
4343

44-
<ConfigDocker />
44+
```yaml title="compose.yaml" {8,15} showLineNumbers
45+
services:
46+
pomerium:
47+
image: pomerium/pomerium:v0.26.0
48+
ports:
49+
- 443:443
50+
restart: always
51+
environment:
52+
POMERIUM_ZERO_TOKEN: <CLUSTER_TOKEN>
53+
XDG_CACHE_HOME: /var/cache
54+
volumes:
55+
- pomerium-cache:/var/cache
56+
networks:
57+
main:
58+
aliases:
59+
- verify.<CLUSTER_STARTER_SUBDOMAIN>.pomerium.app
60+
verify:
61+
image: cr.pomerium.com/pomerium/verify:latest
62+
networks:
63+
main:
64+
aliases:
65+
- verify
4566

46-
Replace `[email protected]` with your email address.
67+
networks:
68+
main: {}
4769

48-
## Configure Docker
70+
volumes:
71+
pomerium-cache:
72+
```
73+
74+
Replace the following values:
75+
76+
- **Line 8**: Replace `CLUSTER_TOKEN` with the cluster token generated for you in the onboarding config
77+
- **Line 15**: Replace `CLUSTER_STARTER_SUBDOMAIN` with your generated starter subdomain
78+
79+
:::tip Where's my **Starter Domain?**
4980

50-
Create a `docker-compose.yaml` file in the root of your project.
81+
You can find your **Starter Domain** at the top of the Zero Console navigation bar:
5182

52-
Add the configuration below to `docker-compose.yaml`:
83+
![Selecting the Cluster dropdown menu in the Zero Console to see the cluster starter domain](./img/quickstart/starter-domain.png)
5384

54-
<DockerCompose />
85+
:::
86+
87+
## Connect to Pomerium Zero
5588

56-
## Run Docker Compose
89+
Next, deploy Pomerium with the following command:
5790

5891
```bash
59-
docker compose up
92+
docker compose up -d
6093
```
6194

62-
Access the **verify route** you built in your policy: `https://verify.localhost.pomerium.io`
95+
Pomerium will deploy and run in a special "Zero-managed" mode. In Zero-managed mode, Pomerium connects to the Pomerium Zero cloud service, a remote control plane where you can manage your deployments and configuration.
6396

64-
If you get a self-signed certificate warning, see [Handle Self-Signed Certificate Warning](/docs/troubleshooting#handle-self-signed-certificate-warning) to bypass it.
97+
If your Pomerium deployment connects to the cloud successfully, Pomerium Zero will notify you in the onboarding screen:
6598

66-
You should be redirected to the **verify** service. You'll see a page like this:
99+
![The successful connection notification in the Pomerium Zero onboarding flow](./img/quickstart/zero-quickstart-connection.png)
67100

68-
![Verify page](./img/quickstart/verify-service.png)
101+
Once you've connected, select **Finish**. You'll be directed to the Zero Console.
69102

70-
Although identity verification failed, you successfully integrated Pomerium with the upstream verify service.
103+
## Connect to upstream services
71104

72-
:::tip
105+
In the Zero Console, we've provisioned two starter routes, **SSH** and **Verify**, that come with their own DNS records and TLS certificates:
73106

74-
Because this guide doesn't include a [signing key](/docs/reference/signing-key) in the configuration, identity verification will fail.
107+
![Viewing the two starter routes](./img/quickstart/pz-quickstart-routes.png)
75108

76-
See [Identity Verification](/docs/capabilities/getting-users-identity) for more information on how Pomerium can use JWTs for authentication.
109+
### Connect to Verify
77110

78-
:::
111+
The first service you'll access is the **Verify** app. This hosted demo app is designed to verify a user's identity, but it also serves as a way to validate that Pomerium is up and running as expected.
79112

80-
## Next Steps
113+
In the Zero Console, select the **From** URL for the Verify app.
81114

82-
If you want to [try Enterprise](https://www.pomerium.com/enterprise-sales/), check out the [Enterprise with Docker quickstart](/docs/enterprise/quickstart).
115+
You should land on the Verify page:
83116

84-
If you want to try connecting Pomerium with other services, see some of our [Guides](/docs/guides).
117+
![The homepage of the Verify app after the user is redirected](./img/quickstart/pz-identity-verified.png)
85118

86-
**Did you finish this quickstart guide?** We'd love to hear what you think. Get in touch with us on our [Discuss forum](https://discuss.pomerium.com/), message us on [Twitter](https://twitter.com/pomerium_io), [LinkedIn](https://www.linkedin.com/company/pomerium-inc), or check out our [Community](https://www.pomerium.com/docs/community) page.
119+
### Connect to SSH
87120

88-
:::caution
121+
The demo SSH route connects to a remote server that you can use to test SSH connections in Pomerium Zero.
89122

90-
This is a test environment! If you followed all the steps in this doc your Pomerium environment is not using trusted certificates. Remember to use a valid certificate solution before moving this configuration to a production environment. See [Certificates](/docs/guides/certificates) for more information.
123+
:::note Install Pomerium CLI
124+
125+
You need the Pomerium CLI client to connect to services like **SSH** over a TCP connection. See the [**Pomerium CLI**](/docs/clients/pomerium-cli) page for installation instructions.
91126

92127
:::
93128

94-
[configuration file]: /docs/reference
95-
[container images]: https://hub.docker.com/r/pomerium/pomerium
96-
[docker]: https://docs.docker.com/install/
97-
[docker compose]: https://docs.docker.com/compose/install/
129+
In a terminal, enter the following command and replace `CLUSTER_STARTER_DOMAIN` with your own:
130+
131+
```bash
132+
pomerium-cli tcp ssh.<CLUSTER_STARTER_DOMAIN>.app:22
133+
```
134+
135+
Initiate the SSH connection:
136+
137+
```bash
138+
ssh ssh-demo.pomerium.com -p 22
139+
```
140+
141+
A successful request results in a response similar to the one below:
142+
143+
```bash
144+
Warning: Permanently added 'ssh-demo.pomerium.com' (ED25519) to the list of known hosts.
145+
This is an SSH honeypot. Everything is logged and monitored.
146+
```
147+
148+
## Review authorization policy
149+
150+
Select the **Policies** tab. In the policies table, you'll notice the **Any Authenticated User** policy.
151+
152+
![Reviewing the starter policy in the Zero Console](./img/quickstart/pz-quickstart-policy.png)
153+
154+
This is a simple policy that instructs Pomerium to allow all requests for authenticated users or service accounts. Because you authenticated successfully against our hosted identity provider, Pomerium granted you access to both the SSH and Verify services.
155+
156+
## Review certificates
157+
158+
Pomerium automatically provisions and manages TLS certificates issued by ZeroSSL to secure the starter routes in your cluster, and any routes you may build that use your cluster's starter domain.
159+
160+
To see certificates in your cluster, go to the **Certificates** tab:
161+
162+
![View cluster certificates from ZeroSSL](./img/quickstart/cluster-certs.png)
163+
164+
## Next Steps
165+
166+
### Add a [**Custom Domain**](/docs/capabilities/custom-domains)

0 commit comments

Comments
 (0)