mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 04:07:31 +00:00
feat: improve UX for external configuration (#6861)
* docs: simplify traefik external tls * remove pass host header * docs: simplify and fix nginx external tls * fix: readiness with enabled tls * improve proxy docs * improve proxy docs * fix(ready): don't verify server cert * complete nginx docs * cleanup * complete traefik docs * add caddy docs * simplify traefik * standardize * fix caddy * add httpd docs * improve external config docs * guiding error message * docs(defaults.yaml): remove misleading comments * guiding error message cs and ru * improve proxy testability * fix compose up command * improve commands * fix nginx tls disabled * fix nginx tls enabled * fix: serve gateway when tls is enabled * fmt caddy files * fix caddy enabled tls * remove not-working commands * review * fix checks * fix link --------- Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
@@ -39,16 +39,15 @@ Telemetry:
|
||||
|
||||
# Port ZITADEL will listen on
|
||||
Port: 8080 # ZITADEL_PORT
|
||||
# Port ZITADEL is exposed on, it can differ from port e.g. if you proxy the traffic
|
||||
# !!! Changing this after the initial setup breaks your system !!!
|
||||
# ExternalPort is the port on which end users access ZITADEL.
|
||||
# It can differ from Port e.g. if a reverse proxy forwards the traffic to ZITADEL
|
||||
# Read more about external access: https://zitadel.com/docs/self-hosting/manage/custom-domain
|
||||
ExternalPort: 8080 # ZITADEL_EXTERNALPORT
|
||||
# Domain/hostname ZITADEL is exposed externally
|
||||
# !!! Changing this after the initial setup breaks your system !!!
|
||||
# ExternalPort is the domain on which end users access ZITADEL.
|
||||
# Read more about external access: https://zitadel.com/docs/self-hosting/manage/custom-domain
|
||||
ExternalDomain: localhost # ZITADEL_EXTERNALDOMAIN
|
||||
# specifies if ZITADEL is exposed externally through TLS
|
||||
# this must be set to true even if TLS is not enabled on ZITADEL itself
|
||||
# but TLS traffic is terminated on a reverse proxy
|
||||
# !!! Changing this after the initial setup breaks your system !!!
|
||||
# ExternalSecure specifies if ZITADEL is exposed externally using HTTPS or HTTP.
|
||||
# Read more about external access: https://zitadel.com/docs/self-hosting/manage/custom-domain
|
||||
ExternalSecure: true # ZITADEL_EXTERNALSECURE
|
||||
TLS:
|
||||
# If enabled, ZITADEL will serve all traffic over TLS (HTTPS and gRPC)
|
||||
|
@@ -9,12 +9,14 @@ import (
|
||||
|
||||
internal_authz "github.com/zitadel/zitadel/internal/api/authz"
|
||||
"github.com/zitadel/zitadel/internal/config/hook"
|
||||
"github.com/zitadel/zitadel/internal/config/network"
|
||||
"github.com/zitadel/zitadel/internal/domain"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Log *logging.Config
|
||||
Port uint16
|
||||
TLS network.TLS
|
||||
}
|
||||
|
||||
func MustNewConfig(v *viper.Viper) *Config {
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package ready
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
@@ -26,7 +27,13 @@ func New() *cobra.Command {
|
||||
}
|
||||
|
||||
func ready(config *Config) bool {
|
||||
res, err := http.Get("http://" + net.JoinHostPort("localhost", strconv.Itoa(int(config.Port))) + "/debug/ready")
|
||||
scheme := "https"
|
||||
if !config.TLS.Enabled {
|
||||
scheme = "http"
|
||||
}
|
||||
// Checking the TLS cert is not in the scope of the readiness check
|
||||
httpClient := http.Client{Transport: &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: true}}}
|
||||
res, err := httpClient.Get(scheme + "://" + net.JoinHostPort("localhost", strconv.Itoa(int(config.Port))) + "/debug/ready")
|
||||
if err != nil {
|
||||
logging.WithError(err).Warn("ready check failed")
|
||||
return false
|
||||
|
@@ -367,16 +367,16 @@ func startAPIs(
|
||||
return fmt.Errorf("error starting admin repo: %w", err)
|
||||
}
|
||||
|
||||
if err := apis.RegisterServer(ctx, system.CreateServer(commands, queries, config.Database.DatabaseName(), config.DefaultInstance, config.ExternalDomain)); err != nil {
|
||||
if err := apis.RegisterServer(ctx, system.CreateServer(commands, queries, config.Database.DatabaseName(), config.DefaultInstance, config.ExternalDomain), tlsConfig); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := apis.RegisterServer(ctx, admin.CreateServer(config.Database.DatabaseName(), commands, queries, config.SystemDefaults, config.ExternalSecure, keys.User, config.AuditLogRetention)); err != nil {
|
||||
if err := apis.RegisterServer(ctx, admin.CreateServer(config.Database.DatabaseName(), commands, queries, config.SystemDefaults, config.ExternalSecure, keys.User, config.AuditLogRetention), tlsConfig); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := apis.RegisterServer(ctx, management.CreateServer(commands, queries, config.SystemDefaults, keys.User, config.ExternalSecure)); err != nil {
|
||||
if err := apis.RegisterServer(ctx, management.CreateServer(commands, queries, config.SystemDefaults, keys.User, config.ExternalSecure), tlsConfig); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := apis.RegisterServer(ctx, auth.CreateServer(commands, queries, authRepo, config.SystemDefaults, keys.User, config.ExternalSecure)); err != nil {
|
||||
if err := apis.RegisterServer(ctx, auth.CreateServer(commands, queries, authRepo, config.SystemDefaults, keys.User, config.ExternalSecure), tlsConfig); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := apis.RegisterService(ctx, user_v2.CreateServer(commands, queries, keys.User, keys.IDPConfig, idp.CallbackURL(config.ExternalSecure), idp.SAMLRootURL(config.ExternalSecure))); err != nil {
|
||||
|
Reference in New Issue
Block a user