reorder sidebar and visual improvements

This commit is contained in:
miloschwartz 2025-03-03 21:33:27 -05:00
parent 8db1e9a2af
commit 8425ab9fac
No known key found for this signature in database
10 changed files with 23 additions and 8 deletions

View file

@ -19,7 +19,7 @@ Pangolin is configured using a `config.yml` file. The file is expected to be mou
- Logs rotate - Logs rotate
- Max size: 20MB - Max size: 20MB
- Max files: 7 days - Max files: 7 days
- `log_failed_attempts`: boolean - `log_failed_attempts` (optional): boolean
- Whether to log failed authentication attempts. This is useful for security tools like Crowdsec and Fail2ban. - Whether to log failed authentication attempts. This is useful for security tools like Crowdsec and Fail2ban.
### `server` ### `server`
@ -72,8 +72,10 @@ Pangolin is configured using a `config.yml` file. The file is expected to be mou
### `domains` ### `domains`
At least one domain must be configured.
- `<domain_key>`: string - `<domain_key>`: string
- The unique key for the domain configuration. - The unique key for the domain configuration. This can be anything you want.
- `base_domain`: string - `base_domain`: string
- Example: `example.com` - Example: `example.com`
- `cert_resolver`: string - `cert_resolver`: string
@ -139,6 +141,9 @@ Pangolin is configured using a `config.yml` file. The file is expected to be mou
- `no_reply` (optional): string - `no_reply` (optional): string
- Example: `no-reply@example.com` - Example: `no-reply@example.com`
- The address to send emails from. This can be any email address. Most often this will be the same as the `smtp_user`. - The address to send emails from. This can be any email address. Most often this will be the same as the `smtp_user`.
- `smtp_tls_reject_unauthorized` (optional): boolean
- Do not fail if the server certificate cannot be verified.
- Default: `false`
### `users` ### `users`
@ -176,6 +181,8 @@ Pangolin is configured using a `config.yml` file. The file is expected to be mou
## Example Configuration File ## Example Configuration File
This is just an example and is not meant to be used as is. It is not complete. You should customize the configuration to your needs.
```yaml ```yaml
app: app:
dashboard_url: "https://example.com" dashboard_url: "https://example.com"

View file

@ -14,7 +14,7 @@ It is highly reccommended that you read the [official Traefik documentation](htt
## Benefits of Wildcard Certificates ## Benefits of Wildcard Certificates
1. Wildcard certificates allow you to secure your base domain and all subdomains with a single certificate. This reduces the number of certificates you need to manage. 1. Wildcard certificates allow you to secure your all subdomains with a single certificate. This reduces the number of certificates you need to manage.
2. You can add new subdomains to resources without needing to generate a new certificate each time. Without a wildcard certificate, you would need to wait (up to a few minutes usually) for a new certificate to be generated and loaded by Traefik. 2. You can add new subdomains to resources without needing to generate a new certificate each time. Without a wildcard certificate, you would need to wait (up to a few minutes usually) for a new certificate to be generated and loaded by Traefik.
- For example: A wildcard cert `*.example.com` could protect `api.example.com`, `blog.example.com`, and another `*.subdomain.example.com` could protect `api.subdomain.example.com`, `blog.subdomain.example.com`, etc. - For example: A wildcard cert `*.example.com` could protect `api.example.com`, `blog.example.com`, and another `*.subdomain.example.com` could protect `api.subdomain.example.com`, `blog.subdomain.example.com`, etc.
3. The [rate limits](https://letsencrypt.org/docs/rate-limits/) for Let's Encrypt are per domain. Using a wildcard certificate reduces the number of domains you have, which can help you avoid hitting these limits. 3. The [rate limits](https://letsencrypt.org/docs/rate-limits/) for Let's Encrypt are per domain. Using a wildcard certificate reduces the number of domains you have, which can help you avoid hitting these limits.
@ -147,7 +147,7 @@ You can ensure Traefik doesn't try to use the old certs by deleting the previous
Start the stack and watch the logs. You should notice that Traefik is making calls to your DNS provider to create the necessary records to complete the challenge. For debugging purposes, you may find it useful to set the log level of Traefik to `debug` in the `traefik_config.yml` file. Start the stack and watch the logs. You should notice that Traefik is making calls to your DNS provider to create the necessary records to complete the challenge. For debugging purposes, you may find it useful to set the log level of Traefik to `debug` in the `traefik_config.yml` file.
After Traefik is done waiting for the cert to verify. Try to create a new resource with a unused subdomain. Traefik should not try to generated a new certificate, but instead use the wildcard certificate. The domain should also be secured immediately instead of waiting for a new certificate to be generated. After Traefik is done waiting for the cert to verify, try to create a new resource with an unused subdomain. Traefik should not try to generated a new certificate, but instead use the wildcard certificate. The domain should also be secured immediately instead of waiting for a new certificate to be generated.
You can also check the volume (in the example above at `config/letsencrypt/`) for the correct certificates. In the `acme.json` file you should see something similar to the following. Note the `*.` in the domain. You can also check the volume (in the example above at `config/letsencrypt/`) for the correct certificates. In the `acme.json` file you should see something similar to the following. Note the `*.` in the domain.

View file

@ -216,18 +216,18 @@ I'll create an improved API documentation based on the files provided. Here's th
-d '{"email":"invitee@example.com","roleId":123,"validHours":24,"sendEmail":true}' -d '{"email":"invitee@example.com","roleId":123,"validHours":24,"sendEmail":true}'
``` ```
### 2. Request/Response Formats ## 2. Request/Response Formats
All requests should include the appropriate headers, particularly `Content-Type` set to `application/json` for JSON payloads and an `Authorization` header for authenticated requests. All requests should include the appropriate headers, particularly `Content-Type` set to `application/json` for JSON payloads and an `Authorization` header for authenticated requests.
### 3. Usage Examples ## 3. Usage Examples
Examples of how to interact with the API are included in the endpoint descriptions above using `curl`. These examples illustrate how to make requests and handle responses. Examples of how to interact with the API are included in the endpoint descriptions above using `curl`. These examples illustrate how to make requests and handle responses.
### 4. Limitations or Constraints ## 4. Limitations or Constraints
- Each email address must be unique when creating a user. - Each email address must be unique when creating a user.
- Resources and sites must be associated with an organization, and users must have appropriate permissions to create or manage resources. - Resources and sites must be associated with an organization, and users must have appropriate permissions to create or manage resources.
- Rate limits apply to API calls. - Rate limits apply to API calls.
This documentation provides a foundational overview of the API's public endpoints, request/response formats, usage examples, and any limitations. We will expand upon this as our API evolves and we have more time to document endpoints and as additional features are added. This documentation provides a foundational overview of the API's public endpoints, request/response formats, usage examples, and any limitations. We will expand upon this as our API evolves and we have more time to document endpoints and as additional features are added.

View file

Before

Width:  |  Height:  |  Size: 774 KiB

After

Width:  |  Height:  |  Size: 774 KiB

View file

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

View file

@ -226,3 +226,11 @@ div[class^="announcementBarContent"] a:hover {
display: none !important; display: none !important;
} }
} }
.breadcrumbs li:first-child {
display: none;
}
.breadcrumbs li:nth-child(2) .breadcrumbs__link{
padding-left: 0px !important;
}