Overhaul: real metrics, Git integration UI, open-source hygiene, root cleanup

Backend:
- GET /services/:id/metrics with real Docker container stats
- DELETE /git/providers/:id and GET repo branches endpoint

Frontend:
- Service detail shows real telemetry or honest empty states
- Live status distinguishes idle/polling/reconnecting
- Git providers section in Settings; repo+branch pickers in Add Service
- Real logo, compact Projects header, canvas fitView fix
- index.css deduplicated (1725 -> 1384 lines)
- Fixed smoke tests, lint errors, ToastProvider/context unification

Repo hygiene:
- Added LICENSE (MIT), CONTRIBUTING.md, SECURITY.md; rewrote README
- Untracked .env.prod and data/letsencrypt secrets; fixed .gitignore
- Removed legacy root src/internal/cmd and stale configs/docs/artifacts
- Moved guides and design references under docs/

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Tomas DvorakandDevin committed 2026-09-15 18:59:40 +02:00
1 parent 355a97bab4
commit 9f3b196032
499 files changed
+4471 -94235

No files matched your search

+5 -16
View File
@@ -64,22 +64,11 @@ services:
CONTAINR_AGENT_AUTH_TOKENS: ${CONTAINR_AGENT_AUTH_TOKENS:-}
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-}
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-}
GITLAB_CLIENT_ID: ${GITLAB_CLIENT_ID:-PLACEHOLDER_GITLAB_CLIENT_ID}
GITLAB_CLIENT_SECRET: ${GITLAB_CLIENT_SECRET:-PLACEHOLDER_GITLAB_CLIENT_SECRET}
GITLAB_OAUTH_AUTHORIZE_URL: ${GITLAB_OAUTH_AUTHORIZE_URL:-https://gitlab.com/oauth/authorize}
GITLAB_OAUTH_TOKEN_URL: ${GITLAB_OAUTH_TOKEN_URL:-https://gitlab.com/oauth/token}
GITLAB_OAUTH_USERINFO_URL: ${GITLAB_OAUTH_USERINFO_URL:-https://gitlab.com/api/v4/user}
BITBUCKET_CLIENT_ID: ${BITBUCKET_CLIENT_ID:-PLACEHOLDER_BITBUCKET_CLIENT_ID}
BITBUCKET_CLIENT_SECRET: ${BITBUCKET_CLIENT_SECRET:-PLACEHOLDER_BITBUCKET_CLIENT_SECRET}
BITBUCKET_OAUTH_AUTHORIZE_URL: ${BITBUCKET_OAUTH_AUTHORIZE_URL:-https://bitbucket.org/site/oauth2/authorize}
BITBUCKET_OAUTH_TOKEN_URL: ${BITBUCKET_OAUTH_TOKEN_URL:-https://bitbucket.org/site/oauth2/access_token}
BITBUCKET_OAUTH_USERINFO_URL: ${BITBUCKET_OAUTH_USERINFO_URL:-https://api.bitbucket.org/2.0/user}
BITBUCKET_OAUTH_EMAILS_URL: ${BITBUCKET_OAUTH_EMAILS_URL:-https://api.bitbucket.org/2.0/user/emails}
GITEA_CLIENT_ID: ${GITEA_CLIENT_ID:-PLACEHOLDER_GITEA_CLIENT_ID}
GITEA_CLIENT_SECRET: ${GITEA_CLIENT_SECRET:-PLACEHOLDER_GITEA_CLIENT_SECRET}
GITEA_OAUTH_AUTHORIZE_URL: ${GITEA_OAUTH_AUTHORIZE_URL:-https://gitea.example.com/login/oauth/authorize}
GITEA_OAUTH_TOKEN_URL: ${GITEA_OAUTH_TOKEN_URL:-https://gitea.example.com/login/oauth/access_token}
GITEA_OAUTH_USERINFO_URL: ${GITEA_OAUTH_USERINFO_URL:-https://gitea.example.com/api/v1/user}
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
CONTAINR_UPGRADE_IMAGE_REF: ${CONTAINR_UPGRADE_IMAGE_REF:-}
GITHUB_CONTAINER_REGISTRY_USER: ${GITHUB_CONTAINER_REGISTRY_USER:-}
GITHUB_CONTAINER_REGISTRY_TOKEN: ${GITHUB_CONTAINER_REGISTRY_TOKEN:-}
GITHUB_APP_ID: ${GITHUB_APP_ID:-}
GITHUB_APP_SLUG: ${GITHUB_APP_SLUG:-}
GITHUB_APP_PRIVATE_KEY: ${GITHUB_APP_PRIVATE_KEY:-}