Skip to content

Commit 386372d

Browse files
author
rb
committed
Initial release
0 parents  commit 386372d

542 files changed

Lines changed: 64409 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Keep runtime config and data out of the image — these belong on volumes.
2+
# Without this, `COPY backend/ /app/` would bake host-local files (sometimes
3+
# with restrictive permissions) into the image and shadow the volume mounts.
4+
5+
# Runtime config & state
6+
backend/backends.json
7+
backend/boards/
8+
backend/maps/
9+
backend/data/
10+
data/
11+
*.db
12+
*.db-shm
13+
*.db-wal
14+
15+
# Env / secrets
16+
.env
17+
.env.*
18+
!.env.example
19+
20+
# Python build/test artifacts
21+
**/__pycache__/
22+
**/*.py[cod]
23+
**/.venv/
24+
**/venv/
25+
**/*.egg-info/
26+
**/.pytest_cache/
27+
**/.mypy_cache/
28+
**/.ruff_cache/
29+
**/.coverage
30+
**/htmlcov/
31+
32+
# Node
33+
**/node_modules/
34+
frontend/dist/
35+
frontend/coverage/
36+
37+
# VCS / IDE / misc
38+
.git/
39+
.github/
40+
.idea/
41+
.vscode/
42+
.claude/
43+
*.swp
44+
45+
# Screenshots / packaging artifacts
46+
*.png
47+
!frontend/public/*.png
48+
!frontend/src/**/*.png
49+
!docs/**/*.png
50+
*.mkp
51+
sbom-*.cdx.json
52+
.playwright-mcp/

.editorconfig

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# To see what this is about, have a look at
2+
# https://editorconfig.org/
3+
4+
root = true
5+
6+
[*]
7+
end_of_line = lf
8+
insert_final_newline = true
9+
indent_style = space
10+
indent_size = 4
11+
tab_width = 8
12+
charset = utf-8
13+
14+
[*.{bat,ps1,vbs,cmd}]
15+
end_of_line = crlf
16+
17+
[*.{md,rst}]
18+
max_line_length = 80
19+
20+
[active_checks/check_*]
21+
max_line_length = 100
22+
23+
[checks/[!.]*]
24+
max_line_length = 100
25+
26+
[*.{cc,h,js,py,pl,pm,t}]
27+
trim_trailing_whitespace = true
28+
29+
[*.{cc,h}]
30+
max_line_length = 100
31+
32+
[*.{js,py,pl,pm,t}]
33+
max_line_length = 100
34+
35+
[{*.scss,package.json,.envrc}]
36+
indent_size = 2
37+
38+
[{Makefile,*.make,*.am}]
39+
indent_style = tab

.env.example

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Copy this file to .env and adjust as needed.
2+
3+
# Port OrbVis listens on (default: 8082)
4+
# ORBVIS_PORT=8082
5+
6+
# Secret key for JWT signing — change this in production!
7+
# SECRET_KEY=change-me-in-production

