mirror of
https://github.com/glanceapp/glance.git
synced 2025-06-21 18:31:24 +02:00
Refactor base-url & add documentation
This commit is contained in:
parent
c2cdd0fa08
commit
e1161b9227
@ -124,6 +124,7 @@ server:
|
|||||||
| ---- | ---- | -------- | ------- |
|
| ---- | ---- | -------- | ------- |
|
||||||
| host | string | no | |
|
| host | string | no | |
|
||||||
| port | number | no | 8080 |
|
| port | number | no | 8080 |
|
||||||
|
| base-url | string | no | |
|
||||||
| assets-path | string | no | |
|
| assets-path | string | no | |
|
||||||
|
|
||||||
#### `host`
|
#### `host`
|
||||||
@ -132,6 +133,9 @@ The address which the server will listen on. Setting it to `localhost` means tha
|
|||||||
#### `port`
|
#### `port`
|
||||||
A number between 1 and 65,535, so long as that port isn't already used by anything else.
|
A number between 1 and 65,535, so long as that port isn't already used by anything else.
|
||||||
|
|
||||||
|
#### `base-url`
|
||||||
|
The base URL that Glance is hosted under. No need to specify this unless you're using a reverse proxy and are hosting Glance under a directory. If that's the case then you can set this value to `/glance` or whatever the directory is called. Note that the forward slash (`/`) in the beginning is required unless you specify the full domain and path.
|
||||||
|
|
||||||
#### `assets-path`
|
#### `assets-path`
|
||||||
The path to a directory that will be served by the server under the `/assets/` path. This is handy for widgets like the Monitor where you have to specify an icon URL and you want to self host all the icons rather than pointing to an external source.
|
The path to a directory that will be served by the server under the `/assets/` path. This is handy for widgets like the Monitor where you have to specify an icon URL and you want to self host all the icons rather than pointing to an external source.
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ function throttledDebounce(callback, maxDebounceTimes, debounceDelay) {
|
|||||||
async function fetchPageContent(pageData) {
|
async function fetchPageContent(pageData) {
|
||||||
// TODO: handle non 200 status codes/time outs
|
// TODO: handle non 200 status codes/time outs
|
||||||
// TODO: add retries
|
// TODO: add retries
|
||||||
const response = await fetch(`${pageData.baseUrl}/api/pages/${pageData.slug}/content/`);
|
const response = await fetch(`${pageData.baseURL}/api/pages/${pageData.slug}/content/`);
|
||||||
const content = await response.text();
|
const content = await response.text();
|
||||||
|
|
||||||
return content;
|
return content;
|
||||||
|
@ -6,22 +6,23 @@
|
|||||||
<script>
|
<script>
|
||||||
const pageData = {
|
const pageData = {
|
||||||
slug: "{{ .Page.Slug }}",
|
slug: "{{ .Page.Slug }}",
|
||||||
baseUrl: "{{ .App.Config.Server.BaseUrl }}",
|
baseURL: "{{ .App.Config.Server.BaseURL }}",
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ define "document-root-attrs" }}class="{{ if .App.Config.Theme.Light }}light-scheme {{ end }}{{ if ne "" .Page.Width }}page-width-{{ .Page.Width }}{{ end }}"{{ end }}
|
{{ define "document-root-attrs" }}class="{{ if .App.Config.Theme.Light }}light-scheme {{ end }}{{ if ne "" .Page.Width }}page-width-{{ .Page.Width }}{{ end }}"{{ end }}
|
||||||
|
|
||||||
{{ define "document-head-after" }}
|
{{ define "document-head-after" }}
|
||||||
{{ template "page-style-overrides.gotmpl" . }}
|
{{ template "page-style-overrides.gotmpl" . }}
|
||||||
{{ if ne "" .App.Config.Theme.CustomCSSFile }}
|
{{ if ne "" .App.Config.Theme.CustomCSSFile }}
|
||||||
<link rel="stylesheet" href="{{ .App.Config.Server.BaseUrl }}{{ .App.Config.Theme.CustomCSSFile }}?v={{ .App.Config.Server.StartedAt.Unix }}">
|
<link rel="stylesheet" href="{{ .App.Config.Theme.CustomCSSFile }}?v={{ .App.Config.Server.StartedAt.Unix }}">
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ define "navigation-links" }}
|
{{ define "navigation-links" }}
|
||||||
{{ range .App.Config.Pages }}
|
{{ range .App.Config.Pages }}
|
||||||
<a href="{{ $.App.Config.Server.BaseUrl }}/{{ .Slug }}" class="nav-item{{ if eq .Slug $.Page.Slug }} nav-item-current{{ end }}">{{ .Title }}</a>
|
<a href="{{ $.App.Config.Server.BaseURL }}/{{ .Slug }}" class="nav-item{{ if eq .Slug $.Page.Slug }} nav-item-current{{ end }}">{{ .Title }}</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ type Server struct {
|
|||||||
Host string `yaml:"host"`
|
Host string `yaml:"host"`
|
||||||
Port uint16 `yaml:"port"`
|
Port uint16 `yaml:"port"`
|
||||||
AssetsPath string `yaml:"assets-path"`
|
AssetsPath string `yaml:"assets-path"`
|
||||||
BaseUrl string `yaml:"base-url"`
|
BaseURL string `yaml:"base-url"`
|
||||||
AssetsHash string `yaml:"-"`
|
AssetsHash string `yaml:"-"`
|
||||||
StartedAt time.Time `yaml:"-"` // used in custom css file
|
StartedAt time.Time `yaml:"-"` // used in custom css file
|
||||||
}
|
}
|
||||||
@ -131,6 +131,14 @@ func NewApplication(config *Config) (*Application, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config = &app.Config
|
||||||
|
|
||||||
|
if config.Server.BaseURL != "" &&
|
||||||
|
config.Theme.CustomCSSFile != "" &&
|
||||||
|
strings.HasPrefix(config.Theme.CustomCSSFile, "/assets/") {
|
||||||
|
config.Theme.CustomCSSFile = config.Server.BaseURL + config.Theme.CustomCSSFile
|
||||||
|
}
|
||||||
|
|
||||||
return app, nil
|
return app, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,7 +232,7 @@ func (a *Application) HandleWidgetRequest(w http.ResponseWriter, r *http.Request
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *Application) AssetPath(asset string) string {
|
func (a *Application) AssetPath(asset string) string {
|
||||||
return "/static/" + a.Config.Server.AssetsHash + "/" + asset
|
return a.Config.Server.BaseURL + "/static/" + a.Config.Server.AssetsHash + "/" + asset
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Application) Serve() error {
|
func (a *Application) Serve() error {
|
||||||
@ -263,7 +271,7 @@ func (a *Application) Serve() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
a.Config.Server.StartedAt = time.Now()
|
a.Config.Server.StartedAt = time.Now()
|
||||||
slog.Info("Starting server", "host", a.Config.Server.Host, "port", a.Config.Server.Port, "base url", a.Config.Server.BaseUrl)
|
slog.Info("Starting server", "host", a.Config.Server.Host, "port", a.Config.Server.Port, "base-url", a.Config.Server.BaseURL)
|
||||||
|
|
||||||
return server.ListenAndServe()
|
return server.ListenAndServe()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user