Files
cairnobs/web/src/routes/+page.svelte
T
jcoffey-dev c920e0f2c4 Finish the Cairn OBS rename through services, docs, and assets
The rename commit before this one covered module paths and the obvious
user-facing strings; this is the rest of it -- the places where "sentry"
was a default value, a filename, or a picture rather than a word in a
sentence.

Defaults that changed: CLICKHOUSE_DATABASE (sentry -> cairnobs),
POSTGRES_DATABASE (sentry_metadata -> cairnobs_metadata), and
POSTGRES_USERNAME (sentry -> cairnobs), across api/alerting/ingest and
the enterprise binaries, plus the compose files and migrate scripts that
create those objects. These are *defaults*, so a deployment that sets
them explicitly is unaffected -- but any deployment relying on the old
defaults must have its environment updated before it picks this up, or
it will come up pointing at a database that doesn't exist.

Also: the light-mode logo variants (the dark ones existed alone, so the
landing page and sidebar rendered a dark mark on a light background),
regenerated favicons, and the docs/README/threat-model prose that still
said Sentry.
2026-08-22 16:12:08 -07:00

85 lines
2.3 KiB
Svelte

<script lang="ts">
// Landing page -- the app's first stop after login, distinct from
// /search (the old root; every prior link/shortcut/drill-down that
// used to point at "/" expecting the query page now points at
// "/search" explicitly, see NavSidebar/CommandPalette/drilldown.ts).
import logoDark from '$lib/assets/logo-stacked-dark.svg';
import logoLight from '$lib/assets/logo-stacked-light.svg';
import { isLight } from '$lib/theme.svelte';
import { Button } from '$lib/components/ui';
const shortcuts: { href: string; label: string; hint: string }[] = [
{ href: '/search', label: 'Search', hint: 'Query logs with filters, free-text, or raw SQL' },
{ href: '/dashboards', label: 'Dashboards', hint: 'Saved multi-panel views over your queries' },
{ href: '/agents', label: 'Agents', hint: 'Everything reporting logs, and its config' },
{ href: '/hosts', label: 'Hosts', hint: 'Per-host log volume and service breakdown' }
];
</script>
<main>
<img src={isLight() ? logoLight : logoDark} alt="Cairn OBS" class="logo" />
<p class="tagline">
One query bar for filter/stats queries and free-text search across every host and service
you're shipping logs from.
</p>
<div class="shortcuts">
{#each shortcuts as s (s.href)}
<Button href={s.href} variant="secondary">
<span class="shortcut-label">{s.label}</span>
<span class="shortcut-hint">{s.hint}</span>
</Button>
{/each}
</div>
</main>
<style>
main {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
max-width: 40rem;
margin: 0 auto;
padding-top: var(--space-8, 4rem);
}
.logo {
width: 11rem;
height: 11rem;
}
.tagline {
margin-top: var(--space-4);
color: var(--color-text-muted);
max-width: 32rem;
}
.shortcuts {
margin-top: var(--space-6);
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-3);
width: 100%;
}
.shortcuts :global(.btn) {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--space-1);
height: auto;
padding: var(--space-3) var(--space-4);
text-align: left;
}
.shortcut-label {
font-weight: var(--font-weight-medium);
}
.shortcut-hint {
font-size: var(--text-xs);
color: var(--color-text-muted);
font-weight: var(--font-weight-normal);
}
@media (max-width: 30rem) {
.shortcuts {
grid-template-columns: 1fr;
}
}
</style>