.github/BRANCH_PROTECTION.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Branch-Protection für `main`
2+
3+
Die GitHub-Settings sind nicht Teil des Repository-Codes und können deshalb
4+
nicht per PR eingespielt werden. Dieser Leitfaden zeigt, wie der Owner die
5+
empfohlenen Schutzregeln setzt — entweder per `gh` CLI oder im Web-UI.
6+
7+
## Empfohlenes Regelset
8+
9+
Für den `main`-Branch:
10+
11+
1. **Require pull request before merging** — direkte Pushes blockiert
12+
- Required reviews: 1 (bei Solo-Maintainer: self-review genügt nicht, aber
13+
die Owner-Overrides funktionieren)
14+
- Dismiss stale approvals on new commits: on
15+
2. **Require status checks to pass before merging** — CI muss grün sein
16+
- Alle Jobs aus `backend.yml`, `frontend.yml`, `scripts.yml`, `pre-commit.yml`
17+
3. **Require branches to be up to date before merging** — kein veralteter Branch-Merge
18+
4. **Do not allow bypassing the above settings** — auch für Admins
19+
5. **Restrict who can push to matching branches** — nur Maintainer-Team
20+
6. **Allow force pushes****off**
21+
7. **Allow deletions****off**
22+
23+
## gh-CLI Setup
24+
25+
Die `gh api`-Aufrufe unten legen die Regeln an. `REPO` muss als
26+
`owner/repo` gesetzt sein (`gh repo view --json nameWithOwner -q .nameWithOwner`).
27+
28+
```bash
29+
REPO="makanakoeln/orbvis"
30+
31+
gh api -X PUT "repos/${REPO}/branches/main/protection" \
32+
-H "Accept: application/vnd.github+json" \
33+
-F 'required_status_checks[strict]=true' \
34+
-F 'required_status_checks[contexts][]=backend' \
35+
-F 'required_status_checks[contexts][]=docker-build-backend' \
36+
-F 'required_status_checks[contexts][]=frontend' \
37+
-F 'required_status_checks[contexts][]=shellcheck' \
38+
-F 'required_status_checks[contexts][]=pre-commit' \
39+
-F 'enforce_admins=true' \
40+
-F 'required_pull_request_reviews[required_approving_review_count]=1' \
41+
-F 'required_pull_request_reviews[dismiss_stale_reviews]=true' \
42+
-F 'restrictions=' \
43+
-F 'allow_force_pushes=false' \
44+
-F 'allow_deletions=false'
45+
```
46+
47+
## Web-UI-Äquivalent
48+
49+
`Settings → Branches → Branch protection rules → Add rule`:
50+
51+
- **Branch name pattern:** `main`
52+
- Aktiviere alles aus dem Regelset oben.
53+
- Die Checks-Namen erscheinen erst, nachdem der jeweilige Workflow einmal
54+
auf `main` gelaufen ist — sonst ist die Auswahlliste leer.
55+
56+
## Prüfen
57+
58+
```bash
59+
gh api "repos/${REPO}/branches/main/protection" | jq
60+
```
61+
62+
sollte die gesetzten Regeln zurückgeben (keine 404).
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
name: Bug report
3+
about: Report a reproducible problem in OrbVis
4+
title: ""
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Description
10+
11+
A clear, concise description of the bug.
12+
13+
## Steps to reproduce
14+
15+
1. Go to '...'
16+
2. Click on '...'
17+
3. See error
18+
19+
## Expected behaviour
20+
21+
What you expected to happen.
22+
23+
## Actual behaviour
24+
25+
What actually happened. Include screenshots, video, or copied error
26+
messages where helpful.
27+
28+
## Environment
29+
30+
- OrbVis version: <!-- e.g. 0.1.0 -->
31+
- Install method: <!-- MKP / .deb / .rpm / Docker / from source -->
32+
- Checkmk version (if applicable): <!-- e.g. 2.3.0p15, 2.4.0p2, n/a -->
33+
- OS / distribution: <!-- e.g. Ubuntu 22.04, RHEL 9 -->
34+
- Browser (for UI bugs): <!-- e.g. Firefox 142, Chrome 131 -->
35+
36+
## Logs
37+
38+
```
39+
# backend (standalone)
40+
sudo journalctl -u orbvis --no-pager -n 200
41+
42+
# backend (OMD site)
43+
omd su <site>; tail -n 200 ~/var/log/orbvis.log
44+
45+
# browser console (F12 → Console tab) for frontend bugs
46+
```
47+
48+
Paste relevant excerpts here. Redact hostnames or other sensitive data.
49+
50+
## Additional context
51+
52+
Anything else that might be relevant — recent upgrade, custom backend
53+
config, related issues.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security vulnerability
4+
url: https://github.com/makanakoeln/orbvis/security/advisories/new
5+
about: Please report security issues privately, not in public issues. See SECURITY.md.
6+
- name: Question / Discussion
7+
url: https://github.com/makanakoeln/orbvis/discussions
8+
about: For general questions, ideas, or discussions, use GitHub Discussions.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Feature request
3+
about: Suggest a new feature or improvement
4+
title: ""
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Problem / use case
10+
11+
What are you trying to do? What's the pain point today?
12+
13+
## Proposed solution
14+
15+
What would the feature look like from a user's perspective?
16+
17+
## Alternatives considered
18+
19+
Other approaches you've thought about, and why they don't fit.
20+
21+
## NagVis equivalence (if applicable)
22+
23+
If NagVis already does this, describe how — that helps us judge whether
24+
this is a parity feature or a new capability.
25+
26+
## Additional context
27+
28+
Mockups, screenshots, links to related issues, etc.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
## Summary
2+
3+
<!-- 1-3 bullets describing what this PR does and why. -->
4+
5+
## Type of change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] Refactor (no behaviour change)
10+
- [ ] Documentation
11+
- [ ] CI / tooling
12+
- [ ] Security fix
13+
14+
## Test plan
15+
16+
<!-- How did you verify the change? Include manual steps for UI changes. -->
17+
18+
- [ ] Backend tests pass: `cd backend && pytest`
19+
- [ ] Frontend tests pass: `cd frontend && npm test`
20+
- [ ] Linters pass: `make precommit` and `cd frontend && npm run lint && npm run typecheck`
21+
- [ ] Manual UI smoke test (if frontend touched)
22+
- [ ] MKP build verified on a fresh OMD site (if MKP/install touched)
23+
24+
## Screenshots / video
25+
26+
<!-- For UI changes. Drag-and-drop into the GitHub editor. -->
27+
28+
## Breaking changes
29+
30+
- [ ] None
31+
- [ ] Yes — described in CHANGELOG and below:
32+
33+
<!-- Describe the breaking change and migration path. -->
34+
35+
## Checklist
36+
37+
- [ ] Commit subject follows `<scope>: <what changed>` (lowercase, imperative)
38+
- [ ] No `Co-Authored-By` lines in commits
39+
- [ ] CHANGELOG.md updated for user-visible changes
40+
- [ ] Docs updated if behaviour or config changed
41+
- [ ] No new `any` / `eslint-disable` / `# type: ignore` without justification

.github/dependabot.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /frontend
5+
schedule:
6+
interval: weekly
7+
open-pull-requests-limit: 5
8+
9+
- package-ecosystem: pip
10+
directory: /backend
11+
schedule:
12+
interval: weekly
13+
open-pull-requests-limit: 5
14+
15+
- package-ecosystem: github-actions
16+
directory: /
17+
schedule:
18+
interval: weekly
19+
open-pull-requests-limit: 5

0 commit comments

Comments
 (0)