From f1163cff9be8effce3d1f118d5a8ce707f84f0f6 Mon Sep 17 00:00:00 2001 From: 07calc Date: Sun, 29 Mar 2026 17:43:51 +0530 Subject: [PATCH 1/5] chore: folder structure refac --- Todo.md | 45 ------------------ apps/client-cli/.gitkeep | 0 {server => apps/daemon}/Dockerfile | 0 {server => apps/daemon}/api/RegisterRoutes.go | 0 .../daemon}/api/handlers/Response.go | 0 .../handlers/applications/containerControl.go | 0 .../api/handlers/applications/create.go | 0 .../api/handlers/applications/delete.go | 0 .../api/handlers/applications/domains.go | 0 .../daemon}/api/handlers/applications/envs.go | 0 .../daemon}/api/handlers/applications/get.go | 0 .../api/handlers/applications/getById.go | 0 .../handlers/applications/getLatestCommit.go | 0 .../api/handlers/applications/preview.go | 0 .../api/handlers/applications/update.go | 0 .../api/handlers/applications/volumes.go | 0 .../daemon}/api/handlers/auditlogs/getAll.go | 0 .../api/handlers/auditlogs/getByResource.go | 0 .../daemon}/api/handlers/auth/login.go | 0 .../daemon}/api/handlers/auth/logout.go | 0 .../daemon}/api/handlers/auth/me.go | 0 .../daemon}/api/handlers/auth/signup.go | 0 .../handlers/deployments/AddDeployHandler.go | 0 .../api/handlers/deployments/getByAppId.go | 0 .../handlers/deployments/getCompletedLogs.go | 0 .../api/handlers/deployments/logsHandler.go | 0 .../handlers/deployments/stopDeployment.go | 0 .../daemon}/api/handlers/github/createApp.go | 0 .../daemon}/api/handlers/github/getApp.go | 0 .../api/handlers/github/getBranches.go | 0 .../api/handlers/github/installation.go | 0 .../daemon}/api/handlers/github/main.go | 0 .../daemon}/api/handlers/github/manifest.go | 0 .../api/handlers/github/repositories.go | 0 .../daemon}/api/handlers/github/webhook.go | 0 .../api/handlers/healthCheckHandler.go | 0 .../api/handlers/projects/createProject.go | 0 .../api/handlers/projects/deleteProject.go | 0 .../api/handlers/projects/getProjectFromId.go | 0 .../api/handlers/projects/getProjects.go | 0 .../api/handlers/projects/updateMembers.go | 0 .../api/handlers/projects/updateProject.go | 0 .../api/handlers/settings/dockerCleanup.go | 0 .../api/handlers/settings/systemSettings.go | 0 .../daemon}/api/handlers/templates/list.go | 0 .../daemon}/api/handlers/updates/history.go | 0 .../daemon}/api/handlers/updates/update.go | 0 .../daemon}/api/handlers/updates/version.go | 0 .../daemon}/api/handlers/users/createUser.go | 0 .../daemon}/api/handlers/users/deleteUser.go | 0 .../daemon}/api/handlers/users/getUserById.go | 0 .../daemon}/api/handlers/users/getUsers.go | 0 .../api/handlers/users/gitProviders.go | 0 .../api/handlers/users/updatePassword.go | 0 .../daemon}/api/handlers/users/updateUser.go | 0 .../api/handlers/users/uploadAvatar.go | 0 {server => apps/daemon}/api/main.go | 0 .../daemon}/api/middleware/auth.go | 0 .../daemon}/api/middleware/logger.go | 0 .../daemon}/compose/composeDeployer.go | 0 {server => apps/daemon}/compose/down.go | 0 {server => apps/daemon}/compose/logs.go | 0 {server => apps/daemon}/compose/restart.go | 0 {server => apps/daemon}/compose/status.go | 0 {server => apps/daemon}/compose/up.go | 0 {server => apps/daemon}/constants/constant.go | 0 {server => apps/daemon}/db/main.go | 0 {server => apps/daemon}/db/migrations.go | 0 .../daemon}/db/migrations_archive.go | 0 .../db/migrations_archive/001_Create_User.sql | 0 .../002_Create_Projects.sql | 0 .../003_Create_Project_members.sql | 0 .../004_Create_GitProviders.sql | 0 .../db/migrations_archive/005_Create_App.sql | 0 .../006_Create_Github_app.sql | 0 .../007_Create_Github_installations.sql | 0 .../008_Create_App_repositories.sql | 0 .../009_Create_deployments.sql | 0 .../db/migrations_archive/010_Create_Envs.sql | 0 .../migrations_archive/011_Create_domains.sql | 0 .../migrations_archive/012_Create_Volumes.sql | 0 .../db/migrations_archive/013_Create_Cron.sql | 0 .../014_Create_Registries.sql | 0 .../015_Create_System_settings.sql | 0 .../db/migrations_archive/016_Create_Logs.sql | 0 .../017_Create_Audit_logs.sql | 0 .../018_Create_Service_templates.sql | 0 .../019_Create_Api_tokens.sql | 0 .../020_Create_Sessions.sql | 0 .../021_Create_Notifications.sql | 0 .../migrations_archive/022_Create_Backups.sql | 0 .../023_Add_DNS_validation.sql | 0 .../024_Add_Wildcard_domain_settings.sql | 0 .../025_Add_Missing_Indexes.sql | 0 .../026_Add_Version_SystemSettings.sql | 0 .../027_Create_UpdateLogs.sql | 0 .../028_Version_bump_v1.0.1.sql | 0 .../029_Version_Bump_v1.0.2.sql | 0 .../030_Version_bump_v1.0.3.sql | 0 {server => apps/daemon}/docker/cleanup.go | 0 {server => apps/daemon}/docker/container.go | 0 {server => apps/daemon}/docker/deployer.go | 0 .../daemon}/docker/deployerMain.go | 0 {server => apps/daemon}/docker/image.go | 0 .../daemon}/docker/loadDeployment.go | 0 {server => apps/daemon}/docker/runtime.go | 0 {server => apps/daemon}/docker/utils.go | 0 {server => apps/daemon}/fs/createDir.go | 0 .../daemon}/fs/createDockerBuildLogFile.go | 0 {server => apps/daemon}/git/clone.go | 0 {server => apps/daemon}/git/commit.go | 0 {server => apps/daemon}/git/types.go | 0 {server => apps/daemon}/github/deployment.go | 0 .../daemon}/github/generateGithubJwt.go | 0 .../daemon}/github/getAccessToken.go | 0 {server => apps/daemon}/github/getBrances.go | 0 .../daemon}/github/getLatestCommit.go | 0 {server => apps/daemon}/github/repo.go | 0 {server => apps/daemon}/github/types.go | 0 {server => apps/daemon}/github/webHook.go | 0 {server => apps/daemon}/go.mod | 0 {server => apps/daemon}/go.sum | 0 {server => apps/daemon}/lib/cleanup.go | 0 {server => apps/daemon}/main.go | 0 {server => apps/daemon}/models/apiToken.go | 0 {server => apps/daemon}/models/app.go | 0 .../daemon}/models/appRepositories.go | 0 {server => apps/daemon}/models/auditLog.go | 0 {server => apps/daemon}/models/backup.go | 0 {server => apps/daemon}/models/cron.go | 0 {server => apps/daemon}/models/deployment.go | 0 {server => apps/daemon}/models/domain.go | 0 {server => apps/daemon}/models/envVariable.go | 0 {server => apps/daemon}/models/gitProvider.go | 0 {server => apps/daemon}/models/github.go | 0 {server => apps/daemon}/models/logs.go | 0 {server => apps/daemon}/models/main.go | 0 {server => apps/daemon}/models/misc.go | 0 .../daemon}/models/notification.go | 0 {server => apps/daemon}/models/project.go | 0 .../daemon}/models/projectMembers.go | 0 {server => apps/daemon}/models/registries.go | 0 .../daemon}/models/serviceTemplate.go | 0 {server => apps/daemon}/models/services.go | 0 {server => apps/daemon}/models/session.go | 0 .../daemon}/models/systemSettings.go | 0 {server => apps/daemon}/models/temp.go | 0 {server => apps/daemon}/models/updateLog.go | 0 {server => apps/daemon}/models/user.go | 0 {server => apps/daemon}/models/volume.go | 0 {server => apps/daemon}/queue/ctxManager.go | 0 {server => apps/daemon}/queue/deployQueue.go | 0 {server => apps/daemon}/queue/handleWork.go | 0 {server => apps/daemon}/queue/main.go | 0 .../daemon}/static/assets/index-B2_TCAxh.css | 0 .../daemon}/static/assets/index-BH9kEiR3.js | 0 .../daemon}/static/assets/index-DSToe-oF.js | 0 .../daemon/static}/cloud-computing.png | Bin {server => apps/daemon}/static/index.html | 0 {dash/public => apps/daemon/static}/mist.png | Bin {server => apps/daemon}/store/main.go | 0 .../daemon}/store/setupRequired.go | 0 .../daemon}/utils/deploymentErrors.go | 0 {server => apps/daemon}/utils/dns.go | 0 .../daemon}/utils/generateRandomId.go | 0 .../daemon}/utils/generateRandomString.go | 0 {server => apps/daemon}/utils/logger.go | 0 {server => apps/daemon}/utils/traefik.go | 0 .../daemon}/websockets/containerLogs.go | 0 .../daemon}/websockets/containerStats.go | 0 .../daemon}/websockets/logWatcher.go | 0 {server => apps/daemon}/websockets/main.go | 0 .../daemon}/websockets/originChecker.go | 0 .../daemon}/websockets/statusWatcher.go | 0 .../daemon}/websockets/sysMetrics.go | 0 .../daemon}/websockets/systemLogs.go | 0 {cli => apps/server-cli}/cmd/db.go | 0 {cli => apps/server-cli}/cmd/settings.go | 0 {cli => apps/server-cli}/cmd/user.go | 0 {cli => apps/server-cli}/go.mod | 0 {cli => apps/server-cli}/go.sum | 0 {cli => apps/server-cli}/main.go | 0 {dash => apps/web}/.gitignore | 0 {dash => apps/web}/README.md | 0 {dash => apps/web}/bun.lock | 0 {dash => apps/web}/components.json | 0 {dash => apps/web}/eslint.config.js | 0 {dash => apps/web}/index.html | 0 {dash => apps/web}/package-lock.json | 0 {dash => apps/web}/package.json | 0 .../web/public}/cloud-computing.png | Bin {server/static => apps/web/public}/mist.png | Bin {dash => apps/web}/src/App.css | 0 {dash => apps/web}/src/App.tsx | 0 {dash => apps/web}/src/Layout.tsx | 0 {dash => apps/web}/src/api/endpoints/auth.ts | 0 .../web}/src/api/endpoints/templates.ts | 0 .../web}/src/api/endpoints/updates.ts | 0 {dash => apps/web}/src/api/index.ts | 0 .../web}/src/components/app-breadcrumbs.tsx | 0 .../web}/src/components/app-sidebar.tsx | 0 .../src/components/applications/app-info.tsx | 0 .../components/applications/app-settings.tsx | 0 .../src/components/applications/app-stats.tsx | 0 .../applications/compose-app-settings.tsx | 0 .../applications/compose-status.tsx | 0 .../applications/container-controls.tsx | 0 .../applications/container-stats.tsx | 0 .../applications/dns-validation.tsx | 0 .../src/components/applications/domains.tsx | 0 .../applications/environment-variables.tsx | 0 .../components/applications/git-config.tsx | 0 .../web}/src/components/applications/index.ts | 0 .../applications/live-logs-viewer.tsx | 0 .../src/components/applications/volumes.tsx | 0 .../src/components/common/error-boundary.tsx | 0 .../web}/src/components/common/form-modal.tsx | 0 .../web}/src/components/common/index.ts | 0 .../src/components/common/loading-spinner.tsx | 0 .../deployments/deployment-list.tsx | 0 .../deployments/deployment-monitor.tsx | 0 .../web}/src/components/deployments/index.ts | 0 .../web}/src/components/logs/index.ts | 0 .../web}/src/components/logs/log-line.tsx | 0 .../web}/src/components/ui/alert.tsx | 0 .../web}/src/components/ui/badge.tsx | 0 .../web}/src/components/ui/breadcrumb.tsx | 0 .../web}/src/components/ui/button.tsx | 0 {dash => apps/web}/src/components/ui/card.tsx | 0 .../web}/src/components/ui/checkbox.tsx | 0 .../web}/src/components/ui/dialog.tsx | 0 .../web}/src/components/ui/dropdown-menu.tsx | 0 .../web}/src/components/ui/field.tsx | 0 .../web}/src/components/ui/input.tsx | 0 .../web}/src/components/ui/label.tsx | 0 .../web}/src/components/ui/select.tsx | 0 .../web}/src/components/ui/separator.tsx | 0 .../web}/src/components/ui/sheet.tsx | 0 .../web}/src/components/ui/sidebar.tsx | 0 .../web}/src/components/ui/skeleton.tsx | 0 .../web}/src/components/ui/sonner.tsx | 0 .../web}/src/components/ui/switch.tsx | 0 {dash => apps/web}/src/components/ui/tabs.tsx | 0 .../web}/src/components/ui/textarea.tsx | 0 .../web}/src/components/ui/tooltip.tsx | 0 .../web}/src/components/version-switcher.tsx | 0 {dash => apps/web}/src/config/app.ts | 0 {dash => apps/web}/src/constants/index.ts | 0 .../src/features/applications/AppPage.tsx | 0 .../features/applications/ComposeAppPage.tsx | 0 .../src/features/auditLogs/AuditLogsPage.tsx | 0 .../auditLogs/components/AuditLogBadges.tsx | 0 .../auditLogs/components/AuditLogDetails.tsx | 0 .../auditLogs/components/AuditLogFilters.tsx | 0 .../auditLogs/components/AuditLogItem.tsx | 0 .../auditLogs/components/AuditLogList.tsx | 0 .../components/PaginationControls.tsx | 0 .../features/auditLogs/components/index.ts | 0 .../features/auditLogs/hooks/useAuditLogs.ts | 0 .../web}/src/features/auditLogs/index.ts | 0 .../auditLogs/utils/auditLogFormatters.ts | 0 .../web}/src/features/auth/LoginPage.tsx | 0 .../web}/src/features/auth/SetupPage.tsx | 0 .../features/auth/components/LoginForm.tsx | 0 .../src/features/auth/components/index.ts | 0 .../features/auth/components/signup-form.tsx | 0 {dash => apps/web}/src/features/auth/index.ts | 0 .../src/features/dashboard/DashboardPage.tsx | 0 .../dashboard/components/ChartCard.tsx | 0 .../dashboard/components/MetricCard.tsx | 0 .../dashboard/components/SystemOverview.tsx | 0 .../features/dashboard/components/index.ts | 0 .../web}/src/features/dashboard/index.ts | 0 .../web}/src/features/dashboard/utils.ts | 0 .../web}/src/features/git/GitPage.tsx | 0 .../git/components/CreateAppModal.tsx | 0 .../features/git/components/GitHubCard.tsx | 0 .../features/git/components/ProviderCard.tsx | 0 .../web}/src/features/git/components/index.ts | 0 {dash => apps/web}/src/features/git/index.ts | 0 {dash => apps/web}/src/features/git/utils.ts | 0 {dash => apps/web}/src/features/index.ts | 0 .../src/features/projects/ProjectPage.tsx | 0 .../src/features/projects/ProjectsPage.tsx | 0 .../features/projects/components/AppCard.tsx | 0 .../projects/components/AppTypeSelection.tsx | 0 .../projects/components/ComposeAppForm.tsx | 0 .../projects/components/CreateAppModal.tsx | 0 .../projects/components/DatabaseForm.tsx | 0 .../components/ManageMembersModal.tsx | 0 .../projects/components/ProjectCard.tsx | 0 .../projects/components/ServiceForm.tsx | 0 .../projects/components/WebAppForm.tsx | 0 .../web}/src/features/projects/index.ts | 0 .../web}/src/features/projects/utils.ts | 0 .../web}/src/features/users/UsersPage.tsx | 0 .../users/components/CreateUserModal.tsx | 0 .../features/users/components/UserCard.tsx | 0 .../src/features/users/components/index.ts | 0 .../web}/src/features/users/index.ts | 0 .../web}/src/features/users/utils.ts | 0 {dash => apps/web}/src/hooks/index.ts | 0 .../web}/src/hooks/use-application.ts | 0 .../web}/src/hooks/use-applications.ts | 0 .../web}/src/hooks/use-container-logs.ts | 0 .../web}/src/hooks/use-deployment-monitor.ts | 0 {dash => apps/web}/src/hooks/use-domains.ts | 0 .../src/hooks/use-environment-variables.ts | 0 {dash => apps/web}/src/hooks/use-mobile.ts | 0 {dash => apps/web}/src/hooks/use-project.ts | 0 {dash => apps/web}/src/hooks/use-projects.ts | 0 {dash => apps/web}/src/hooks/use-users.ts | 0 {dash => apps/web}/src/hooks/use-version.ts | 0 {dash => apps/web}/src/index.css | 0 {dash => apps/web}/src/lib/ansi-parser.ts | 0 {dash => apps/web}/src/lib/utils.ts | 0 {dash => apps/web}/src/main.tsx | 0 {dash => apps/web}/src/pages/Callback.tsx | 0 {dash => apps/web}/src/pages/Databases.tsx | 0 {dash => apps/web}/src/pages/Deployments.tsx | 0 {dash => apps/web}/src/pages/Logs.tsx | 0 {dash => apps/web}/src/pages/Profile.tsx | 0 {dash => apps/web}/src/pages/Settings.tsx | 0 {dash => apps/web}/src/pages/Updates.tsx | 0 .../web}/src/providers/auth-provider.tsx | 0 {dash => apps/web}/src/providers/index.ts | 0 .../web}/src/services/applications.service.ts | 0 .../web}/src/services/auditLogs.service.ts | 0 .../web}/src/services/auth.service.ts | 0 .../web}/src/services/deployments.service.ts | 0 {dash => apps/web}/src/services/index.ts | 0 .../web}/src/services/projects.service.ts | 0 .../web}/src/services/settings.service.ts | 0 .../web}/src/services/users.service.ts | 0 {dash => apps/web}/src/types/app.ts | 0 {dash => apps/web}/src/types/auditLog.ts | 0 {dash => apps/web}/src/types/common.ts | 0 {dash => apps/web}/src/types/deployment.ts | 0 {dash => apps/web}/src/types/git.ts | 0 {dash => apps/web}/src/types/index.ts | 0 {dash => apps/web}/src/types/project.ts | 0 {dash => apps/web}/src/types/user.ts | 0 .../web}/src/utils/formatters/date.ts | 0 .../web}/src/utils/formatters/text.ts | 0 {dash => apps/web}/tsconfig.app.json | 0 {dash => apps/web}/tsconfig.json | 0 {dash => apps/web}/tsconfig.node.json | 0 {dash => apps/web}/vite.config.ts | 0 .../traefik-compose.yml | 0 .../traefik-static.yml | 0 .../test}/database/database_test.go | 0 {test => integration/test}/go.mod | 0 {test => integration/test}/go.sum | 0 Makefile => scripts/Makefile | 0 install-local.sh => scripts/install-local.sh | 0 install.sh => scripts/install.sh | 0 uninstall.sh => scripts/uninstall.sh | 0 update.sh => scripts/update.sh | 0 www | 1 - 359 files changed, 46 deletions(-) delete mode 100644 Todo.md create mode 100644 apps/client-cli/.gitkeep rename {server => apps/daemon}/Dockerfile (100%) rename {server => apps/daemon}/api/RegisterRoutes.go (100%) rename {server => apps/daemon}/api/handlers/Response.go (100%) rename {server => apps/daemon}/api/handlers/applications/containerControl.go (100%) rename {server => apps/daemon}/api/handlers/applications/create.go (100%) rename {server => apps/daemon}/api/handlers/applications/delete.go (100%) rename {server => apps/daemon}/api/handlers/applications/domains.go (100%) rename {server => apps/daemon}/api/handlers/applications/envs.go (100%) rename {server => apps/daemon}/api/handlers/applications/get.go (100%) rename {server => apps/daemon}/api/handlers/applications/getById.go (100%) rename {server => apps/daemon}/api/handlers/applications/getLatestCommit.go (100%) rename {server => apps/daemon}/api/handlers/applications/preview.go (100%) rename {server => apps/daemon}/api/handlers/applications/update.go (100%) rename {server => apps/daemon}/api/handlers/applications/volumes.go (100%) rename {server => apps/daemon}/api/handlers/auditlogs/getAll.go (100%) rename {server => apps/daemon}/api/handlers/auditlogs/getByResource.go (100%) rename {server => apps/daemon}/api/handlers/auth/login.go (100%) rename {server => apps/daemon}/api/handlers/auth/logout.go (100%) rename {server => apps/daemon}/api/handlers/auth/me.go (100%) rename {server => apps/daemon}/api/handlers/auth/signup.go (100%) rename {server => apps/daemon}/api/handlers/deployments/AddDeployHandler.go (100%) rename {server => apps/daemon}/api/handlers/deployments/getByAppId.go (100%) rename {server => apps/daemon}/api/handlers/deployments/getCompletedLogs.go (100%) rename {server => apps/daemon}/api/handlers/deployments/logsHandler.go (100%) rename {server => apps/daemon}/api/handlers/deployments/stopDeployment.go (100%) rename {server => apps/daemon}/api/handlers/github/createApp.go (100%) rename {server => apps/daemon}/api/handlers/github/getApp.go (100%) rename {server => apps/daemon}/api/handlers/github/getBranches.go (100%) rename {server => apps/daemon}/api/handlers/github/installation.go (100%) rename {server => apps/daemon}/api/handlers/github/main.go (100%) rename {server => apps/daemon}/api/handlers/github/manifest.go (100%) rename {server => apps/daemon}/api/handlers/github/repositories.go (100%) rename {server => apps/daemon}/api/handlers/github/webhook.go (100%) rename {server => apps/daemon}/api/handlers/healthCheckHandler.go (100%) rename {server => apps/daemon}/api/handlers/projects/createProject.go (100%) rename {server => apps/daemon}/api/handlers/projects/deleteProject.go (100%) rename {server => apps/daemon}/api/handlers/projects/getProjectFromId.go (100%) rename {server => apps/daemon}/api/handlers/projects/getProjects.go (100%) rename {server => apps/daemon}/api/handlers/projects/updateMembers.go (100%) rename {server => apps/daemon}/api/handlers/projects/updateProject.go (100%) rename {server => apps/daemon}/api/handlers/settings/dockerCleanup.go (100%) rename {server => apps/daemon}/api/handlers/settings/systemSettings.go (100%) rename {server => apps/daemon}/api/handlers/templates/list.go (100%) rename {server => apps/daemon}/api/handlers/updates/history.go (100%) rename {server => apps/daemon}/api/handlers/updates/update.go (100%) rename {server => apps/daemon}/api/handlers/updates/version.go (100%) rename {server => apps/daemon}/api/handlers/users/createUser.go (100%) rename {server => apps/daemon}/api/handlers/users/deleteUser.go (100%) rename {server => apps/daemon}/api/handlers/users/getUserById.go (100%) rename {server => apps/daemon}/api/handlers/users/getUsers.go (100%) rename {server => apps/daemon}/api/handlers/users/gitProviders.go (100%) rename {server => apps/daemon}/api/handlers/users/updatePassword.go (100%) rename {server => apps/daemon}/api/handlers/users/updateUser.go (100%) rename {server => apps/daemon}/api/handlers/users/uploadAvatar.go (100%) rename {server => apps/daemon}/api/main.go (100%) rename {server => apps/daemon}/api/middleware/auth.go (100%) rename {server => apps/daemon}/api/middleware/logger.go (100%) rename {server => apps/daemon}/compose/composeDeployer.go (100%) rename {server => apps/daemon}/compose/down.go (100%) rename {server => apps/daemon}/compose/logs.go (100%) rename {server => apps/daemon}/compose/restart.go (100%) rename {server => apps/daemon}/compose/status.go (100%) rename {server => apps/daemon}/compose/up.go (100%) rename {server => apps/daemon}/constants/constant.go (100%) rename {server => apps/daemon}/db/main.go (100%) rename {server => apps/daemon}/db/migrations.go (100%) rename {server => apps/daemon}/db/migrations_archive.go (100%) rename {server => apps/daemon}/db/migrations_archive/001_Create_User.sql (100%) rename {server => apps/daemon}/db/migrations_archive/002_Create_Projects.sql (100%) rename {server => apps/daemon}/db/migrations_archive/003_Create_Project_members.sql (100%) rename {server => apps/daemon}/db/migrations_archive/004_Create_GitProviders.sql (100%) rename {server => apps/daemon}/db/migrations_archive/005_Create_App.sql (100%) rename {server => apps/daemon}/db/migrations_archive/006_Create_Github_app.sql (100%) rename {server => apps/daemon}/db/migrations_archive/007_Create_Github_installations.sql (100%) rename {server => apps/daemon}/db/migrations_archive/008_Create_App_repositories.sql (100%) rename {server => apps/daemon}/db/migrations_archive/009_Create_deployments.sql (100%) rename {server => apps/daemon}/db/migrations_archive/010_Create_Envs.sql (100%) rename {server => apps/daemon}/db/migrations_archive/011_Create_domains.sql (100%) rename {server => apps/daemon}/db/migrations_archive/012_Create_Volumes.sql (100%) rename {server => apps/daemon}/db/migrations_archive/013_Create_Cron.sql (100%) rename {server => apps/daemon}/db/migrations_archive/014_Create_Registries.sql (100%) rename {server => apps/daemon}/db/migrations_archive/015_Create_System_settings.sql (100%) rename {server => apps/daemon}/db/migrations_archive/016_Create_Logs.sql (100%) rename {server => apps/daemon}/db/migrations_archive/017_Create_Audit_logs.sql (100%) rename {server => apps/daemon}/db/migrations_archive/018_Create_Service_templates.sql (100%) rename {server => apps/daemon}/db/migrations_archive/019_Create_Api_tokens.sql (100%) rename {server => apps/daemon}/db/migrations_archive/020_Create_Sessions.sql (100%) rename {server => apps/daemon}/db/migrations_archive/021_Create_Notifications.sql (100%) rename {server => apps/daemon}/db/migrations_archive/022_Create_Backups.sql (100%) rename {server => apps/daemon}/db/migrations_archive/023_Add_DNS_validation.sql (100%) rename {server => apps/daemon}/db/migrations_archive/024_Add_Wildcard_domain_settings.sql (100%) rename {server => apps/daemon}/db/migrations_archive/025_Add_Missing_Indexes.sql (100%) rename {server => apps/daemon}/db/migrations_archive/026_Add_Version_SystemSettings.sql (100%) rename {server => apps/daemon}/db/migrations_archive/027_Create_UpdateLogs.sql (100%) rename {server => apps/daemon}/db/migrations_archive/028_Version_bump_v1.0.1.sql (100%) rename {server => apps/daemon}/db/migrations_archive/029_Version_Bump_v1.0.2.sql (100%) rename {server => apps/daemon}/db/migrations_archive/030_Version_bump_v1.0.3.sql (100%) rename {server => apps/daemon}/docker/cleanup.go (100%) rename {server => apps/daemon}/docker/container.go (100%) rename {server => apps/daemon}/docker/deployer.go (100%) rename {server => apps/daemon}/docker/deployerMain.go (100%) rename {server => apps/daemon}/docker/image.go (100%) rename {server => apps/daemon}/docker/loadDeployment.go (100%) rename {server => apps/daemon}/docker/runtime.go (100%) rename {server => apps/daemon}/docker/utils.go (100%) rename {server => apps/daemon}/fs/createDir.go (100%) rename {server => apps/daemon}/fs/createDockerBuildLogFile.go (100%) rename {server => apps/daemon}/git/clone.go (100%) rename {server => apps/daemon}/git/commit.go (100%) rename {server => apps/daemon}/git/types.go (100%) rename {server => apps/daemon}/github/deployment.go (100%) rename {server => apps/daemon}/github/generateGithubJwt.go (100%) rename {server => apps/daemon}/github/getAccessToken.go (100%) rename {server => apps/daemon}/github/getBrances.go (100%) rename {server => apps/daemon}/github/getLatestCommit.go (100%) rename {server => apps/daemon}/github/repo.go (100%) rename {server => apps/daemon}/github/types.go (100%) rename {server => apps/daemon}/github/webHook.go (100%) rename {server => apps/daemon}/go.mod (100%) rename {server => apps/daemon}/go.sum (100%) rename {server => apps/daemon}/lib/cleanup.go (100%) rename {server => apps/daemon}/main.go (100%) rename {server => apps/daemon}/models/apiToken.go (100%) rename {server => apps/daemon}/models/app.go (100%) rename {server => apps/daemon}/models/appRepositories.go (100%) rename {server => apps/daemon}/models/auditLog.go (100%) rename {server => apps/daemon}/models/backup.go (100%) rename {server => apps/daemon}/models/cron.go (100%) rename {server => apps/daemon}/models/deployment.go (100%) rename {server => apps/daemon}/models/domain.go (100%) rename {server => apps/daemon}/models/envVariable.go (100%) rename {server => apps/daemon}/models/gitProvider.go (100%) rename {server => apps/daemon}/models/github.go (100%) rename {server => apps/daemon}/models/logs.go (100%) rename {server => apps/daemon}/models/main.go (100%) rename {server => apps/daemon}/models/misc.go (100%) rename {server => apps/daemon}/models/notification.go (100%) rename {server => apps/daemon}/models/project.go (100%) rename {server => apps/daemon}/models/projectMembers.go (100%) rename {server => apps/daemon}/models/registries.go (100%) rename {server => apps/daemon}/models/serviceTemplate.go (100%) rename {server => apps/daemon}/models/services.go (100%) rename {server => apps/daemon}/models/session.go (100%) rename {server => apps/daemon}/models/systemSettings.go (100%) rename {server => apps/daemon}/models/temp.go (100%) rename {server => apps/daemon}/models/updateLog.go (100%) rename {server => apps/daemon}/models/user.go (100%) rename {server => apps/daemon}/models/volume.go (100%) rename {server => apps/daemon}/queue/ctxManager.go (100%) rename {server => apps/daemon}/queue/deployQueue.go (100%) rename {server => apps/daemon}/queue/handleWork.go (100%) rename {server => apps/daemon}/queue/main.go (100%) rename {server => apps/daemon}/static/assets/index-B2_TCAxh.css (100%) rename {server => apps/daemon}/static/assets/index-BH9kEiR3.js (100%) rename {server => apps/daemon}/static/assets/index-DSToe-oF.js (100%) rename {dash/public => apps/daemon/static}/cloud-computing.png (100%) rename {server => apps/daemon}/static/index.html (100%) rename {dash/public => apps/daemon/static}/mist.png (100%) rename {server => apps/daemon}/store/main.go (100%) rename {server => apps/daemon}/store/setupRequired.go (100%) rename {server => apps/daemon}/utils/deploymentErrors.go (100%) rename {server => apps/daemon}/utils/dns.go (100%) rename {server => apps/daemon}/utils/generateRandomId.go (100%) rename {server => apps/daemon}/utils/generateRandomString.go (100%) rename {server => apps/daemon}/utils/logger.go (100%) rename {server => apps/daemon}/utils/traefik.go (100%) rename {server => apps/daemon}/websockets/containerLogs.go (100%) rename {server => apps/daemon}/websockets/containerStats.go (100%) rename {server => apps/daemon}/websockets/logWatcher.go (100%) rename {server => apps/daemon}/websockets/main.go (100%) rename {server => apps/daemon}/websockets/originChecker.go (100%) rename {server => apps/daemon}/websockets/statusWatcher.go (100%) rename {server => apps/daemon}/websockets/sysMetrics.go (100%) rename {server => apps/daemon}/websockets/systemLogs.go (100%) rename {cli => apps/server-cli}/cmd/db.go (100%) rename {cli => apps/server-cli}/cmd/settings.go (100%) rename {cli => apps/server-cli}/cmd/user.go (100%) rename {cli => apps/server-cli}/go.mod (100%) rename {cli => apps/server-cli}/go.sum (100%) rename {cli => apps/server-cli}/main.go (100%) rename {dash => apps/web}/.gitignore (100%) rename {dash => apps/web}/README.md (100%) rename {dash => apps/web}/bun.lock (100%) rename {dash => apps/web}/components.json (100%) rename {dash => apps/web}/eslint.config.js (100%) rename {dash => apps/web}/index.html (100%) rename {dash => apps/web}/package-lock.json (100%) rename {dash => apps/web}/package.json (100%) rename {server/static => apps/web/public}/cloud-computing.png (100%) rename {server/static => apps/web/public}/mist.png (100%) rename {dash => apps/web}/src/App.css (100%) rename {dash => apps/web}/src/App.tsx (100%) rename {dash => apps/web}/src/Layout.tsx (100%) rename {dash => apps/web}/src/api/endpoints/auth.ts (100%) rename {dash => apps/web}/src/api/endpoints/templates.ts (100%) rename {dash => apps/web}/src/api/endpoints/updates.ts (100%) rename {dash => apps/web}/src/api/index.ts (100%) rename {dash => apps/web}/src/components/app-breadcrumbs.tsx (100%) rename {dash => apps/web}/src/components/app-sidebar.tsx (100%) rename {dash => apps/web}/src/components/applications/app-info.tsx (100%) rename {dash => apps/web}/src/components/applications/app-settings.tsx (100%) rename {dash => apps/web}/src/components/applications/app-stats.tsx (100%) rename {dash => apps/web}/src/components/applications/compose-app-settings.tsx (100%) rename {dash => apps/web}/src/components/applications/compose-status.tsx (100%) rename {dash => apps/web}/src/components/applications/container-controls.tsx (100%) rename {dash => apps/web}/src/components/applications/container-stats.tsx (100%) rename {dash => apps/web}/src/components/applications/dns-validation.tsx (100%) rename {dash => apps/web}/src/components/applications/domains.tsx (100%) rename {dash => apps/web}/src/components/applications/environment-variables.tsx (100%) rename {dash => apps/web}/src/components/applications/git-config.tsx (100%) rename {dash => apps/web}/src/components/applications/index.ts (100%) rename {dash => apps/web}/src/components/applications/live-logs-viewer.tsx (100%) rename {dash => apps/web}/src/components/applications/volumes.tsx (100%) rename {dash => apps/web}/src/components/common/error-boundary.tsx (100%) rename {dash => apps/web}/src/components/common/form-modal.tsx (100%) rename {dash => apps/web}/src/components/common/index.ts (100%) rename {dash => apps/web}/src/components/common/loading-spinner.tsx (100%) rename {dash => apps/web}/src/components/deployments/deployment-list.tsx (100%) rename {dash => apps/web}/src/components/deployments/deployment-monitor.tsx (100%) rename {dash => apps/web}/src/components/deployments/index.ts (100%) rename {dash => apps/web}/src/components/logs/index.ts (100%) rename {dash => apps/web}/src/components/logs/log-line.tsx (100%) rename {dash => apps/web}/src/components/ui/alert.tsx (100%) rename {dash => apps/web}/src/components/ui/badge.tsx (100%) rename {dash => apps/web}/src/components/ui/breadcrumb.tsx (100%) rename {dash => apps/web}/src/components/ui/button.tsx (100%) rename {dash => apps/web}/src/components/ui/card.tsx (100%) rename {dash => apps/web}/src/components/ui/checkbox.tsx (100%) rename {dash => apps/web}/src/components/ui/dialog.tsx (100%) rename {dash => apps/web}/src/components/ui/dropdown-menu.tsx (100%) rename {dash => apps/web}/src/components/ui/field.tsx (100%) rename {dash => apps/web}/src/components/ui/input.tsx (100%) rename {dash => apps/web}/src/components/ui/label.tsx (100%) rename {dash => apps/web}/src/components/ui/select.tsx (100%) rename {dash => apps/web}/src/components/ui/separator.tsx (100%) rename {dash => apps/web}/src/components/ui/sheet.tsx (100%) rename {dash => apps/web}/src/components/ui/sidebar.tsx (100%) rename {dash => apps/web}/src/components/ui/skeleton.tsx (100%) rename {dash => apps/web}/src/components/ui/sonner.tsx (100%) rename {dash => apps/web}/src/components/ui/switch.tsx (100%) rename {dash => apps/web}/src/components/ui/tabs.tsx (100%) rename {dash => apps/web}/src/components/ui/textarea.tsx (100%) rename {dash => apps/web}/src/components/ui/tooltip.tsx (100%) rename {dash => apps/web}/src/components/version-switcher.tsx (100%) rename {dash => apps/web}/src/config/app.ts (100%) rename {dash => apps/web}/src/constants/index.ts (100%) rename {dash => apps/web}/src/features/applications/AppPage.tsx (100%) rename {dash => apps/web}/src/features/applications/ComposeAppPage.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/AuditLogsPage.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/components/AuditLogBadges.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/components/AuditLogDetails.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/components/AuditLogFilters.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/components/AuditLogItem.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/components/AuditLogList.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/components/PaginationControls.tsx (100%) rename {dash => apps/web}/src/features/auditLogs/components/index.ts (100%) rename {dash => apps/web}/src/features/auditLogs/hooks/useAuditLogs.ts (100%) rename {dash => apps/web}/src/features/auditLogs/index.ts (100%) rename {dash => apps/web}/src/features/auditLogs/utils/auditLogFormatters.ts (100%) rename {dash => apps/web}/src/features/auth/LoginPage.tsx (100%) rename {dash => apps/web}/src/features/auth/SetupPage.tsx (100%) rename {dash => apps/web}/src/features/auth/components/LoginForm.tsx (100%) rename {dash => apps/web}/src/features/auth/components/index.ts (100%) rename {dash => apps/web}/src/features/auth/components/signup-form.tsx (100%) rename {dash => apps/web}/src/features/auth/index.ts (100%) rename {dash => apps/web}/src/features/dashboard/DashboardPage.tsx (100%) rename {dash => apps/web}/src/features/dashboard/components/ChartCard.tsx (100%) rename {dash => apps/web}/src/features/dashboard/components/MetricCard.tsx (100%) rename {dash => apps/web}/src/features/dashboard/components/SystemOverview.tsx (100%) rename {dash => apps/web}/src/features/dashboard/components/index.ts (100%) rename {dash => apps/web}/src/features/dashboard/index.ts (100%) rename {dash => apps/web}/src/features/dashboard/utils.ts (100%) rename {dash => apps/web}/src/features/git/GitPage.tsx (100%) rename {dash => apps/web}/src/features/git/components/CreateAppModal.tsx (100%) rename {dash => apps/web}/src/features/git/components/GitHubCard.tsx (100%) rename {dash => apps/web}/src/features/git/components/ProviderCard.tsx (100%) rename {dash => apps/web}/src/features/git/components/index.ts (100%) rename {dash => apps/web}/src/features/git/index.ts (100%) rename {dash => apps/web}/src/features/git/utils.ts (100%) rename {dash => apps/web}/src/features/index.ts (100%) rename {dash => apps/web}/src/features/projects/ProjectPage.tsx (100%) rename {dash => apps/web}/src/features/projects/ProjectsPage.tsx (100%) rename {dash => apps/web}/src/features/projects/components/AppCard.tsx (100%) rename {dash => apps/web}/src/features/projects/components/AppTypeSelection.tsx (100%) rename {dash => apps/web}/src/features/projects/components/ComposeAppForm.tsx (100%) rename {dash => apps/web}/src/features/projects/components/CreateAppModal.tsx (100%) rename {dash => apps/web}/src/features/projects/components/DatabaseForm.tsx (100%) rename {dash => apps/web}/src/features/projects/components/ManageMembersModal.tsx (100%) rename {dash => apps/web}/src/features/projects/components/ProjectCard.tsx (100%) rename {dash => apps/web}/src/features/projects/components/ServiceForm.tsx (100%) rename {dash => apps/web}/src/features/projects/components/WebAppForm.tsx (100%) rename {dash => apps/web}/src/features/projects/index.ts (100%) rename {dash => apps/web}/src/features/projects/utils.ts (100%) rename {dash => apps/web}/src/features/users/UsersPage.tsx (100%) rename {dash => apps/web}/src/features/users/components/CreateUserModal.tsx (100%) rename {dash => apps/web}/src/features/users/components/UserCard.tsx (100%) rename {dash => apps/web}/src/features/users/components/index.ts (100%) rename {dash => apps/web}/src/features/users/index.ts (100%) rename {dash => apps/web}/src/features/users/utils.ts (100%) rename {dash => apps/web}/src/hooks/index.ts (100%) rename {dash => apps/web}/src/hooks/use-application.ts (100%) rename {dash => apps/web}/src/hooks/use-applications.ts (100%) rename {dash => apps/web}/src/hooks/use-container-logs.ts (100%) rename {dash => apps/web}/src/hooks/use-deployment-monitor.ts (100%) rename {dash => apps/web}/src/hooks/use-domains.ts (100%) rename {dash => apps/web}/src/hooks/use-environment-variables.ts (100%) rename {dash => apps/web}/src/hooks/use-mobile.ts (100%) rename {dash => apps/web}/src/hooks/use-project.ts (100%) rename {dash => apps/web}/src/hooks/use-projects.ts (100%) rename {dash => apps/web}/src/hooks/use-users.ts (100%) rename {dash => apps/web}/src/hooks/use-version.ts (100%) rename {dash => apps/web}/src/index.css (100%) rename {dash => apps/web}/src/lib/ansi-parser.ts (100%) rename {dash => apps/web}/src/lib/utils.ts (100%) rename {dash => apps/web}/src/main.tsx (100%) rename {dash => apps/web}/src/pages/Callback.tsx (100%) rename {dash => apps/web}/src/pages/Databases.tsx (100%) rename {dash => apps/web}/src/pages/Deployments.tsx (100%) rename {dash => apps/web}/src/pages/Logs.tsx (100%) rename {dash => apps/web}/src/pages/Profile.tsx (100%) rename {dash => apps/web}/src/pages/Settings.tsx (100%) rename {dash => apps/web}/src/pages/Updates.tsx (100%) rename {dash => apps/web}/src/providers/auth-provider.tsx (100%) rename {dash => apps/web}/src/providers/index.ts (100%) rename {dash => apps/web}/src/services/applications.service.ts (100%) rename {dash => apps/web}/src/services/auditLogs.service.ts (100%) rename {dash => apps/web}/src/services/auth.service.ts (100%) rename {dash => apps/web}/src/services/deployments.service.ts (100%) rename {dash => apps/web}/src/services/index.ts (100%) rename {dash => apps/web}/src/services/projects.service.ts (100%) rename {dash => apps/web}/src/services/settings.service.ts (100%) rename {dash => apps/web}/src/services/users.service.ts (100%) rename {dash => apps/web}/src/types/app.ts (100%) rename {dash => apps/web}/src/types/auditLog.ts (100%) rename {dash => apps/web}/src/types/common.ts (100%) rename {dash => apps/web}/src/types/deployment.ts (100%) rename {dash => apps/web}/src/types/git.ts (100%) rename {dash => apps/web}/src/types/index.ts (100%) rename {dash => apps/web}/src/types/project.ts (100%) rename {dash => apps/web}/src/types/user.ts (100%) rename {dash => apps/web}/src/utils/formatters/date.ts (100%) rename {dash => apps/web}/src/utils/formatters/text.ts (100%) rename {dash => apps/web}/tsconfig.app.json (100%) rename {dash => apps/web}/tsconfig.json (100%) rename {dash => apps/web}/tsconfig.node.json (100%) rename {dash => apps/web}/vite.config.ts (100%) rename traefik-compose.yml => deploy/traefik-compose.yml (100%) rename traefik-static.yml => deploy/traefik-static.yml (100%) rename {test => integration/test}/database/database_test.go (100%) rename {test => integration/test}/go.mod (100%) rename {test => integration/test}/go.sum (100%) rename Makefile => scripts/Makefile (100%) rename install-local.sh => scripts/install-local.sh (100%) rename install.sh => scripts/install.sh (100%) rename uninstall.sh => scripts/uninstall.sh (100%) rename update.sh => scripts/update.sh (100%) delete mode 160000 www diff --git a/Todo.md b/Todo.md deleted file mode 100644 index 2eae491..0000000 --- a/Todo.md +++ /dev/null @@ -1,45 +0,0 @@ -# Todo - -## Server - -- [x] Setup Database -- [x] Setup HTTP API server -- [x] Setup WebSocket server - -- [x] Setup Auth - - [x] first owner user - - [x] JWT - - [x] Role based user creation [admin, user] - -- [ ] Basic CRUD - - [ ] user - - [x] /me route - - [x] user creation by admin - - [x] logout - - [ ] deletion of user by admin - - [ ] projects - - [x] create project - - [x] get all projects - - [x] get single project - - [x] update project - - [x] delete project - - [ ] get apps in that project - - [ ] apps - -- [x] dashboard api - - [x] send live data using ws with timestamp - - [x] cpu usage - - [x] memory usage - - [x] disk usage - - [x] load - - [x] uptime - - [x] cpu temp - -## Dash - -- [ ] make basic pages - - [x] login page - - [x] first user register page - - [x] dashboard page - - [x] users page - - [x] projects page diff --git a/apps/client-cli/.gitkeep b/apps/client-cli/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/server/Dockerfile b/apps/daemon/Dockerfile similarity index 100% rename from server/Dockerfile rename to apps/daemon/Dockerfile diff --git a/server/api/RegisterRoutes.go b/apps/daemon/api/RegisterRoutes.go similarity index 100% rename from server/api/RegisterRoutes.go rename to apps/daemon/api/RegisterRoutes.go diff --git a/server/api/handlers/Response.go b/apps/daemon/api/handlers/Response.go similarity index 100% rename from server/api/handlers/Response.go rename to apps/daemon/api/handlers/Response.go diff --git a/server/api/handlers/applications/containerControl.go b/apps/daemon/api/handlers/applications/containerControl.go similarity index 100% rename from server/api/handlers/applications/containerControl.go rename to apps/daemon/api/handlers/applications/containerControl.go diff --git a/server/api/handlers/applications/create.go b/apps/daemon/api/handlers/applications/create.go similarity index 100% rename from server/api/handlers/applications/create.go rename to apps/daemon/api/handlers/applications/create.go diff --git a/server/api/handlers/applications/delete.go b/apps/daemon/api/handlers/applications/delete.go similarity index 100% rename from server/api/handlers/applications/delete.go rename to apps/daemon/api/handlers/applications/delete.go diff --git a/server/api/handlers/applications/domains.go b/apps/daemon/api/handlers/applications/domains.go similarity index 100% rename from server/api/handlers/applications/domains.go rename to apps/daemon/api/handlers/applications/domains.go diff --git a/server/api/handlers/applications/envs.go b/apps/daemon/api/handlers/applications/envs.go similarity index 100% rename from server/api/handlers/applications/envs.go rename to apps/daemon/api/handlers/applications/envs.go diff --git a/server/api/handlers/applications/get.go b/apps/daemon/api/handlers/applications/get.go similarity index 100% rename from server/api/handlers/applications/get.go rename to apps/daemon/api/handlers/applications/get.go diff --git a/server/api/handlers/applications/getById.go b/apps/daemon/api/handlers/applications/getById.go similarity index 100% rename from server/api/handlers/applications/getById.go rename to apps/daemon/api/handlers/applications/getById.go diff --git a/server/api/handlers/applications/getLatestCommit.go b/apps/daemon/api/handlers/applications/getLatestCommit.go similarity index 100% rename from server/api/handlers/applications/getLatestCommit.go rename to apps/daemon/api/handlers/applications/getLatestCommit.go diff --git a/server/api/handlers/applications/preview.go b/apps/daemon/api/handlers/applications/preview.go similarity index 100% rename from server/api/handlers/applications/preview.go rename to apps/daemon/api/handlers/applications/preview.go diff --git a/server/api/handlers/applications/update.go b/apps/daemon/api/handlers/applications/update.go similarity index 100% rename from server/api/handlers/applications/update.go rename to apps/daemon/api/handlers/applications/update.go diff --git a/server/api/handlers/applications/volumes.go b/apps/daemon/api/handlers/applications/volumes.go similarity index 100% rename from server/api/handlers/applications/volumes.go rename to apps/daemon/api/handlers/applications/volumes.go diff --git a/server/api/handlers/auditlogs/getAll.go b/apps/daemon/api/handlers/auditlogs/getAll.go similarity index 100% rename from server/api/handlers/auditlogs/getAll.go rename to apps/daemon/api/handlers/auditlogs/getAll.go diff --git a/server/api/handlers/auditlogs/getByResource.go b/apps/daemon/api/handlers/auditlogs/getByResource.go similarity index 100% rename from server/api/handlers/auditlogs/getByResource.go rename to apps/daemon/api/handlers/auditlogs/getByResource.go diff --git a/server/api/handlers/auth/login.go b/apps/daemon/api/handlers/auth/login.go similarity index 100% rename from server/api/handlers/auth/login.go rename to apps/daemon/api/handlers/auth/login.go diff --git a/server/api/handlers/auth/logout.go b/apps/daemon/api/handlers/auth/logout.go similarity index 100% rename from server/api/handlers/auth/logout.go rename to apps/daemon/api/handlers/auth/logout.go diff --git a/server/api/handlers/auth/me.go b/apps/daemon/api/handlers/auth/me.go similarity index 100% rename from server/api/handlers/auth/me.go rename to apps/daemon/api/handlers/auth/me.go diff --git a/server/api/handlers/auth/signup.go b/apps/daemon/api/handlers/auth/signup.go similarity index 100% rename from server/api/handlers/auth/signup.go rename to apps/daemon/api/handlers/auth/signup.go diff --git a/server/api/handlers/deployments/AddDeployHandler.go b/apps/daemon/api/handlers/deployments/AddDeployHandler.go similarity index 100% rename from server/api/handlers/deployments/AddDeployHandler.go rename to apps/daemon/api/handlers/deployments/AddDeployHandler.go diff --git a/server/api/handlers/deployments/getByAppId.go b/apps/daemon/api/handlers/deployments/getByAppId.go similarity index 100% rename from server/api/handlers/deployments/getByAppId.go rename to apps/daemon/api/handlers/deployments/getByAppId.go diff --git a/server/api/handlers/deployments/getCompletedLogs.go b/apps/daemon/api/handlers/deployments/getCompletedLogs.go similarity index 100% rename from server/api/handlers/deployments/getCompletedLogs.go rename to apps/daemon/api/handlers/deployments/getCompletedLogs.go diff --git a/server/api/handlers/deployments/logsHandler.go b/apps/daemon/api/handlers/deployments/logsHandler.go similarity index 100% rename from server/api/handlers/deployments/logsHandler.go rename to apps/daemon/api/handlers/deployments/logsHandler.go diff --git a/server/api/handlers/deployments/stopDeployment.go b/apps/daemon/api/handlers/deployments/stopDeployment.go similarity index 100% rename from server/api/handlers/deployments/stopDeployment.go rename to apps/daemon/api/handlers/deployments/stopDeployment.go diff --git a/server/api/handlers/github/createApp.go b/apps/daemon/api/handlers/github/createApp.go similarity index 100% rename from server/api/handlers/github/createApp.go rename to apps/daemon/api/handlers/github/createApp.go diff --git a/server/api/handlers/github/getApp.go b/apps/daemon/api/handlers/github/getApp.go similarity index 100% rename from server/api/handlers/github/getApp.go rename to apps/daemon/api/handlers/github/getApp.go diff --git a/server/api/handlers/github/getBranches.go b/apps/daemon/api/handlers/github/getBranches.go similarity index 100% rename from server/api/handlers/github/getBranches.go rename to apps/daemon/api/handlers/github/getBranches.go diff --git a/server/api/handlers/github/installation.go b/apps/daemon/api/handlers/github/installation.go similarity index 100% rename from server/api/handlers/github/installation.go rename to apps/daemon/api/handlers/github/installation.go diff --git a/server/api/handlers/github/main.go b/apps/daemon/api/handlers/github/main.go similarity index 100% rename from server/api/handlers/github/main.go rename to apps/daemon/api/handlers/github/main.go diff --git a/server/api/handlers/github/manifest.go b/apps/daemon/api/handlers/github/manifest.go similarity index 100% rename from server/api/handlers/github/manifest.go rename to apps/daemon/api/handlers/github/manifest.go diff --git a/server/api/handlers/github/repositories.go b/apps/daemon/api/handlers/github/repositories.go similarity index 100% rename from server/api/handlers/github/repositories.go rename to apps/daemon/api/handlers/github/repositories.go diff --git a/server/api/handlers/github/webhook.go b/apps/daemon/api/handlers/github/webhook.go similarity index 100% rename from server/api/handlers/github/webhook.go rename to apps/daemon/api/handlers/github/webhook.go diff --git a/server/api/handlers/healthCheckHandler.go b/apps/daemon/api/handlers/healthCheckHandler.go similarity index 100% rename from server/api/handlers/healthCheckHandler.go rename to apps/daemon/api/handlers/healthCheckHandler.go diff --git a/server/api/handlers/projects/createProject.go b/apps/daemon/api/handlers/projects/createProject.go similarity index 100% rename from server/api/handlers/projects/createProject.go rename to apps/daemon/api/handlers/projects/createProject.go diff --git a/server/api/handlers/projects/deleteProject.go b/apps/daemon/api/handlers/projects/deleteProject.go similarity index 100% rename from server/api/handlers/projects/deleteProject.go rename to apps/daemon/api/handlers/projects/deleteProject.go diff --git a/server/api/handlers/projects/getProjectFromId.go b/apps/daemon/api/handlers/projects/getProjectFromId.go similarity index 100% rename from server/api/handlers/projects/getProjectFromId.go rename to apps/daemon/api/handlers/projects/getProjectFromId.go diff --git a/server/api/handlers/projects/getProjects.go b/apps/daemon/api/handlers/projects/getProjects.go similarity index 100% rename from server/api/handlers/projects/getProjects.go rename to apps/daemon/api/handlers/projects/getProjects.go diff --git a/server/api/handlers/projects/updateMembers.go b/apps/daemon/api/handlers/projects/updateMembers.go similarity index 100% rename from server/api/handlers/projects/updateMembers.go rename to apps/daemon/api/handlers/projects/updateMembers.go diff --git a/server/api/handlers/projects/updateProject.go b/apps/daemon/api/handlers/projects/updateProject.go similarity index 100% rename from server/api/handlers/projects/updateProject.go rename to apps/daemon/api/handlers/projects/updateProject.go diff --git a/server/api/handlers/settings/dockerCleanup.go b/apps/daemon/api/handlers/settings/dockerCleanup.go similarity index 100% rename from server/api/handlers/settings/dockerCleanup.go rename to apps/daemon/api/handlers/settings/dockerCleanup.go diff --git a/server/api/handlers/settings/systemSettings.go b/apps/daemon/api/handlers/settings/systemSettings.go similarity index 100% rename from server/api/handlers/settings/systemSettings.go rename to apps/daemon/api/handlers/settings/systemSettings.go diff --git a/server/api/handlers/templates/list.go b/apps/daemon/api/handlers/templates/list.go similarity index 100% rename from server/api/handlers/templates/list.go rename to apps/daemon/api/handlers/templates/list.go diff --git a/server/api/handlers/updates/history.go b/apps/daemon/api/handlers/updates/history.go similarity index 100% rename from server/api/handlers/updates/history.go rename to apps/daemon/api/handlers/updates/history.go diff --git a/server/api/handlers/updates/update.go b/apps/daemon/api/handlers/updates/update.go similarity index 100% rename from server/api/handlers/updates/update.go rename to apps/daemon/api/handlers/updates/update.go diff --git a/server/api/handlers/updates/version.go b/apps/daemon/api/handlers/updates/version.go similarity index 100% rename from server/api/handlers/updates/version.go rename to apps/daemon/api/handlers/updates/version.go diff --git a/server/api/handlers/users/createUser.go b/apps/daemon/api/handlers/users/createUser.go similarity index 100% rename from server/api/handlers/users/createUser.go rename to apps/daemon/api/handlers/users/createUser.go diff --git a/server/api/handlers/users/deleteUser.go b/apps/daemon/api/handlers/users/deleteUser.go similarity index 100% rename from server/api/handlers/users/deleteUser.go rename to apps/daemon/api/handlers/users/deleteUser.go diff --git a/server/api/handlers/users/getUserById.go b/apps/daemon/api/handlers/users/getUserById.go similarity index 100% rename from server/api/handlers/users/getUserById.go rename to apps/daemon/api/handlers/users/getUserById.go diff --git a/server/api/handlers/users/getUsers.go b/apps/daemon/api/handlers/users/getUsers.go similarity index 100% rename from server/api/handlers/users/getUsers.go rename to apps/daemon/api/handlers/users/getUsers.go diff --git a/server/api/handlers/users/gitProviders.go b/apps/daemon/api/handlers/users/gitProviders.go similarity index 100% rename from server/api/handlers/users/gitProviders.go rename to apps/daemon/api/handlers/users/gitProviders.go diff --git a/server/api/handlers/users/updatePassword.go b/apps/daemon/api/handlers/users/updatePassword.go similarity index 100% rename from server/api/handlers/users/updatePassword.go rename to apps/daemon/api/handlers/users/updatePassword.go diff --git a/server/api/handlers/users/updateUser.go b/apps/daemon/api/handlers/users/updateUser.go similarity index 100% rename from server/api/handlers/users/updateUser.go rename to apps/daemon/api/handlers/users/updateUser.go diff --git a/server/api/handlers/users/uploadAvatar.go b/apps/daemon/api/handlers/users/uploadAvatar.go similarity index 100% rename from server/api/handlers/users/uploadAvatar.go rename to apps/daemon/api/handlers/users/uploadAvatar.go diff --git a/server/api/main.go b/apps/daemon/api/main.go similarity index 100% rename from server/api/main.go rename to apps/daemon/api/main.go diff --git a/server/api/middleware/auth.go b/apps/daemon/api/middleware/auth.go similarity index 100% rename from server/api/middleware/auth.go rename to apps/daemon/api/middleware/auth.go diff --git a/server/api/middleware/logger.go b/apps/daemon/api/middleware/logger.go similarity index 100% rename from server/api/middleware/logger.go rename to apps/daemon/api/middleware/logger.go diff --git a/server/compose/composeDeployer.go b/apps/daemon/compose/composeDeployer.go similarity index 100% rename from server/compose/composeDeployer.go rename to apps/daemon/compose/composeDeployer.go diff --git a/server/compose/down.go b/apps/daemon/compose/down.go similarity index 100% rename from server/compose/down.go rename to apps/daemon/compose/down.go diff --git a/server/compose/logs.go b/apps/daemon/compose/logs.go similarity index 100% rename from server/compose/logs.go rename to apps/daemon/compose/logs.go diff --git a/server/compose/restart.go b/apps/daemon/compose/restart.go similarity index 100% rename from server/compose/restart.go rename to apps/daemon/compose/restart.go diff --git a/server/compose/status.go b/apps/daemon/compose/status.go similarity index 100% rename from server/compose/status.go rename to apps/daemon/compose/status.go diff --git a/server/compose/up.go b/apps/daemon/compose/up.go similarity index 100% rename from server/compose/up.go rename to apps/daemon/compose/up.go diff --git a/server/constants/constant.go b/apps/daemon/constants/constant.go similarity index 100% rename from server/constants/constant.go rename to apps/daemon/constants/constant.go diff --git a/server/db/main.go b/apps/daemon/db/main.go similarity index 100% rename from server/db/main.go rename to apps/daemon/db/main.go diff --git a/server/db/migrations.go b/apps/daemon/db/migrations.go similarity index 100% rename from server/db/migrations.go rename to apps/daemon/db/migrations.go diff --git a/server/db/migrations_archive.go b/apps/daemon/db/migrations_archive.go similarity index 100% rename from server/db/migrations_archive.go rename to apps/daemon/db/migrations_archive.go diff --git a/server/db/migrations_archive/001_Create_User.sql b/apps/daemon/db/migrations_archive/001_Create_User.sql similarity index 100% rename from server/db/migrations_archive/001_Create_User.sql rename to apps/daemon/db/migrations_archive/001_Create_User.sql diff --git a/server/db/migrations_archive/002_Create_Projects.sql b/apps/daemon/db/migrations_archive/002_Create_Projects.sql similarity index 100% rename from server/db/migrations_archive/002_Create_Projects.sql rename to apps/daemon/db/migrations_archive/002_Create_Projects.sql diff --git a/server/db/migrations_archive/003_Create_Project_members.sql b/apps/daemon/db/migrations_archive/003_Create_Project_members.sql similarity index 100% rename from server/db/migrations_archive/003_Create_Project_members.sql rename to apps/daemon/db/migrations_archive/003_Create_Project_members.sql diff --git a/server/db/migrations_archive/004_Create_GitProviders.sql b/apps/daemon/db/migrations_archive/004_Create_GitProviders.sql similarity index 100% rename from server/db/migrations_archive/004_Create_GitProviders.sql rename to apps/daemon/db/migrations_archive/004_Create_GitProviders.sql diff --git a/server/db/migrations_archive/005_Create_App.sql b/apps/daemon/db/migrations_archive/005_Create_App.sql similarity index 100% rename from server/db/migrations_archive/005_Create_App.sql rename to apps/daemon/db/migrations_archive/005_Create_App.sql diff --git a/server/db/migrations_archive/006_Create_Github_app.sql b/apps/daemon/db/migrations_archive/006_Create_Github_app.sql similarity index 100% rename from server/db/migrations_archive/006_Create_Github_app.sql rename to apps/daemon/db/migrations_archive/006_Create_Github_app.sql diff --git a/server/db/migrations_archive/007_Create_Github_installations.sql b/apps/daemon/db/migrations_archive/007_Create_Github_installations.sql similarity index 100% rename from server/db/migrations_archive/007_Create_Github_installations.sql rename to apps/daemon/db/migrations_archive/007_Create_Github_installations.sql diff --git a/server/db/migrations_archive/008_Create_App_repositories.sql b/apps/daemon/db/migrations_archive/008_Create_App_repositories.sql similarity index 100% rename from server/db/migrations_archive/008_Create_App_repositories.sql rename to apps/daemon/db/migrations_archive/008_Create_App_repositories.sql diff --git a/server/db/migrations_archive/009_Create_deployments.sql b/apps/daemon/db/migrations_archive/009_Create_deployments.sql similarity index 100% rename from server/db/migrations_archive/009_Create_deployments.sql rename to apps/daemon/db/migrations_archive/009_Create_deployments.sql diff --git a/server/db/migrations_archive/010_Create_Envs.sql b/apps/daemon/db/migrations_archive/010_Create_Envs.sql similarity index 100% rename from server/db/migrations_archive/010_Create_Envs.sql rename to apps/daemon/db/migrations_archive/010_Create_Envs.sql diff --git a/server/db/migrations_archive/011_Create_domains.sql b/apps/daemon/db/migrations_archive/011_Create_domains.sql similarity index 100% rename from server/db/migrations_archive/011_Create_domains.sql rename to apps/daemon/db/migrations_archive/011_Create_domains.sql diff --git a/server/db/migrations_archive/012_Create_Volumes.sql b/apps/daemon/db/migrations_archive/012_Create_Volumes.sql similarity index 100% rename from server/db/migrations_archive/012_Create_Volumes.sql rename to apps/daemon/db/migrations_archive/012_Create_Volumes.sql diff --git a/server/db/migrations_archive/013_Create_Cron.sql b/apps/daemon/db/migrations_archive/013_Create_Cron.sql similarity index 100% rename from server/db/migrations_archive/013_Create_Cron.sql rename to apps/daemon/db/migrations_archive/013_Create_Cron.sql diff --git a/server/db/migrations_archive/014_Create_Registries.sql b/apps/daemon/db/migrations_archive/014_Create_Registries.sql similarity index 100% rename from server/db/migrations_archive/014_Create_Registries.sql rename to apps/daemon/db/migrations_archive/014_Create_Registries.sql diff --git a/server/db/migrations_archive/015_Create_System_settings.sql b/apps/daemon/db/migrations_archive/015_Create_System_settings.sql similarity index 100% rename from server/db/migrations_archive/015_Create_System_settings.sql rename to apps/daemon/db/migrations_archive/015_Create_System_settings.sql diff --git a/server/db/migrations_archive/016_Create_Logs.sql b/apps/daemon/db/migrations_archive/016_Create_Logs.sql similarity index 100% rename from server/db/migrations_archive/016_Create_Logs.sql rename to apps/daemon/db/migrations_archive/016_Create_Logs.sql diff --git a/server/db/migrations_archive/017_Create_Audit_logs.sql b/apps/daemon/db/migrations_archive/017_Create_Audit_logs.sql similarity index 100% rename from server/db/migrations_archive/017_Create_Audit_logs.sql rename to apps/daemon/db/migrations_archive/017_Create_Audit_logs.sql diff --git a/server/db/migrations_archive/018_Create_Service_templates.sql b/apps/daemon/db/migrations_archive/018_Create_Service_templates.sql similarity index 100% rename from server/db/migrations_archive/018_Create_Service_templates.sql rename to apps/daemon/db/migrations_archive/018_Create_Service_templates.sql diff --git a/server/db/migrations_archive/019_Create_Api_tokens.sql b/apps/daemon/db/migrations_archive/019_Create_Api_tokens.sql similarity index 100% rename from server/db/migrations_archive/019_Create_Api_tokens.sql rename to apps/daemon/db/migrations_archive/019_Create_Api_tokens.sql diff --git a/server/db/migrations_archive/020_Create_Sessions.sql b/apps/daemon/db/migrations_archive/020_Create_Sessions.sql similarity index 100% rename from server/db/migrations_archive/020_Create_Sessions.sql rename to apps/daemon/db/migrations_archive/020_Create_Sessions.sql diff --git a/server/db/migrations_archive/021_Create_Notifications.sql b/apps/daemon/db/migrations_archive/021_Create_Notifications.sql similarity index 100% rename from server/db/migrations_archive/021_Create_Notifications.sql rename to apps/daemon/db/migrations_archive/021_Create_Notifications.sql diff --git a/server/db/migrations_archive/022_Create_Backups.sql b/apps/daemon/db/migrations_archive/022_Create_Backups.sql similarity index 100% rename from server/db/migrations_archive/022_Create_Backups.sql rename to apps/daemon/db/migrations_archive/022_Create_Backups.sql diff --git a/server/db/migrations_archive/023_Add_DNS_validation.sql b/apps/daemon/db/migrations_archive/023_Add_DNS_validation.sql similarity index 100% rename from server/db/migrations_archive/023_Add_DNS_validation.sql rename to apps/daemon/db/migrations_archive/023_Add_DNS_validation.sql diff --git a/server/db/migrations_archive/024_Add_Wildcard_domain_settings.sql b/apps/daemon/db/migrations_archive/024_Add_Wildcard_domain_settings.sql similarity index 100% rename from server/db/migrations_archive/024_Add_Wildcard_domain_settings.sql rename to apps/daemon/db/migrations_archive/024_Add_Wildcard_domain_settings.sql diff --git a/server/db/migrations_archive/025_Add_Missing_Indexes.sql b/apps/daemon/db/migrations_archive/025_Add_Missing_Indexes.sql similarity index 100% rename from server/db/migrations_archive/025_Add_Missing_Indexes.sql rename to apps/daemon/db/migrations_archive/025_Add_Missing_Indexes.sql diff --git a/server/db/migrations_archive/026_Add_Version_SystemSettings.sql b/apps/daemon/db/migrations_archive/026_Add_Version_SystemSettings.sql similarity index 100% rename from server/db/migrations_archive/026_Add_Version_SystemSettings.sql rename to apps/daemon/db/migrations_archive/026_Add_Version_SystemSettings.sql diff --git a/server/db/migrations_archive/027_Create_UpdateLogs.sql b/apps/daemon/db/migrations_archive/027_Create_UpdateLogs.sql similarity index 100% rename from server/db/migrations_archive/027_Create_UpdateLogs.sql rename to apps/daemon/db/migrations_archive/027_Create_UpdateLogs.sql diff --git a/server/db/migrations_archive/028_Version_bump_v1.0.1.sql b/apps/daemon/db/migrations_archive/028_Version_bump_v1.0.1.sql similarity index 100% rename from server/db/migrations_archive/028_Version_bump_v1.0.1.sql rename to apps/daemon/db/migrations_archive/028_Version_bump_v1.0.1.sql diff --git a/server/db/migrations_archive/029_Version_Bump_v1.0.2.sql b/apps/daemon/db/migrations_archive/029_Version_Bump_v1.0.2.sql similarity index 100% rename from server/db/migrations_archive/029_Version_Bump_v1.0.2.sql rename to apps/daemon/db/migrations_archive/029_Version_Bump_v1.0.2.sql diff --git a/server/db/migrations_archive/030_Version_bump_v1.0.3.sql b/apps/daemon/db/migrations_archive/030_Version_bump_v1.0.3.sql similarity index 100% rename from server/db/migrations_archive/030_Version_bump_v1.0.3.sql rename to apps/daemon/db/migrations_archive/030_Version_bump_v1.0.3.sql diff --git a/server/docker/cleanup.go b/apps/daemon/docker/cleanup.go similarity index 100% rename from server/docker/cleanup.go rename to apps/daemon/docker/cleanup.go diff --git a/server/docker/container.go b/apps/daemon/docker/container.go similarity index 100% rename from server/docker/container.go rename to apps/daemon/docker/container.go diff --git a/server/docker/deployer.go b/apps/daemon/docker/deployer.go similarity index 100% rename from server/docker/deployer.go rename to apps/daemon/docker/deployer.go diff --git a/server/docker/deployerMain.go b/apps/daemon/docker/deployerMain.go similarity index 100% rename from server/docker/deployerMain.go rename to apps/daemon/docker/deployerMain.go diff --git a/server/docker/image.go b/apps/daemon/docker/image.go similarity index 100% rename from server/docker/image.go rename to apps/daemon/docker/image.go diff --git a/server/docker/loadDeployment.go b/apps/daemon/docker/loadDeployment.go similarity index 100% rename from server/docker/loadDeployment.go rename to apps/daemon/docker/loadDeployment.go diff --git a/server/docker/runtime.go b/apps/daemon/docker/runtime.go similarity index 100% rename from server/docker/runtime.go rename to apps/daemon/docker/runtime.go diff --git a/server/docker/utils.go b/apps/daemon/docker/utils.go similarity index 100% rename from server/docker/utils.go rename to apps/daemon/docker/utils.go diff --git a/server/fs/createDir.go b/apps/daemon/fs/createDir.go similarity index 100% rename from server/fs/createDir.go rename to apps/daemon/fs/createDir.go diff --git a/server/fs/createDockerBuildLogFile.go b/apps/daemon/fs/createDockerBuildLogFile.go similarity index 100% rename from server/fs/createDockerBuildLogFile.go rename to apps/daemon/fs/createDockerBuildLogFile.go diff --git a/server/git/clone.go b/apps/daemon/git/clone.go similarity index 100% rename from server/git/clone.go rename to apps/daemon/git/clone.go diff --git a/server/git/commit.go b/apps/daemon/git/commit.go similarity index 100% rename from server/git/commit.go rename to apps/daemon/git/commit.go diff --git a/server/git/types.go b/apps/daemon/git/types.go similarity index 100% rename from server/git/types.go rename to apps/daemon/git/types.go diff --git a/server/github/deployment.go b/apps/daemon/github/deployment.go similarity index 100% rename from server/github/deployment.go rename to apps/daemon/github/deployment.go diff --git a/server/github/generateGithubJwt.go b/apps/daemon/github/generateGithubJwt.go similarity index 100% rename from server/github/generateGithubJwt.go rename to apps/daemon/github/generateGithubJwt.go diff --git a/server/github/getAccessToken.go b/apps/daemon/github/getAccessToken.go similarity index 100% rename from server/github/getAccessToken.go rename to apps/daemon/github/getAccessToken.go diff --git a/server/github/getBrances.go b/apps/daemon/github/getBrances.go similarity index 100% rename from server/github/getBrances.go rename to apps/daemon/github/getBrances.go diff --git a/server/github/getLatestCommit.go b/apps/daemon/github/getLatestCommit.go similarity index 100% rename from server/github/getLatestCommit.go rename to apps/daemon/github/getLatestCommit.go diff --git a/server/github/repo.go b/apps/daemon/github/repo.go similarity index 100% rename from server/github/repo.go rename to apps/daemon/github/repo.go diff --git a/server/github/types.go b/apps/daemon/github/types.go similarity index 100% rename from server/github/types.go rename to apps/daemon/github/types.go diff --git a/server/github/webHook.go b/apps/daemon/github/webHook.go similarity index 100% rename from server/github/webHook.go rename to apps/daemon/github/webHook.go diff --git a/server/go.mod b/apps/daemon/go.mod similarity index 100% rename from server/go.mod rename to apps/daemon/go.mod diff --git a/server/go.sum b/apps/daemon/go.sum similarity index 100% rename from server/go.sum rename to apps/daemon/go.sum diff --git a/server/lib/cleanup.go b/apps/daemon/lib/cleanup.go similarity index 100% rename from server/lib/cleanup.go rename to apps/daemon/lib/cleanup.go diff --git a/server/main.go b/apps/daemon/main.go similarity index 100% rename from server/main.go rename to apps/daemon/main.go diff --git a/server/models/apiToken.go b/apps/daemon/models/apiToken.go similarity index 100% rename from server/models/apiToken.go rename to apps/daemon/models/apiToken.go diff --git a/server/models/app.go b/apps/daemon/models/app.go similarity index 100% rename from server/models/app.go rename to apps/daemon/models/app.go diff --git a/server/models/appRepositories.go b/apps/daemon/models/appRepositories.go similarity index 100% rename from server/models/appRepositories.go rename to apps/daemon/models/appRepositories.go diff --git a/server/models/auditLog.go b/apps/daemon/models/auditLog.go similarity index 100% rename from server/models/auditLog.go rename to apps/daemon/models/auditLog.go diff --git a/server/models/backup.go b/apps/daemon/models/backup.go similarity index 100% rename from server/models/backup.go rename to apps/daemon/models/backup.go diff --git a/server/models/cron.go b/apps/daemon/models/cron.go similarity index 100% rename from server/models/cron.go rename to apps/daemon/models/cron.go diff --git a/server/models/deployment.go b/apps/daemon/models/deployment.go similarity index 100% rename from server/models/deployment.go rename to apps/daemon/models/deployment.go diff --git a/server/models/domain.go b/apps/daemon/models/domain.go similarity index 100% rename from server/models/domain.go rename to apps/daemon/models/domain.go diff --git a/server/models/envVariable.go b/apps/daemon/models/envVariable.go similarity index 100% rename from server/models/envVariable.go rename to apps/daemon/models/envVariable.go diff --git a/server/models/gitProvider.go b/apps/daemon/models/gitProvider.go similarity index 100% rename from server/models/gitProvider.go rename to apps/daemon/models/gitProvider.go diff --git a/server/models/github.go b/apps/daemon/models/github.go similarity index 100% rename from server/models/github.go rename to apps/daemon/models/github.go diff --git a/server/models/logs.go b/apps/daemon/models/logs.go similarity index 100% rename from server/models/logs.go rename to apps/daemon/models/logs.go diff --git a/server/models/main.go b/apps/daemon/models/main.go similarity index 100% rename from server/models/main.go rename to apps/daemon/models/main.go diff --git a/server/models/misc.go b/apps/daemon/models/misc.go similarity index 100% rename from server/models/misc.go rename to apps/daemon/models/misc.go diff --git a/server/models/notification.go b/apps/daemon/models/notification.go similarity index 100% rename from server/models/notification.go rename to apps/daemon/models/notification.go diff --git a/server/models/project.go b/apps/daemon/models/project.go similarity index 100% rename from server/models/project.go rename to apps/daemon/models/project.go diff --git a/server/models/projectMembers.go b/apps/daemon/models/projectMembers.go similarity index 100% rename from server/models/projectMembers.go rename to apps/daemon/models/projectMembers.go diff --git a/server/models/registries.go b/apps/daemon/models/registries.go similarity index 100% rename from server/models/registries.go rename to apps/daemon/models/registries.go diff --git a/server/models/serviceTemplate.go b/apps/daemon/models/serviceTemplate.go similarity index 100% rename from server/models/serviceTemplate.go rename to apps/daemon/models/serviceTemplate.go diff --git a/server/models/services.go b/apps/daemon/models/services.go similarity index 100% rename from server/models/services.go rename to apps/daemon/models/services.go diff --git a/server/models/session.go b/apps/daemon/models/session.go similarity index 100% rename from server/models/session.go rename to apps/daemon/models/session.go diff --git a/server/models/systemSettings.go b/apps/daemon/models/systemSettings.go similarity index 100% rename from server/models/systemSettings.go rename to apps/daemon/models/systemSettings.go diff --git a/server/models/temp.go b/apps/daemon/models/temp.go similarity index 100% rename from server/models/temp.go rename to apps/daemon/models/temp.go diff --git a/server/models/updateLog.go b/apps/daemon/models/updateLog.go similarity index 100% rename from server/models/updateLog.go rename to apps/daemon/models/updateLog.go diff --git a/server/models/user.go b/apps/daemon/models/user.go similarity index 100% rename from server/models/user.go rename to apps/daemon/models/user.go diff --git a/server/models/volume.go b/apps/daemon/models/volume.go similarity index 100% rename from server/models/volume.go rename to apps/daemon/models/volume.go diff --git a/server/queue/ctxManager.go b/apps/daemon/queue/ctxManager.go similarity index 100% rename from server/queue/ctxManager.go rename to apps/daemon/queue/ctxManager.go diff --git a/server/queue/deployQueue.go b/apps/daemon/queue/deployQueue.go similarity index 100% rename from server/queue/deployQueue.go rename to apps/daemon/queue/deployQueue.go diff --git a/server/queue/handleWork.go b/apps/daemon/queue/handleWork.go similarity index 100% rename from server/queue/handleWork.go rename to apps/daemon/queue/handleWork.go diff --git a/server/queue/main.go b/apps/daemon/queue/main.go similarity index 100% rename from server/queue/main.go rename to apps/daemon/queue/main.go diff --git a/server/static/assets/index-B2_TCAxh.css b/apps/daemon/static/assets/index-B2_TCAxh.css similarity index 100% rename from server/static/assets/index-B2_TCAxh.css rename to apps/daemon/static/assets/index-B2_TCAxh.css diff --git a/server/static/assets/index-BH9kEiR3.js b/apps/daemon/static/assets/index-BH9kEiR3.js similarity index 100% rename from server/static/assets/index-BH9kEiR3.js rename to apps/daemon/static/assets/index-BH9kEiR3.js diff --git a/server/static/assets/index-DSToe-oF.js b/apps/daemon/static/assets/index-DSToe-oF.js similarity index 100% rename from server/static/assets/index-DSToe-oF.js rename to apps/daemon/static/assets/index-DSToe-oF.js diff --git a/dash/public/cloud-computing.png b/apps/daemon/static/cloud-computing.png similarity index 100% rename from dash/public/cloud-computing.png rename to apps/daemon/static/cloud-computing.png diff --git a/server/static/index.html b/apps/daemon/static/index.html similarity index 100% rename from server/static/index.html rename to apps/daemon/static/index.html diff --git a/dash/public/mist.png b/apps/daemon/static/mist.png similarity index 100% rename from dash/public/mist.png rename to apps/daemon/static/mist.png diff --git a/server/store/main.go b/apps/daemon/store/main.go similarity index 100% rename from server/store/main.go rename to apps/daemon/store/main.go diff --git a/server/store/setupRequired.go b/apps/daemon/store/setupRequired.go similarity index 100% rename from server/store/setupRequired.go rename to apps/daemon/store/setupRequired.go diff --git a/server/utils/deploymentErrors.go b/apps/daemon/utils/deploymentErrors.go similarity index 100% rename from server/utils/deploymentErrors.go rename to apps/daemon/utils/deploymentErrors.go diff --git a/server/utils/dns.go b/apps/daemon/utils/dns.go similarity index 100% rename from server/utils/dns.go rename to apps/daemon/utils/dns.go diff --git a/server/utils/generateRandomId.go b/apps/daemon/utils/generateRandomId.go similarity index 100% rename from server/utils/generateRandomId.go rename to apps/daemon/utils/generateRandomId.go diff --git a/server/utils/generateRandomString.go b/apps/daemon/utils/generateRandomString.go similarity index 100% rename from server/utils/generateRandomString.go rename to apps/daemon/utils/generateRandomString.go diff --git a/server/utils/logger.go b/apps/daemon/utils/logger.go similarity index 100% rename from server/utils/logger.go rename to apps/daemon/utils/logger.go diff --git a/server/utils/traefik.go b/apps/daemon/utils/traefik.go similarity index 100% rename from server/utils/traefik.go rename to apps/daemon/utils/traefik.go diff --git a/server/websockets/containerLogs.go b/apps/daemon/websockets/containerLogs.go similarity index 100% rename from server/websockets/containerLogs.go rename to apps/daemon/websockets/containerLogs.go diff --git a/server/websockets/containerStats.go b/apps/daemon/websockets/containerStats.go similarity index 100% rename from server/websockets/containerStats.go rename to apps/daemon/websockets/containerStats.go diff --git a/server/websockets/logWatcher.go b/apps/daemon/websockets/logWatcher.go similarity index 100% rename from server/websockets/logWatcher.go rename to apps/daemon/websockets/logWatcher.go diff --git a/server/websockets/main.go b/apps/daemon/websockets/main.go similarity index 100% rename from server/websockets/main.go rename to apps/daemon/websockets/main.go diff --git a/server/websockets/originChecker.go b/apps/daemon/websockets/originChecker.go similarity index 100% rename from server/websockets/originChecker.go rename to apps/daemon/websockets/originChecker.go diff --git a/server/websockets/statusWatcher.go b/apps/daemon/websockets/statusWatcher.go similarity index 100% rename from server/websockets/statusWatcher.go rename to apps/daemon/websockets/statusWatcher.go diff --git a/server/websockets/sysMetrics.go b/apps/daemon/websockets/sysMetrics.go similarity index 100% rename from server/websockets/sysMetrics.go rename to apps/daemon/websockets/sysMetrics.go diff --git a/server/websockets/systemLogs.go b/apps/daemon/websockets/systemLogs.go similarity index 100% rename from server/websockets/systemLogs.go rename to apps/daemon/websockets/systemLogs.go diff --git a/cli/cmd/db.go b/apps/server-cli/cmd/db.go similarity index 100% rename from cli/cmd/db.go rename to apps/server-cli/cmd/db.go diff --git a/cli/cmd/settings.go b/apps/server-cli/cmd/settings.go similarity index 100% rename from cli/cmd/settings.go rename to apps/server-cli/cmd/settings.go diff --git a/cli/cmd/user.go b/apps/server-cli/cmd/user.go similarity index 100% rename from cli/cmd/user.go rename to apps/server-cli/cmd/user.go diff --git a/cli/go.mod b/apps/server-cli/go.mod similarity index 100% rename from cli/go.mod rename to apps/server-cli/go.mod diff --git a/cli/go.sum b/apps/server-cli/go.sum similarity index 100% rename from cli/go.sum rename to apps/server-cli/go.sum diff --git a/cli/main.go b/apps/server-cli/main.go similarity index 100% rename from cli/main.go rename to apps/server-cli/main.go diff --git a/dash/.gitignore b/apps/web/.gitignore similarity index 100% rename from dash/.gitignore rename to apps/web/.gitignore diff --git a/dash/README.md b/apps/web/README.md similarity index 100% rename from dash/README.md rename to apps/web/README.md diff --git a/dash/bun.lock b/apps/web/bun.lock similarity index 100% rename from dash/bun.lock rename to apps/web/bun.lock diff --git a/dash/components.json b/apps/web/components.json similarity index 100% rename from dash/components.json rename to apps/web/components.json diff --git a/dash/eslint.config.js b/apps/web/eslint.config.js similarity index 100% rename from dash/eslint.config.js rename to apps/web/eslint.config.js diff --git a/dash/index.html b/apps/web/index.html similarity index 100% rename from dash/index.html rename to apps/web/index.html diff --git a/dash/package-lock.json b/apps/web/package-lock.json similarity index 100% rename from dash/package-lock.json rename to apps/web/package-lock.json diff --git a/dash/package.json b/apps/web/package.json similarity index 100% rename from dash/package.json rename to apps/web/package.json diff --git a/server/static/cloud-computing.png b/apps/web/public/cloud-computing.png similarity index 100% rename from server/static/cloud-computing.png rename to apps/web/public/cloud-computing.png diff --git a/server/static/mist.png b/apps/web/public/mist.png similarity index 100% rename from server/static/mist.png rename to apps/web/public/mist.png diff --git a/dash/src/App.css b/apps/web/src/App.css similarity index 100% rename from dash/src/App.css rename to apps/web/src/App.css diff --git a/dash/src/App.tsx b/apps/web/src/App.tsx similarity index 100% rename from dash/src/App.tsx rename to apps/web/src/App.tsx diff --git a/dash/src/Layout.tsx b/apps/web/src/Layout.tsx similarity index 100% rename from dash/src/Layout.tsx rename to apps/web/src/Layout.tsx diff --git a/dash/src/api/endpoints/auth.ts b/apps/web/src/api/endpoints/auth.ts similarity index 100% rename from dash/src/api/endpoints/auth.ts rename to apps/web/src/api/endpoints/auth.ts diff --git a/dash/src/api/endpoints/templates.ts b/apps/web/src/api/endpoints/templates.ts similarity index 100% rename from dash/src/api/endpoints/templates.ts rename to apps/web/src/api/endpoints/templates.ts diff --git a/dash/src/api/endpoints/updates.ts b/apps/web/src/api/endpoints/updates.ts similarity index 100% rename from dash/src/api/endpoints/updates.ts rename to apps/web/src/api/endpoints/updates.ts diff --git a/dash/src/api/index.ts b/apps/web/src/api/index.ts similarity index 100% rename from dash/src/api/index.ts rename to apps/web/src/api/index.ts diff --git a/dash/src/components/app-breadcrumbs.tsx b/apps/web/src/components/app-breadcrumbs.tsx similarity index 100% rename from dash/src/components/app-breadcrumbs.tsx rename to apps/web/src/components/app-breadcrumbs.tsx diff --git a/dash/src/components/app-sidebar.tsx b/apps/web/src/components/app-sidebar.tsx similarity index 100% rename from dash/src/components/app-sidebar.tsx rename to apps/web/src/components/app-sidebar.tsx diff --git a/dash/src/components/applications/app-info.tsx b/apps/web/src/components/applications/app-info.tsx similarity index 100% rename from dash/src/components/applications/app-info.tsx rename to apps/web/src/components/applications/app-info.tsx diff --git a/dash/src/components/applications/app-settings.tsx b/apps/web/src/components/applications/app-settings.tsx similarity index 100% rename from dash/src/components/applications/app-settings.tsx rename to apps/web/src/components/applications/app-settings.tsx diff --git a/dash/src/components/applications/app-stats.tsx b/apps/web/src/components/applications/app-stats.tsx similarity index 100% rename from dash/src/components/applications/app-stats.tsx rename to apps/web/src/components/applications/app-stats.tsx diff --git a/dash/src/components/applications/compose-app-settings.tsx b/apps/web/src/components/applications/compose-app-settings.tsx similarity index 100% rename from dash/src/components/applications/compose-app-settings.tsx rename to apps/web/src/components/applications/compose-app-settings.tsx diff --git a/dash/src/components/applications/compose-status.tsx b/apps/web/src/components/applications/compose-status.tsx similarity index 100% rename from dash/src/components/applications/compose-status.tsx rename to apps/web/src/components/applications/compose-status.tsx diff --git a/dash/src/components/applications/container-controls.tsx b/apps/web/src/components/applications/container-controls.tsx similarity index 100% rename from dash/src/components/applications/container-controls.tsx rename to apps/web/src/components/applications/container-controls.tsx diff --git a/dash/src/components/applications/container-stats.tsx b/apps/web/src/components/applications/container-stats.tsx similarity index 100% rename from dash/src/components/applications/container-stats.tsx rename to apps/web/src/components/applications/container-stats.tsx diff --git a/dash/src/components/applications/dns-validation.tsx b/apps/web/src/components/applications/dns-validation.tsx similarity index 100% rename from dash/src/components/applications/dns-validation.tsx rename to apps/web/src/components/applications/dns-validation.tsx diff --git a/dash/src/components/applications/domains.tsx b/apps/web/src/components/applications/domains.tsx similarity index 100% rename from dash/src/components/applications/domains.tsx rename to apps/web/src/components/applications/domains.tsx diff --git a/dash/src/components/applications/environment-variables.tsx b/apps/web/src/components/applications/environment-variables.tsx similarity index 100% rename from dash/src/components/applications/environment-variables.tsx rename to apps/web/src/components/applications/environment-variables.tsx diff --git a/dash/src/components/applications/git-config.tsx b/apps/web/src/components/applications/git-config.tsx similarity index 100% rename from dash/src/components/applications/git-config.tsx rename to apps/web/src/components/applications/git-config.tsx diff --git a/dash/src/components/applications/index.ts b/apps/web/src/components/applications/index.ts similarity index 100% rename from dash/src/components/applications/index.ts rename to apps/web/src/components/applications/index.ts diff --git a/dash/src/components/applications/live-logs-viewer.tsx b/apps/web/src/components/applications/live-logs-viewer.tsx similarity index 100% rename from dash/src/components/applications/live-logs-viewer.tsx rename to apps/web/src/components/applications/live-logs-viewer.tsx diff --git a/dash/src/components/applications/volumes.tsx b/apps/web/src/components/applications/volumes.tsx similarity index 100% rename from dash/src/components/applications/volumes.tsx rename to apps/web/src/components/applications/volumes.tsx diff --git a/dash/src/components/common/error-boundary.tsx b/apps/web/src/components/common/error-boundary.tsx similarity index 100% rename from dash/src/components/common/error-boundary.tsx rename to apps/web/src/components/common/error-boundary.tsx diff --git a/dash/src/components/common/form-modal.tsx b/apps/web/src/components/common/form-modal.tsx similarity index 100% rename from dash/src/components/common/form-modal.tsx rename to apps/web/src/components/common/form-modal.tsx diff --git a/dash/src/components/common/index.ts b/apps/web/src/components/common/index.ts similarity index 100% rename from dash/src/components/common/index.ts rename to apps/web/src/components/common/index.ts diff --git a/dash/src/components/common/loading-spinner.tsx b/apps/web/src/components/common/loading-spinner.tsx similarity index 100% rename from dash/src/components/common/loading-spinner.tsx rename to apps/web/src/components/common/loading-spinner.tsx diff --git a/dash/src/components/deployments/deployment-list.tsx b/apps/web/src/components/deployments/deployment-list.tsx similarity index 100% rename from dash/src/components/deployments/deployment-list.tsx rename to apps/web/src/components/deployments/deployment-list.tsx diff --git a/dash/src/components/deployments/deployment-monitor.tsx b/apps/web/src/components/deployments/deployment-monitor.tsx similarity index 100% rename from dash/src/components/deployments/deployment-monitor.tsx rename to apps/web/src/components/deployments/deployment-monitor.tsx diff --git a/dash/src/components/deployments/index.ts b/apps/web/src/components/deployments/index.ts similarity index 100% rename from dash/src/components/deployments/index.ts rename to apps/web/src/components/deployments/index.ts diff --git a/dash/src/components/logs/index.ts b/apps/web/src/components/logs/index.ts similarity index 100% rename from dash/src/components/logs/index.ts rename to apps/web/src/components/logs/index.ts diff --git a/dash/src/components/logs/log-line.tsx b/apps/web/src/components/logs/log-line.tsx similarity index 100% rename from dash/src/components/logs/log-line.tsx rename to apps/web/src/components/logs/log-line.tsx diff --git a/dash/src/components/ui/alert.tsx b/apps/web/src/components/ui/alert.tsx similarity index 100% rename from dash/src/components/ui/alert.tsx rename to apps/web/src/components/ui/alert.tsx diff --git a/dash/src/components/ui/badge.tsx b/apps/web/src/components/ui/badge.tsx similarity index 100% rename from dash/src/components/ui/badge.tsx rename to apps/web/src/components/ui/badge.tsx diff --git a/dash/src/components/ui/breadcrumb.tsx b/apps/web/src/components/ui/breadcrumb.tsx similarity index 100% rename from dash/src/components/ui/breadcrumb.tsx rename to apps/web/src/components/ui/breadcrumb.tsx diff --git a/dash/src/components/ui/button.tsx b/apps/web/src/components/ui/button.tsx similarity index 100% rename from dash/src/components/ui/button.tsx rename to apps/web/src/components/ui/button.tsx diff --git a/dash/src/components/ui/card.tsx b/apps/web/src/components/ui/card.tsx similarity index 100% rename from dash/src/components/ui/card.tsx rename to apps/web/src/components/ui/card.tsx diff --git a/dash/src/components/ui/checkbox.tsx b/apps/web/src/components/ui/checkbox.tsx similarity index 100% rename from dash/src/components/ui/checkbox.tsx rename to apps/web/src/components/ui/checkbox.tsx diff --git a/dash/src/components/ui/dialog.tsx b/apps/web/src/components/ui/dialog.tsx similarity index 100% rename from dash/src/components/ui/dialog.tsx rename to apps/web/src/components/ui/dialog.tsx diff --git a/dash/src/components/ui/dropdown-menu.tsx b/apps/web/src/components/ui/dropdown-menu.tsx similarity index 100% rename from dash/src/components/ui/dropdown-menu.tsx rename to apps/web/src/components/ui/dropdown-menu.tsx diff --git a/dash/src/components/ui/field.tsx b/apps/web/src/components/ui/field.tsx similarity index 100% rename from dash/src/components/ui/field.tsx rename to apps/web/src/components/ui/field.tsx diff --git a/dash/src/components/ui/input.tsx b/apps/web/src/components/ui/input.tsx similarity index 100% rename from dash/src/components/ui/input.tsx rename to apps/web/src/components/ui/input.tsx diff --git a/dash/src/components/ui/label.tsx b/apps/web/src/components/ui/label.tsx similarity index 100% rename from dash/src/components/ui/label.tsx rename to apps/web/src/components/ui/label.tsx diff --git a/dash/src/components/ui/select.tsx b/apps/web/src/components/ui/select.tsx similarity index 100% rename from dash/src/components/ui/select.tsx rename to apps/web/src/components/ui/select.tsx diff --git a/dash/src/components/ui/separator.tsx b/apps/web/src/components/ui/separator.tsx similarity index 100% rename from dash/src/components/ui/separator.tsx rename to apps/web/src/components/ui/separator.tsx diff --git a/dash/src/components/ui/sheet.tsx b/apps/web/src/components/ui/sheet.tsx similarity index 100% rename from dash/src/components/ui/sheet.tsx rename to apps/web/src/components/ui/sheet.tsx diff --git a/dash/src/components/ui/sidebar.tsx b/apps/web/src/components/ui/sidebar.tsx similarity index 100% rename from dash/src/components/ui/sidebar.tsx rename to apps/web/src/components/ui/sidebar.tsx diff --git a/dash/src/components/ui/skeleton.tsx b/apps/web/src/components/ui/skeleton.tsx similarity index 100% rename from dash/src/components/ui/skeleton.tsx rename to apps/web/src/components/ui/skeleton.tsx diff --git a/dash/src/components/ui/sonner.tsx b/apps/web/src/components/ui/sonner.tsx similarity index 100% rename from dash/src/components/ui/sonner.tsx rename to apps/web/src/components/ui/sonner.tsx diff --git a/dash/src/components/ui/switch.tsx b/apps/web/src/components/ui/switch.tsx similarity index 100% rename from dash/src/components/ui/switch.tsx rename to apps/web/src/components/ui/switch.tsx diff --git a/dash/src/components/ui/tabs.tsx b/apps/web/src/components/ui/tabs.tsx similarity index 100% rename from dash/src/components/ui/tabs.tsx rename to apps/web/src/components/ui/tabs.tsx diff --git a/dash/src/components/ui/textarea.tsx b/apps/web/src/components/ui/textarea.tsx similarity index 100% rename from dash/src/components/ui/textarea.tsx rename to apps/web/src/components/ui/textarea.tsx diff --git a/dash/src/components/ui/tooltip.tsx b/apps/web/src/components/ui/tooltip.tsx similarity index 100% rename from dash/src/components/ui/tooltip.tsx rename to apps/web/src/components/ui/tooltip.tsx diff --git a/dash/src/components/version-switcher.tsx b/apps/web/src/components/version-switcher.tsx similarity index 100% rename from dash/src/components/version-switcher.tsx rename to apps/web/src/components/version-switcher.tsx diff --git a/dash/src/config/app.ts b/apps/web/src/config/app.ts similarity index 100% rename from dash/src/config/app.ts rename to apps/web/src/config/app.ts diff --git a/dash/src/constants/index.ts b/apps/web/src/constants/index.ts similarity index 100% rename from dash/src/constants/index.ts rename to apps/web/src/constants/index.ts diff --git a/dash/src/features/applications/AppPage.tsx b/apps/web/src/features/applications/AppPage.tsx similarity index 100% rename from dash/src/features/applications/AppPage.tsx rename to apps/web/src/features/applications/AppPage.tsx diff --git a/dash/src/features/applications/ComposeAppPage.tsx b/apps/web/src/features/applications/ComposeAppPage.tsx similarity index 100% rename from dash/src/features/applications/ComposeAppPage.tsx rename to apps/web/src/features/applications/ComposeAppPage.tsx diff --git a/dash/src/features/auditLogs/AuditLogsPage.tsx b/apps/web/src/features/auditLogs/AuditLogsPage.tsx similarity index 100% rename from dash/src/features/auditLogs/AuditLogsPage.tsx rename to apps/web/src/features/auditLogs/AuditLogsPage.tsx diff --git a/dash/src/features/auditLogs/components/AuditLogBadges.tsx b/apps/web/src/features/auditLogs/components/AuditLogBadges.tsx similarity index 100% rename from dash/src/features/auditLogs/components/AuditLogBadges.tsx rename to apps/web/src/features/auditLogs/components/AuditLogBadges.tsx diff --git a/dash/src/features/auditLogs/components/AuditLogDetails.tsx b/apps/web/src/features/auditLogs/components/AuditLogDetails.tsx similarity index 100% rename from dash/src/features/auditLogs/components/AuditLogDetails.tsx rename to apps/web/src/features/auditLogs/components/AuditLogDetails.tsx diff --git a/dash/src/features/auditLogs/components/AuditLogFilters.tsx b/apps/web/src/features/auditLogs/components/AuditLogFilters.tsx similarity index 100% rename from dash/src/features/auditLogs/components/AuditLogFilters.tsx rename to apps/web/src/features/auditLogs/components/AuditLogFilters.tsx diff --git a/dash/src/features/auditLogs/components/AuditLogItem.tsx b/apps/web/src/features/auditLogs/components/AuditLogItem.tsx similarity index 100% rename from dash/src/features/auditLogs/components/AuditLogItem.tsx rename to apps/web/src/features/auditLogs/components/AuditLogItem.tsx diff --git a/dash/src/features/auditLogs/components/AuditLogList.tsx b/apps/web/src/features/auditLogs/components/AuditLogList.tsx similarity index 100% rename from dash/src/features/auditLogs/components/AuditLogList.tsx rename to apps/web/src/features/auditLogs/components/AuditLogList.tsx diff --git a/dash/src/features/auditLogs/components/PaginationControls.tsx b/apps/web/src/features/auditLogs/components/PaginationControls.tsx similarity index 100% rename from dash/src/features/auditLogs/components/PaginationControls.tsx rename to apps/web/src/features/auditLogs/components/PaginationControls.tsx diff --git a/dash/src/features/auditLogs/components/index.ts b/apps/web/src/features/auditLogs/components/index.ts similarity index 100% rename from dash/src/features/auditLogs/components/index.ts rename to apps/web/src/features/auditLogs/components/index.ts diff --git a/dash/src/features/auditLogs/hooks/useAuditLogs.ts b/apps/web/src/features/auditLogs/hooks/useAuditLogs.ts similarity index 100% rename from dash/src/features/auditLogs/hooks/useAuditLogs.ts rename to apps/web/src/features/auditLogs/hooks/useAuditLogs.ts diff --git a/dash/src/features/auditLogs/index.ts b/apps/web/src/features/auditLogs/index.ts similarity index 100% rename from dash/src/features/auditLogs/index.ts rename to apps/web/src/features/auditLogs/index.ts diff --git a/dash/src/features/auditLogs/utils/auditLogFormatters.ts b/apps/web/src/features/auditLogs/utils/auditLogFormatters.ts similarity index 100% rename from dash/src/features/auditLogs/utils/auditLogFormatters.ts rename to apps/web/src/features/auditLogs/utils/auditLogFormatters.ts diff --git a/dash/src/features/auth/LoginPage.tsx b/apps/web/src/features/auth/LoginPage.tsx similarity index 100% rename from dash/src/features/auth/LoginPage.tsx rename to apps/web/src/features/auth/LoginPage.tsx diff --git a/dash/src/features/auth/SetupPage.tsx b/apps/web/src/features/auth/SetupPage.tsx similarity index 100% rename from dash/src/features/auth/SetupPage.tsx rename to apps/web/src/features/auth/SetupPage.tsx diff --git a/dash/src/features/auth/components/LoginForm.tsx b/apps/web/src/features/auth/components/LoginForm.tsx similarity index 100% rename from dash/src/features/auth/components/LoginForm.tsx rename to apps/web/src/features/auth/components/LoginForm.tsx diff --git a/dash/src/features/auth/components/index.ts b/apps/web/src/features/auth/components/index.ts similarity index 100% rename from dash/src/features/auth/components/index.ts rename to apps/web/src/features/auth/components/index.ts diff --git a/dash/src/features/auth/components/signup-form.tsx b/apps/web/src/features/auth/components/signup-form.tsx similarity index 100% rename from dash/src/features/auth/components/signup-form.tsx rename to apps/web/src/features/auth/components/signup-form.tsx diff --git a/dash/src/features/auth/index.ts b/apps/web/src/features/auth/index.ts similarity index 100% rename from dash/src/features/auth/index.ts rename to apps/web/src/features/auth/index.ts diff --git a/dash/src/features/dashboard/DashboardPage.tsx b/apps/web/src/features/dashboard/DashboardPage.tsx similarity index 100% rename from dash/src/features/dashboard/DashboardPage.tsx rename to apps/web/src/features/dashboard/DashboardPage.tsx diff --git a/dash/src/features/dashboard/components/ChartCard.tsx b/apps/web/src/features/dashboard/components/ChartCard.tsx similarity index 100% rename from dash/src/features/dashboard/components/ChartCard.tsx rename to apps/web/src/features/dashboard/components/ChartCard.tsx diff --git a/dash/src/features/dashboard/components/MetricCard.tsx b/apps/web/src/features/dashboard/components/MetricCard.tsx similarity index 100% rename from dash/src/features/dashboard/components/MetricCard.tsx rename to apps/web/src/features/dashboard/components/MetricCard.tsx diff --git a/dash/src/features/dashboard/components/SystemOverview.tsx b/apps/web/src/features/dashboard/components/SystemOverview.tsx similarity index 100% rename from dash/src/features/dashboard/components/SystemOverview.tsx rename to apps/web/src/features/dashboard/components/SystemOverview.tsx diff --git a/dash/src/features/dashboard/components/index.ts b/apps/web/src/features/dashboard/components/index.ts similarity index 100% rename from dash/src/features/dashboard/components/index.ts rename to apps/web/src/features/dashboard/components/index.ts diff --git a/dash/src/features/dashboard/index.ts b/apps/web/src/features/dashboard/index.ts similarity index 100% rename from dash/src/features/dashboard/index.ts rename to apps/web/src/features/dashboard/index.ts diff --git a/dash/src/features/dashboard/utils.ts b/apps/web/src/features/dashboard/utils.ts similarity index 100% rename from dash/src/features/dashboard/utils.ts rename to apps/web/src/features/dashboard/utils.ts diff --git a/dash/src/features/git/GitPage.tsx b/apps/web/src/features/git/GitPage.tsx similarity index 100% rename from dash/src/features/git/GitPage.tsx rename to apps/web/src/features/git/GitPage.tsx diff --git a/dash/src/features/git/components/CreateAppModal.tsx b/apps/web/src/features/git/components/CreateAppModal.tsx similarity index 100% rename from dash/src/features/git/components/CreateAppModal.tsx rename to apps/web/src/features/git/components/CreateAppModal.tsx diff --git a/dash/src/features/git/components/GitHubCard.tsx b/apps/web/src/features/git/components/GitHubCard.tsx similarity index 100% rename from dash/src/features/git/components/GitHubCard.tsx rename to apps/web/src/features/git/components/GitHubCard.tsx diff --git a/dash/src/features/git/components/ProviderCard.tsx b/apps/web/src/features/git/components/ProviderCard.tsx similarity index 100% rename from dash/src/features/git/components/ProviderCard.tsx rename to apps/web/src/features/git/components/ProviderCard.tsx diff --git a/dash/src/features/git/components/index.ts b/apps/web/src/features/git/components/index.ts similarity index 100% rename from dash/src/features/git/components/index.ts rename to apps/web/src/features/git/components/index.ts diff --git a/dash/src/features/git/index.ts b/apps/web/src/features/git/index.ts similarity index 100% rename from dash/src/features/git/index.ts rename to apps/web/src/features/git/index.ts diff --git a/dash/src/features/git/utils.ts b/apps/web/src/features/git/utils.ts similarity index 100% rename from dash/src/features/git/utils.ts rename to apps/web/src/features/git/utils.ts diff --git a/dash/src/features/index.ts b/apps/web/src/features/index.ts similarity index 100% rename from dash/src/features/index.ts rename to apps/web/src/features/index.ts diff --git a/dash/src/features/projects/ProjectPage.tsx b/apps/web/src/features/projects/ProjectPage.tsx similarity index 100% rename from dash/src/features/projects/ProjectPage.tsx rename to apps/web/src/features/projects/ProjectPage.tsx diff --git a/dash/src/features/projects/ProjectsPage.tsx b/apps/web/src/features/projects/ProjectsPage.tsx similarity index 100% rename from dash/src/features/projects/ProjectsPage.tsx rename to apps/web/src/features/projects/ProjectsPage.tsx diff --git a/dash/src/features/projects/components/AppCard.tsx b/apps/web/src/features/projects/components/AppCard.tsx similarity index 100% rename from dash/src/features/projects/components/AppCard.tsx rename to apps/web/src/features/projects/components/AppCard.tsx diff --git a/dash/src/features/projects/components/AppTypeSelection.tsx b/apps/web/src/features/projects/components/AppTypeSelection.tsx similarity index 100% rename from dash/src/features/projects/components/AppTypeSelection.tsx rename to apps/web/src/features/projects/components/AppTypeSelection.tsx diff --git a/dash/src/features/projects/components/ComposeAppForm.tsx b/apps/web/src/features/projects/components/ComposeAppForm.tsx similarity index 100% rename from dash/src/features/projects/components/ComposeAppForm.tsx rename to apps/web/src/features/projects/components/ComposeAppForm.tsx diff --git a/dash/src/features/projects/components/CreateAppModal.tsx b/apps/web/src/features/projects/components/CreateAppModal.tsx similarity index 100% rename from dash/src/features/projects/components/CreateAppModal.tsx rename to apps/web/src/features/projects/components/CreateAppModal.tsx diff --git a/dash/src/features/projects/components/DatabaseForm.tsx b/apps/web/src/features/projects/components/DatabaseForm.tsx similarity index 100% rename from dash/src/features/projects/components/DatabaseForm.tsx rename to apps/web/src/features/projects/components/DatabaseForm.tsx diff --git a/dash/src/features/projects/components/ManageMembersModal.tsx b/apps/web/src/features/projects/components/ManageMembersModal.tsx similarity index 100% rename from dash/src/features/projects/components/ManageMembersModal.tsx rename to apps/web/src/features/projects/components/ManageMembersModal.tsx diff --git a/dash/src/features/projects/components/ProjectCard.tsx b/apps/web/src/features/projects/components/ProjectCard.tsx similarity index 100% rename from dash/src/features/projects/components/ProjectCard.tsx rename to apps/web/src/features/projects/components/ProjectCard.tsx diff --git a/dash/src/features/projects/components/ServiceForm.tsx b/apps/web/src/features/projects/components/ServiceForm.tsx similarity index 100% rename from dash/src/features/projects/components/ServiceForm.tsx rename to apps/web/src/features/projects/components/ServiceForm.tsx diff --git a/dash/src/features/projects/components/WebAppForm.tsx b/apps/web/src/features/projects/components/WebAppForm.tsx similarity index 100% rename from dash/src/features/projects/components/WebAppForm.tsx rename to apps/web/src/features/projects/components/WebAppForm.tsx diff --git a/dash/src/features/projects/index.ts b/apps/web/src/features/projects/index.ts similarity index 100% rename from dash/src/features/projects/index.ts rename to apps/web/src/features/projects/index.ts diff --git a/dash/src/features/projects/utils.ts b/apps/web/src/features/projects/utils.ts similarity index 100% rename from dash/src/features/projects/utils.ts rename to apps/web/src/features/projects/utils.ts diff --git a/dash/src/features/users/UsersPage.tsx b/apps/web/src/features/users/UsersPage.tsx similarity index 100% rename from dash/src/features/users/UsersPage.tsx rename to apps/web/src/features/users/UsersPage.tsx diff --git a/dash/src/features/users/components/CreateUserModal.tsx b/apps/web/src/features/users/components/CreateUserModal.tsx similarity index 100% rename from dash/src/features/users/components/CreateUserModal.tsx rename to apps/web/src/features/users/components/CreateUserModal.tsx diff --git a/dash/src/features/users/components/UserCard.tsx b/apps/web/src/features/users/components/UserCard.tsx similarity index 100% rename from dash/src/features/users/components/UserCard.tsx rename to apps/web/src/features/users/components/UserCard.tsx diff --git a/dash/src/features/users/components/index.ts b/apps/web/src/features/users/components/index.ts similarity index 100% rename from dash/src/features/users/components/index.ts rename to apps/web/src/features/users/components/index.ts diff --git a/dash/src/features/users/index.ts b/apps/web/src/features/users/index.ts similarity index 100% rename from dash/src/features/users/index.ts rename to apps/web/src/features/users/index.ts diff --git a/dash/src/features/users/utils.ts b/apps/web/src/features/users/utils.ts similarity index 100% rename from dash/src/features/users/utils.ts rename to apps/web/src/features/users/utils.ts diff --git a/dash/src/hooks/index.ts b/apps/web/src/hooks/index.ts similarity index 100% rename from dash/src/hooks/index.ts rename to apps/web/src/hooks/index.ts diff --git a/dash/src/hooks/use-application.ts b/apps/web/src/hooks/use-application.ts similarity index 100% rename from dash/src/hooks/use-application.ts rename to apps/web/src/hooks/use-application.ts diff --git a/dash/src/hooks/use-applications.ts b/apps/web/src/hooks/use-applications.ts similarity index 100% rename from dash/src/hooks/use-applications.ts rename to apps/web/src/hooks/use-applications.ts diff --git a/dash/src/hooks/use-container-logs.ts b/apps/web/src/hooks/use-container-logs.ts similarity index 100% rename from dash/src/hooks/use-container-logs.ts rename to apps/web/src/hooks/use-container-logs.ts diff --git a/dash/src/hooks/use-deployment-monitor.ts b/apps/web/src/hooks/use-deployment-monitor.ts similarity index 100% rename from dash/src/hooks/use-deployment-monitor.ts rename to apps/web/src/hooks/use-deployment-monitor.ts diff --git a/dash/src/hooks/use-domains.ts b/apps/web/src/hooks/use-domains.ts similarity index 100% rename from dash/src/hooks/use-domains.ts rename to apps/web/src/hooks/use-domains.ts diff --git a/dash/src/hooks/use-environment-variables.ts b/apps/web/src/hooks/use-environment-variables.ts similarity index 100% rename from dash/src/hooks/use-environment-variables.ts rename to apps/web/src/hooks/use-environment-variables.ts diff --git a/dash/src/hooks/use-mobile.ts b/apps/web/src/hooks/use-mobile.ts similarity index 100% rename from dash/src/hooks/use-mobile.ts rename to apps/web/src/hooks/use-mobile.ts diff --git a/dash/src/hooks/use-project.ts b/apps/web/src/hooks/use-project.ts similarity index 100% rename from dash/src/hooks/use-project.ts rename to apps/web/src/hooks/use-project.ts diff --git a/dash/src/hooks/use-projects.ts b/apps/web/src/hooks/use-projects.ts similarity index 100% rename from dash/src/hooks/use-projects.ts rename to apps/web/src/hooks/use-projects.ts diff --git a/dash/src/hooks/use-users.ts b/apps/web/src/hooks/use-users.ts similarity index 100% rename from dash/src/hooks/use-users.ts rename to apps/web/src/hooks/use-users.ts diff --git a/dash/src/hooks/use-version.ts b/apps/web/src/hooks/use-version.ts similarity index 100% rename from dash/src/hooks/use-version.ts rename to apps/web/src/hooks/use-version.ts diff --git a/dash/src/index.css b/apps/web/src/index.css similarity index 100% rename from dash/src/index.css rename to apps/web/src/index.css diff --git a/dash/src/lib/ansi-parser.ts b/apps/web/src/lib/ansi-parser.ts similarity index 100% rename from dash/src/lib/ansi-parser.ts rename to apps/web/src/lib/ansi-parser.ts diff --git a/dash/src/lib/utils.ts b/apps/web/src/lib/utils.ts similarity index 100% rename from dash/src/lib/utils.ts rename to apps/web/src/lib/utils.ts diff --git a/dash/src/main.tsx b/apps/web/src/main.tsx similarity index 100% rename from dash/src/main.tsx rename to apps/web/src/main.tsx diff --git a/dash/src/pages/Callback.tsx b/apps/web/src/pages/Callback.tsx similarity index 100% rename from dash/src/pages/Callback.tsx rename to apps/web/src/pages/Callback.tsx diff --git a/dash/src/pages/Databases.tsx b/apps/web/src/pages/Databases.tsx similarity index 100% rename from dash/src/pages/Databases.tsx rename to apps/web/src/pages/Databases.tsx diff --git a/dash/src/pages/Deployments.tsx b/apps/web/src/pages/Deployments.tsx similarity index 100% rename from dash/src/pages/Deployments.tsx rename to apps/web/src/pages/Deployments.tsx diff --git a/dash/src/pages/Logs.tsx b/apps/web/src/pages/Logs.tsx similarity index 100% rename from dash/src/pages/Logs.tsx rename to apps/web/src/pages/Logs.tsx diff --git a/dash/src/pages/Profile.tsx b/apps/web/src/pages/Profile.tsx similarity index 100% rename from dash/src/pages/Profile.tsx rename to apps/web/src/pages/Profile.tsx diff --git a/dash/src/pages/Settings.tsx b/apps/web/src/pages/Settings.tsx similarity index 100% rename from dash/src/pages/Settings.tsx rename to apps/web/src/pages/Settings.tsx diff --git a/dash/src/pages/Updates.tsx b/apps/web/src/pages/Updates.tsx similarity index 100% rename from dash/src/pages/Updates.tsx rename to apps/web/src/pages/Updates.tsx diff --git a/dash/src/providers/auth-provider.tsx b/apps/web/src/providers/auth-provider.tsx similarity index 100% rename from dash/src/providers/auth-provider.tsx rename to apps/web/src/providers/auth-provider.tsx diff --git a/dash/src/providers/index.ts b/apps/web/src/providers/index.ts similarity index 100% rename from dash/src/providers/index.ts rename to apps/web/src/providers/index.ts diff --git a/dash/src/services/applications.service.ts b/apps/web/src/services/applications.service.ts similarity index 100% rename from dash/src/services/applications.service.ts rename to apps/web/src/services/applications.service.ts diff --git a/dash/src/services/auditLogs.service.ts b/apps/web/src/services/auditLogs.service.ts similarity index 100% rename from dash/src/services/auditLogs.service.ts rename to apps/web/src/services/auditLogs.service.ts diff --git a/dash/src/services/auth.service.ts b/apps/web/src/services/auth.service.ts similarity index 100% rename from dash/src/services/auth.service.ts rename to apps/web/src/services/auth.service.ts diff --git a/dash/src/services/deployments.service.ts b/apps/web/src/services/deployments.service.ts similarity index 100% rename from dash/src/services/deployments.service.ts rename to apps/web/src/services/deployments.service.ts diff --git a/dash/src/services/index.ts b/apps/web/src/services/index.ts similarity index 100% rename from dash/src/services/index.ts rename to apps/web/src/services/index.ts diff --git a/dash/src/services/projects.service.ts b/apps/web/src/services/projects.service.ts similarity index 100% rename from dash/src/services/projects.service.ts rename to apps/web/src/services/projects.service.ts diff --git a/dash/src/services/settings.service.ts b/apps/web/src/services/settings.service.ts similarity index 100% rename from dash/src/services/settings.service.ts rename to apps/web/src/services/settings.service.ts diff --git a/dash/src/services/users.service.ts b/apps/web/src/services/users.service.ts similarity index 100% rename from dash/src/services/users.service.ts rename to apps/web/src/services/users.service.ts diff --git a/dash/src/types/app.ts b/apps/web/src/types/app.ts similarity index 100% rename from dash/src/types/app.ts rename to apps/web/src/types/app.ts diff --git a/dash/src/types/auditLog.ts b/apps/web/src/types/auditLog.ts similarity index 100% rename from dash/src/types/auditLog.ts rename to apps/web/src/types/auditLog.ts diff --git a/dash/src/types/common.ts b/apps/web/src/types/common.ts similarity index 100% rename from dash/src/types/common.ts rename to apps/web/src/types/common.ts diff --git a/dash/src/types/deployment.ts b/apps/web/src/types/deployment.ts similarity index 100% rename from dash/src/types/deployment.ts rename to apps/web/src/types/deployment.ts diff --git a/dash/src/types/git.ts b/apps/web/src/types/git.ts similarity index 100% rename from dash/src/types/git.ts rename to apps/web/src/types/git.ts diff --git a/dash/src/types/index.ts b/apps/web/src/types/index.ts similarity index 100% rename from dash/src/types/index.ts rename to apps/web/src/types/index.ts diff --git a/dash/src/types/project.ts b/apps/web/src/types/project.ts similarity index 100% rename from dash/src/types/project.ts rename to apps/web/src/types/project.ts diff --git a/dash/src/types/user.ts b/apps/web/src/types/user.ts similarity index 100% rename from dash/src/types/user.ts rename to apps/web/src/types/user.ts diff --git a/dash/src/utils/formatters/date.ts b/apps/web/src/utils/formatters/date.ts similarity index 100% rename from dash/src/utils/formatters/date.ts rename to apps/web/src/utils/formatters/date.ts diff --git a/dash/src/utils/formatters/text.ts b/apps/web/src/utils/formatters/text.ts similarity index 100% rename from dash/src/utils/formatters/text.ts rename to apps/web/src/utils/formatters/text.ts diff --git a/dash/tsconfig.app.json b/apps/web/tsconfig.app.json similarity index 100% rename from dash/tsconfig.app.json rename to apps/web/tsconfig.app.json diff --git a/dash/tsconfig.json b/apps/web/tsconfig.json similarity index 100% rename from dash/tsconfig.json rename to apps/web/tsconfig.json diff --git a/dash/tsconfig.node.json b/apps/web/tsconfig.node.json similarity index 100% rename from dash/tsconfig.node.json rename to apps/web/tsconfig.node.json diff --git a/dash/vite.config.ts b/apps/web/vite.config.ts similarity index 100% rename from dash/vite.config.ts rename to apps/web/vite.config.ts diff --git a/traefik-compose.yml b/deploy/traefik-compose.yml similarity index 100% rename from traefik-compose.yml rename to deploy/traefik-compose.yml diff --git a/traefik-static.yml b/deploy/traefik-static.yml similarity index 100% rename from traefik-static.yml rename to deploy/traefik-static.yml diff --git a/test/database/database_test.go b/integration/test/database/database_test.go similarity index 100% rename from test/database/database_test.go rename to integration/test/database/database_test.go diff --git a/test/go.mod b/integration/test/go.mod similarity index 100% rename from test/go.mod rename to integration/test/go.mod diff --git a/test/go.sum b/integration/test/go.sum similarity index 100% rename from test/go.sum rename to integration/test/go.sum diff --git a/Makefile b/scripts/Makefile similarity index 100% rename from Makefile rename to scripts/Makefile diff --git a/install-local.sh b/scripts/install-local.sh similarity index 100% rename from install-local.sh rename to scripts/install-local.sh diff --git a/install.sh b/scripts/install.sh similarity index 100% rename from install.sh rename to scripts/install.sh diff --git a/uninstall.sh b/scripts/uninstall.sh similarity index 100% rename from uninstall.sh rename to scripts/uninstall.sh diff --git a/update.sh b/scripts/update.sh similarity index 100% rename from update.sh rename to scripts/update.sh diff --git a/www b/www deleted file mode 160000 index c67459d..0000000 --- a/www +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c67459dd374a6e875b8bd93a1090ff7a37a32adf From d2007366d24c90846fe3b372684bdaea33020649 Mon Sep 17 00:00:00 2001 From: 07calc Date: Sun, 29 Mar 2026 19:20:05 +0530 Subject: [PATCH 2/5] chore: change corecollectives to trymist --- README.md | 8 +- apps/daemon/api/RegisterRoutes.go | 28 +- .../handlers/applications/containerControl.go | 10 +- .../api/handlers/applications/create.go | 6 +- .../api/handlers/applications/delete.go | 10 +- .../api/handlers/applications/domains.go | 8 +- apps/daemon/api/handlers/applications/envs.go | 6 +- apps/daemon/api/handlers/applications/get.go | 6 +- .../api/handlers/applications/getById.go | 6 +- .../handlers/applications/getLatestCommit.go | 8 +- .../api/handlers/applications/preview.go | 6 +- .../api/handlers/applications/update.go | 8 +- .../api/handlers/applications/volumes.go | 6 +- apps/daemon/api/handlers/auditlogs/getAll.go | 6 +- .../api/handlers/auditlogs/getByResource.go | 6 +- apps/daemon/api/handlers/auth/login.go | 6 +- apps/daemon/api/handlers/auth/logout.go | 4 +- apps/daemon/api/handlers/auth/me.go | 8 +- apps/daemon/api/handlers/auth/signup.go | 10 +- .../handlers/deployments/AddDeployHandler.go | 12 +- .../api/handlers/deployments/getByAppId.go | 6 +- .../handlers/deployments/getCompletedLogs.go | 8 +- .../api/handlers/deployments/logsHandler.go | 8 +- .../handlers/deployments/stopDeployment.go | 10 +- apps/daemon/api/handlers/github/createApp.go | 6 +- apps/daemon/api/handlers/github/getApp.go | 6 +- .../daemon/api/handlers/github/getBranches.go | 6 +- .../api/handlers/github/installation.go | 4 +- apps/daemon/api/handlers/github/manifest.go | 2 +- .../api/handlers/github/repositories.go | 6 +- apps/daemon/api/handlers/github/webhook.go | 6 +- .../api/handlers/projects/createProject.go | 6 +- .../api/handlers/projects/deleteProject.go | 6 +- .../api/handlers/projects/getProjectFromId.go | 6 +- .../api/handlers/projects/getProjects.go | 6 +- .../api/handlers/projects/updateMembers.go | 6 +- .../api/handlers/projects/updateProject.go | 6 +- .../api/handlers/settings/dockerCleanup.go | 8 +- .../api/handlers/settings/systemSettings.go | 8 +- apps/daemon/api/handlers/templates/list.go | 4 +- apps/daemon/api/handlers/updates/history.go | 6 +- apps/daemon/api/handlers/updates/update.go | 10 +- apps/daemon/api/handlers/updates/version.go | 8 +- apps/daemon/api/handlers/users/createUser.go | 6 +- apps/daemon/api/handlers/users/deleteUser.go | 8 +- apps/daemon/api/handlers/users/getUserById.go | 6 +- apps/daemon/api/handlers/users/getUsers.go | 6 +- .../daemon/api/handlers/users/gitProviders.go | 6 +- .../api/handlers/users/updatePassword.go | 4 +- apps/daemon/api/handlers/users/updateUser.go | 6 +- .../daemon/api/handlers/users/uploadAvatar.go | 10 +- apps/daemon/api/main.go | 4 +- apps/daemon/api/middleware/auth.go | 4 +- apps/daemon/compose/composeDeployer.go | 6 +- apps/daemon/db/main.go | 2 +- apps/daemon/db/migrations.go | 2 +- apps/daemon/docker/container.go | 2 +- apps/daemon/docker/deployer.go | 6 +- apps/daemon/docker/deployerMain.go | 6 +- apps/daemon/docker/loadDeployment.go | 2 +- apps/daemon/docker/utils.go | 2 +- apps/daemon/fs/createDockerBuildLogFile.go | 4 +- apps/daemon/git/clone.go | 4 +- apps/daemon/git/commit.go | 6 +- apps/daemon/github/generateGithubJwt.go | 2 +- apps/daemon/github/getAccessToken.go | 2 +- apps/daemon/github/getLatestCommit.go | 2 +- apps/daemon/github/webHook.go | 2 +- apps/daemon/go.mod | 2 +- apps/daemon/lib/cleanup.go | 4 +- apps/daemon/main.go | 14 +- apps/daemon/models/apiToken.go | 2 +- apps/daemon/models/app.go | 2 +- apps/daemon/models/backup.go | 4 +- apps/daemon/models/deployment.go | 4 +- apps/daemon/models/domain.go | 4 +- apps/daemon/models/envVariable.go | 2 +- apps/daemon/models/notification.go | 4 +- apps/daemon/models/project.go | 4 +- apps/daemon/models/user.go | 4 +- apps/daemon/queue/deployQueue.go | 2 +- apps/daemon/queue/handleWork.go | 14 +- apps/daemon/static/assets/index-BH9kEiR3.js | 2 +- apps/daemon/static/assets/index-DSToe-oF.js | 2 +- apps/daemon/store/setupRequired.go | 2 +- apps/daemon/websockets/containerLogs.go | 4 +- apps/daemon/websockets/containerStats.go | 4 +- apps/daemon/websockets/statusWatcher.go | 4 +- apps/server-cli/cmd/db.go | 2 +- apps/server-cli/cmd/settings.go | 2 +- apps/server-cli/cmd/user.go | 2 +- apps/server-cli/go.mod | 12 +- apps/server-cli/go.sum | 12 +- apps/server-cli/main.go | 2 +- apps/web/src/components/app-sidebar.tsx | 2 +- fyrer.yml | 8 +- integration/test/database/database_test.go | 6 +- integration/test/go.mod | 4 +- scripts/install-local.sh | 72 +++--- scripts/install.sh | 240 ++++++++++-------- scripts/update.sh | 2 +- 101 files changed, 453 insertions(+), 423 deletions(-) diff --git a/README.md b/README.md index 5aaed4a..53eab3a 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ A lightweight, self-hostable Platform-as-a-Service built for developers. Deploy Docker applications from Git with automatic builds, custom domains, SSL certificates, and real-time monitoring. -[![PR Build Check](https://github.com/corecollectives/Mist/actions/workflows/pr-build-check.yml/badge.svg)](https://github.com/corecollectives/Mist/actions/workflows/pr-build-check.yml) -[![Tests](https://github.com/corecollectives/Mist/actions/workflows/tests.yml/badge.svg)](https://github.com/corecollectives/Mist/actions/workflows/tests.yml) +[![PR Build Check](https://github.com/trymist/mist/actions/workflows/pr-build-check.yml/badge.svg)](https://github.com/trymist/mist/actions/workflows/pr-build-check.yml) +[![Tests](https://github.com/trymist/mist/actions/workflows/tests.yml/badge.svg)](https://github.com/trymist/mist/actions/workflows/tests.yml) ## Quick Start @@ -47,14 +47,14 @@ cargo install fyrer Clone and start the development environment: ```bash -git clone https://github.com/corecollectives/mist +git clone https://github.com/trymist/mist cd mist fyrer ``` ## Community -- [GitHub](https://github.com/corecollectives/mist) +- [GitHub](https://github.com/trymist/mist) - [Discord](https://discord.gg/hr6TCQDDkj) - [Documentation](https://trymist.cloud/guide/getting-started.html) diff --git a/apps/daemon/api/RegisterRoutes.go b/apps/daemon/api/RegisterRoutes.go index 31100ed..0db44d1 100644 --- a/apps/daemon/api/RegisterRoutes.go +++ b/apps/daemon/api/RegisterRoutes.go @@ -3,20 +3,20 @@ package api import ( "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/handlers/applications" - "github.com/corecollectives/mist/api/handlers/auditlogs" - "github.com/corecollectives/mist/api/handlers/auth" - "github.com/corecollectives/mist/api/handlers/deployments" - "github.com/corecollectives/mist/api/handlers/github" - "github.com/corecollectives/mist/api/handlers/projects" - "github.com/corecollectives/mist/api/handlers/settings" - "github.com/corecollectives/mist/api/handlers/templates" - "github.com/corecollectives/mist/api/handlers/updates" - "github.com/corecollectives/mist/api/handlers/users" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/websockets" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/handlers/applications" + "github.com/trymist/mist/api/handlers/auditlogs" + "github.com/trymist/mist/api/handlers/auth" + "github.com/trymist/mist/api/handlers/deployments" + "github.com/trymist/mist/api/handlers/github" + "github.com/trymist/mist/api/handlers/projects" + "github.com/trymist/mist/api/handlers/settings" + "github.com/trymist/mist/api/handlers/templates" + "github.com/trymist/mist/api/handlers/updates" + "github.com/trymist/mist/api/handlers/users" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/websockets" ) func RegisterRoutes(mux *http.ServeMux) { diff --git a/apps/daemon/api/handlers/applications/containerControl.go b/apps/daemon/api/handlers/applications/containerControl.go index 250b572..929f7a0 100644 --- a/apps/daemon/api/handlers/applications/containerControl.go +++ b/apps/daemon/api/handlers/applications/containerControl.go @@ -5,11 +5,11 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/compose" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/compose" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/models" ) func StopContainerHandler(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/create.go b/apps/daemon/api/handlers/applications/create.go index 6516e01..92ea23a 100644 --- a/apps/daemon/api/handlers/applications/create.go +++ b/apps/daemon/api/handlers/applications/create.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func CreateApplication(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/delete.go b/apps/daemon/api/handlers/applications/delete.go index 83d55b9..fdfe289 100644 --- a/apps/daemon/api/handlers/applications/delete.go +++ b/apps/daemon/api/handlers/applications/delete.go @@ -10,13 +10,13 @@ import ( "strconv" "time" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/models" "github.com/moby/moby/client" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/models" ) func DeleteApplication(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/domains.go b/apps/daemon/api/handlers/applications/domains.go index 0036084..807e48e 100644 --- a/apps/daemon/api/handlers/applications/domains.go +++ b/apps/daemon/api/handlers/applications/domains.go @@ -6,10 +6,10 @@ import ( "strings" "time" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" + "github.com/trymist/mist/utils" ) func CreateDomain(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/envs.go b/apps/daemon/api/handlers/applications/envs.go index a3a547f..6f1541e 100644 --- a/apps/daemon/api/handlers/applications/envs.go +++ b/apps/daemon/api/handlers/applications/envs.go @@ -5,9 +5,9 @@ import ( "net/http" "strings" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func CreateEnvVariable(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/get.go b/apps/daemon/api/handlers/applications/get.go index 8c0e88f..084fe09 100644 --- a/apps/daemon/api/handlers/applications/get.go +++ b/apps/daemon/api/handlers/applications/get.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetApplicationByProjectID(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/getById.go b/apps/daemon/api/handlers/applications/getById.go index a505466..7846de0 100644 --- a/apps/daemon/api/handlers/applications/getById.go +++ b/apps/daemon/api/handlers/applications/getById.go @@ -5,9 +5,9 @@ import ( "fmt" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetApplicationById(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/getLatestCommit.go b/apps/daemon/api/handlers/applications/getLatestCommit.go index 1335e9a..d3d87d6 100644 --- a/apps/daemon/api/handlers/applications/getLatestCommit.go +++ b/apps/daemon/api/handlers/applications/getLatestCommit.go @@ -4,10 +4,10 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/git" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/git" + "github.com/trymist/mist/models" ) func GetLatestCommit(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/preview.go b/apps/daemon/api/handlers/applications/preview.go index 71b528c..69f164e 100644 --- a/apps/daemon/api/handlers/applications/preview.go +++ b/apps/daemon/api/handlers/applications/preview.go @@ -7,9 +7,9 @@ import ( "net" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/applications/update.go b/apps/daemon/api/handlers/applications/update.go index cc6b320..08164f2 100644 --- a/apps/daemon/api/handlers/applications/update.go +++ b/apps/daemon/api/handlers/applications/update.go @@ -8,11 +8,11 @@ import ( "strings" "time" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/models" "github.com/moby/moby/client" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/models" ) func UpdateApplication(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/applications/volumes.go b/apps/daemon/api/handlers/applications/volumes.go index b49fc72..57e9f50 100644 --- a/apps/daemon/api/handlers/applications/volumes.go +++ b/apps/daemon/api/handlers/applications/volumes.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) type CreateVolumeRequest struct { diff --git a/apps/daemon/api/handlers/auditlogs/getAll.go b/apps/daemon/api/handlers/auditlogs/getAll.go index 0cddd89..5e15d8b 100644 --- a/apps/daemon/api/handlers/auditlogs/getAll.go +++ b/apps/daemon/api/handlers/auditlogs/getAll.go @@ -4,9 +4,9 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetAllAuditLogs(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/auditlogs/getByResource.go b/apps/daemon/api/handlers/auditlogs/getByResource.go index 95e456b..cd29bb1 100644 --- a/apps/daemon/api/handlers/auditlogs/getByResource.go +++ b/apps/daemon/api/handlers/auditlogs/getByResource.go @@ -4,9 +4,9 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetAuditLogsByResource(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/auth/login.go b/apps/daemon/api/handlers/auth/login.go index b0b91dd..7cdbaaf 100644 --- a/apps/daemon/api/handlers/auth/login.go +++ b/apps/daemon/api/handlers/auth/login.go @@ -6,10 +6,10 @@ import ( "net/http" "strings" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/auth/logout.go b/apps/daemon/api/handlers/auth/logout.go index 3cf9da3..31c8a02 100644 --- a/apps/daemon/api/handlers/auth/logout.go +++ b/apps/daemon/api/handlers/auth/logout.go @@ -4,8 +4,8 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func LogoutHandler(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/auth/me.go b/apps/daemon/api/handlers/auth/me.go index 270f5ac..c1ed816 100644 --- a/apps/daemon/api/handlers/auth/me.go +++ b/apps/daemon/api/handlers/auth/me.go @@ -4,10 +4,10 @@ import ( "errors" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/store" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" + "github.com/trymist/mist/store" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/auth/signup.go b/apps/daemon/api/handlers/auth/signup.go index 00dc5fd..98cf855 100644 --- a/apps/daemon/api/handlers/auth/signup.go +++ b/apps/daemon/api/handlers/auth/signup.go @@ -5,12 +5,12 @@ import ( "net/http" "strings" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/store" - "github.com/corecollectives/mist/utils" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" + "github.com/trymist/mist/store" + "github.com/trymist/mist/utils" ) func SignUpHandler(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/deployments/AddDeployHandler.go b/apps/daemon/api/handlers/deployments/AddDeployHandler.go index b34ead6..31df51c 100644 --- a/apps/daemon/api/handlers/deployments/AddDeployHandler.go +++ b/apps/daemon/api/handlers/deployments/AddDeployHandler.go @@ -4,13 +4,13 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/git" - "github.com/corecollectives/mist/github" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/queue" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/git" + "github.com/trymist/mist/github" + "github.com/trymist/mist/models" + "github.com/trymist/mist/queue" ) func AddDeployHandler(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/deployments/getByAppId.go b/apps/daemon/api/handlers/deployments/getByAppId.go index 59f8df0..8232e34 100644 --- a/apps/daemon/api/handlers/deployments/getByAppId.go +++ b/apps/daemon/api/handlers/deployments/getByAppId.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetByApplicationID(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/deployments/getCompletedLogs.go b/apps/daemon/api/handlers/deployments/getCompletedLogs.go index 23adb6d..c178513 100644 --- a/apps/daemon/api/handlers/deployments/getCompletedLogs.go +++ b/apps/daemon/api/handlers/deployments/getCompletedLogs.go @@ -7,11 +7,11 @@ import ( "os" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/models" ) type GetDeploymentLogsResponse struct { diff --git a/apps/daemon/api/handlers/deployments/logsHandler.go b/apps/daemon/api/handlers/deployments/logsHandler.go index 44ebd10..32e9151 100644 --- a/apps/daemon/api/handlers/deployments/logsHandler.go +++ b/apps/daemon/api/handlers/deployments/logsHandler.go @@ -8,11 +8,11 @@ import ( "strconv" "time" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/websockets" "github.com/gorilla/websocket" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/models" + "github.com/trymist/mist/websockets" ) var upgrader = websocket.Upgrader{ diff --git a/apps/daemon/api/handlers/deployments/stopDeployment.go b/apps/daemon/api/handlers/deployments/stopDeployment.go index d310e47..9b1acc6 100644 --- a/apps/daemon/api/handlers/deployments/stopDeployment.go +++ b/apps/daemon/api/handlers/deployments/stopDeployment.go @@ -7,12 +7,12 @@ import ( "path/filepath" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/queue" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/models" + "github.com/trymist/mist/queue" ) type stopDeployment struct { diff --git a/apps/daemon/api/handlers/github/createApp.go b/apps/daemon/api/handlers/github/createApp.go index 1915991..14ce7c9 100644 --- a/apps/daemon/api/handlers/github/createApp.go +++ b/apps/daemon/api/handlers/github/createApp.go @@ -8,9 +8,9 @@ import ( "net/http" "os" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) type HookAttributes struct { diff --git a/apps/daemon/api/handlers/github/getApp.go b/apps/daemon/api/handlers/github/getApp.go index 479afca..54ee9e9 100644 --- a/apps/daemon/api/handlers/github/getApp.go +++ b/apps/daemon/api/handlers/github/getApp.go @@ -3,9 +3,9 @@ package github import ( "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetApp(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/github/getBranches.go b/apps/daemon/api/handlers/github/getBranches.go index 1795392..e5b3804 100644 --- a/apps/daemon/api/handlers/github/getBranches.go +++ b/apps/daemon/api/handlers/github/getBranches.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/github" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/github" ) func GetBranches(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/github/installation.go b/apps/daemon/api/handlers/github/installation.go index 862f20b..aa783d2 100644 --- a/apps/daemon/api/handlers/github/installation.go +++ b/apps/daemon/api/handlers/github/installation.go @@ -7,8 +7,8 @@ import ( "net/http" "time" - "github.com/corecollectives/mist/github" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/github" + "github.com/trymist/mist/models" ) type InstallationTokenResponse struct { diff --git a/apps/daemon/api/handlers/github/manifest.go b/apps/daemon/api/handlers/github/manifest.go index abe5093..4a88f4b 100644 --- a/apps/daemon/api/handlers/github/manifest.go +++ b/apps/daemon/api/handlers/github/manifest.go @@ -8,8 +8,8 @@ import ( "net/http" "time" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/models" ) type GithubAppConversion struct { diff --git a/apps/daemon/api/handlers/github/repositories.go b/apps/daemon/api/handlers/github/repositories.go index d30f974..443eabd 100644 --- a/apps/daemon/api/handlers/github/repositories.go +++ b/apps/daemon/api/handlers/github/repositories.go @@ -5,9 +5,9 @@ import ( "fmt" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/github" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/github" ) type RepoListResponse struct { diff --git a/apps/daemon/api/handlers/github/webhook.go b/apps/daemon/api/handlers/github/webhook.go index 8e0f976..9f01bd9 100644 --- a/apps/daemon/api/handlers/github/webhook.go +++ b/apps/daemon/api/handlers/github/webhook.go @@ -8,10 +8,10 @@ import ( "io" "net/http" - "github.com/corecollectives/mist/github" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/queue" "github.com/rs/zerolog/log" + "github.com/trymist/mist/github" + "github.com/trymist/mist/models" + "github.com/trymist/mist/queue" ) type WebhookPayload struct { diff --git a/apps/daemon/api/handlers/projects/createProject.go b/apps/daemon/api/handlers/projects/createProject.go index 2ab25a4..2591466 100644 --- a/apps/daemon/api/handlers/projects/createProject.go +++ b/apps/daemon/api/handlers/projects/createProject.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func CreateProject(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/projects/deleteProject.go b/apps/daemon/api/handlers/projects/deleteProject.go index 1864a8f..488f9a6 100644 --- a/apps/daemon/api/handlers/projects/deleteProject.go +++ b/apps/daemon/api/handlers/projects/deleteProject.go @@ -5,9 +5,9 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/projects/getProjectFromId.go b/apps/daemon/api/handlers/projects/getProjectFromId.go index 6c9b024..592d4a0 100644 --- a/apps/daemon/api/handlers/projects/getProjectFromId.go +++ b/apps/daemon/api/handlers/projects/getProjectFromId.go @@ -5,9 +5,9 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/projects/getProjects.go b/apps/daemon/api/handlers/projects/getProjects.go index e63be70..fc3dea3 100644 --- a/apps/daemon/api/handlers/projects/getProjects.go +++ b/apps/daemon/api/handlers/projects/getProjects.go @@ -3,9 +3,9 @@ package projects import ( "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetProjects(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/projects/updateMembers.go b/apps/daemon/api/handlers/projects/updateMembers.go index df865cd..05684c2 100644 --- a/apps/daemon/api/handlers/projects/updateMembers.go +++ b/apps/daemon/api/handlers/projects/updateMembers.go @@ -6,9 +6,9 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/projects/updateProject.go b/apps/daemon/api/handlers/projects/updateProject.go index 71974e3..8696fd7 100644 --- a/apps/daemon/api/handlers/projects/updateProject.go +++ b/apps/daemon/api/handlers/projects/updateProject.go @@ -6,9 +6,9 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/settings/dockerCleanup.go b/apps/daemon/api/handlers/settings/dockerCleanup.go index 3c1a9d6..a901768 100644 --- a/apps/daemon/api/handlers/settings/dockerCleanup.go +++ b/apps/daemon/api/handlers/settings/dockerCleanup.go @@ -4,10 +4,10 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/models" ) func DockerCleanup(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/settings/systemSettings.go b/apps/daemon/api/handlers/settings/systemSettings.go index acd3b05..0ea74b6 100644 --- a/apps/daemon/api/handlers/settings/systemSettings.go +++ b/apps/daemon/api/handlers/settings/systemSettings.go @@ -4,10 +4,10 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" + "github.com/trymist/mist/utils" ) func GetSystemSettings(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/templates/list.go b/apps/daemon/api/handlers/templates/list.go index ab425e2..4e2e001 100644 --- a/apps/daemon/api/handlers/templates/list.go +++ b/apps/daemon/api/handlers/templates/list.go @@ -3,8 +3,8 @@ package templates import ( "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/models" ) func ListServiceTemplates(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/updates/history.go b/apps/daemon/api/handlers/updates/history.go index 171ea0a..a19ca55 100644 --- a/apps/daemon/api/handlers/updates/history.go +++ b/apps/daemon/api/handlers/updates/history.go @@ -4,10 +4,10 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetUpdateHistory(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/updates/update.go b/apps/daemon/api/handlers/updates/update.go index 8cce9dd..e79af74 100644 --- a/apps/daemon/api/handlers/updates/update.go +++ b/apps/daemon/api/handlers/updates/update.go @@ -10,10 +10,10 @@ import ( "strings" "time" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) const updateLockFile = "/var/lib/mist/update.lock" @@ -67,7 +67,7 @@ func TriggerUpdate(w http.ResponseWriter, r *http.Request) { } targetVersion := "unknown" - resp, err := http.Get("https://api.github.com/repos/corecollectives/mist/releases/latest") + resp, err := http.Get("https://api.github.com/repos/trymist/mist/releases/latest") if err == nil { defer resp.Body.Close() if resp.StatusCode == http.StatusOK { @@ -188,7 +188,7 @@ func TriggerUpdate(w http.ResponseWriter, r *http.Request) { flusher.Flush() newVersion := targetVersion - resp2, err := http.Get("https://api.github.com/repos/corecollectives/mist/releases/latest") + resp2, err := http.Get("https://api.github.com/repos/trymist/mist/releases/latest") if err == nil { defer resp2.Body.Close() if resp2.StatusCode == http.StatusOK { diff --git a/apps/daemon/api/handlers/updates/version.go b/apps/daemon/api/handlers/updates/version.go index eab948f..51c82f8 100644 --- a/apps/daemon/api/handlers/updates/version.go +++ b/apps/daemon/api/handlers/updates/version.go @@ -6,10 +6,10 @@ import ( "net/http" "strings" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) type GithubRelease struct { @@ -95,7 +95,7 @@ func CheckForUpdates(w http.ResponseWriter, r *http.Request) { log.Info().Str("current_version", currentVersion).Int64("user_id", userInfo.ID).Msg("Checking for updates") // Fetch latest release from GitHub - resp, err := http.Get("https://api.github.com/repos/corecollectives/mist/releases/latest") + resp, err := http.Get("https://api.github.com/repos/trymist/mist/releases/latest") if err != nil { log.Error().Err(err).Msg("Failed to fetch latest release from GitHub") handlers.SendResponse(w, http.StatusInternalServerError, false, nil, "Failed to check for updates", err.Error()) diff --git a/apps/daemon/api/handlers/users/createUser.go b/apps/daemon/api/handlers/users/createUser.go index e148fed..aea1623 100644 --- a/apps/daemon/api/handlers/users/createUser.go +++ b/apps/daemon/api/handlers/users/createUser.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func CreateUser(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/users/deleteUser.go b/apps/daemon/api/handlers/users/deleteUser.go index a3e6e32..e045488 100644 --- a/apps/daemon/api/handlers/users/deleteUser.go +++ b/apps/daemon/api/handlers/users/deleteUser.go @@ -5,10 +5,10 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/store" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" + "github.com/trymist/mist/store" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/users/getUserById.go b/apps/daemon/api/handlers/users/getUserById.go index 37173d7..34f0faa 100644 --- a/apps/daemon/api/handlers/users/getUserById.go +++ b/apps/daemon/api/handlers/users/getUserById.go @@ -5,9 +5,9 @@ import ( "net/http" "strconv" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/api/handlers/users/getUsers.go b/apps/daemon/api/handlers/users/getUsers.go index cd929a5..8e849d6 100644 --- a/apps/daemon/api/handlers/users/getUsers.go +++ b/apps/daemon/api/handlers/users/getUsers.go @@ -3,9 +3,9 @@ package users import ( "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetUsers(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/users/gitProviders.go b/apps/daemon/api/handlers/users/gitProviders.go index 7906e13..89182c6 100644 --- a/apps/daemon/api/handlers/users/gitProviders.go +++ b/apps/daemon/api/handlers/users/gitProviders.go @@ -3,9 +3,9 @@ package users import ( "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) func GetUserGitProviders(w http.ResponseWriter, r *http.Request) { diff --git a/apps/daemon/api/handlers/users/updatePassword.go b/apps/daemon/api/handlers/users/updatePassword.go index c9fae3e..ac453ab 100644 --- a/apps/daemon/api/handlers/users/updatePassword.go +++ b/apps/daemon/api/handlers/users/updatePassword.go @@ -4,8 +4,8 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/models" ) type UpdatePasswordRequest struct { diff --git a/apps/daemon/api/handlers/users/updateUser.go b/apps/daemon/api/handlers/users/updateUser.go index e3b6a8b..ed3f296 100644 --- a/apps/daemon/api/handlers/users/updateUser.go +++ b/apps/daemon/api/handlers/users/updateUser.go @@ -4,9 +4,9 @@ import ( "encoding/json" "net/http" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/models" ) type UpdateUserRequest struct { diff --git a/apps/daemon/api/handlers/users/uploadAvatar.go b/apps/daemon/api/handlers/users/uploadAvatar.go index 6bada6d..5b9f23f 100644 --- a/apps/daemon/api/handlers/users/uploadAvatar.go +++ b/apps/daemon/api/handlers/users/uploadAvatar.go @@ -8,12 +8,12 @@ import ( "path/filepath" "strings" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/utils" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/api/middleware" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/models" + "github.com/trymist/mist/utils" ) func init() { diff --git a/apps/daemon/api/main.go b/apps/daemon/api/main.go index d6ec74c..d091898 100644 --- a/apps/daemon/api/main.go +++ b/apps/daemon/api/main.go @@ -6,9 +6,9 @@ import ( "path/filepath" "time" - // "github.com/corecollectives/mist/api/middleware" - "github.com/corecollectives/mist/websockets" + // "github.com/trymist/mist/api/middleware" "github.com/rs/zerolog/log" + "github.com/trymist/mist/websockets" ) func InitApiServer() { diff --git a/apps/daemon/api/middleware/auth.go b/apps/daemon/api/middleware/auth.go index 93209c2..027c012 100644 --- a/apps/daemon/api/middleware/auth.go +++ b/apps/daemon/api/middleware/auth.go @@ -6,10 +6,10 @@ import ( "net/http" "time" - "github.com/corecollectives/mist/api/handlers" - "github.com/corecollectives/mist/models" "github.com/golang-jwt/jwt" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api/handlers" + "github.com/trymist/mist/models" ) var jwtSecret []byte diff --git a/apps/daemon/compose/composeDeployer.go b/apps/daemon/compose/composeDeployer.go index fde3981..c0ef3c8 100644 --- a/apps/daemon/compose/composeDeployer.go +++ b/apps/daemon/compose/composeDeployer.go @@ -8,9 +8,9 @@ import ( "os" "time" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/models" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) diff --git a/apps/daemon/db/main.go b/apps/daemon/db/main.go index 8ff8189..0ce2151 100644 --- a/apps/daemon/db/main.go +++ b/apps/daemon/db/main.go @@ -5,8 +5,8 @@ import ( "os" "path/filepath" - "github.com/corecollectives/mist/fs" _ "github.com/mattn/go-sqlite3" + "github.com/trymist/mist/fs" "gorm.io/driver/sqlite" "gorm.io/gorm" "gorm.io/gorm/logger" diff --git a/apps/daemon/db/migrations.go b/apps/daemon/db/migrations.go index 26ff7c0..a02a044 100644 --- a/apps/daemon/db/migrations.go +++ b/apps/daemon/db/migrations.go @@ -5,7 +5,7 @@ import ( "reflect" "strings" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/models" "gorm.io/gorm" "gorm.io/gorm/clause" "gorm.io/gorm/schema" diff --git a/apps/daemon/docker/container.go b/apps/daemon/docker/container.go index 62276a9..1298dc2 100644 --- a/apps/daemon/docker/container.go +++ b/apps/daemon/docker/container.go @@ -8,11 +8,11 @@ import ( "strings" "time" - "github.com/corecollectives/mist/models" "github.com/moby/moby/api/types/container" "github.com/moby/moby/api/types/network" "github.com/moby/moby/client" "github.com/rs/zerolog/log" + "github.com/trymist/mist/models" ) func StopContainer(containerName string) error { diff --git a/apps/daemon/docker/deployer.go b/apps/daemon/docker/deployer.go index 6aaa313..1469b66 100644 --- a/apps/daemon/docker/deployer.go +++ b/apps/daemon/docker/deployer.go @@ -9,9 +9,9 @@ import ( "strconv" "time" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/models" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) diff --git a/apps/daemon/docker/deployerMain.go b/apps/daemon/docker/deployerMain.go index ddc7999..50542ea 100644 --- a/apps/daemon/docker/deployerMain.go +++ b/apps/daemon/docker/deployerMain.go @@ -6,9 +6,9 @@ import ( "os" "path/filepath" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/models" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) diff --git a/apps/daemon/docker/loadDeployment.go b/apps/daemon/docker/loadDeployment.go index 77b0281..2f81b8d 100644 --- a/apps/daemon/docker/loadDeployment.go +++ b/apps/daemon/docker/loadDeployment.go @@ -1,7 +1,7 @@ package docker import ( - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/docker/utils.go b/apps/daemon/docker/utils.go index b2e209f..fa67bc3 100644 --- a/apps/daemon/docker/utils.go +++ b/apps/daemon/docker/utils.go @@ -3,7 +3,7 @@ package docker import ( "fmt" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/models" ) type EnvironmentVariableSet struct { diff --git a/apps/daemon/fs/createDockerBuildLogFile.go b/apps/daemon/fs/createDockerBuildLogFile.go index bee2679..c56719a 100644 --- a/apps/daemon/fs/createDockerBuildLogFile.go +++ b/apps/daemon/fs/createDockerBuildLogFile.go @@ -5,8 +5,8 @@ import ( "path/filepath" "strconv" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/models" ) var logPath string = constants.Constants["LogPath"].(string) diff --git a/apps/daemon/git/clone.go b/apps/daemon/git/clone.go index d9513c5..0f7b3ac 100644 --- a/apps/daemon/git/clone.go +++ b/apps/daemon/git/clone.go @@ -6,11 +6,11 @@ import ( "os" "time" - "github.com/corecollectives/mist/github" - "github.com/corecollectives/mist/models" "github.com/go-git/go-git/v6" "github.com/go-git/go-git/v6/plumbing" "github.com/rs/zerolog/log" + "github.com/trymist/mist/github" + "github.com/trymist/mist/models" ) func CloneGitRepo(ctx context.Context, url string, branch string, logFile *os.File, path string) error { diff --git a/apps/daemon/git/commit.go b/apps/daemon/git/commit.go index 0a1033b..afe591d 100644 --- a/apps/daemon/git/commit.go +++ b/apps/daemon/git/commit.go @@ -7,9 +7,9 @@ import ( "path/filepath" "strings" - "github.com/corecollectives/mist/constants" - "github.com/corecollectives/mist/github" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/constants" + "github.com/trymist/mist/github" + "github.com/trymist/mist/models" ) func GetLatestCommit(appID int64, userID int64) (*models.LatestCommit, error) { diff --git a/apps/daemon/github/generateGithubJwt.go b/apps/daemon/github/generateGithubJwt.go index d1ba8df..4119ff2 100644 --- a/apps/daemon/github/generateGithubJwt.go +++ b/apps/daemon/github/generateGithubJwt.go @@ -4,8 +4,8 @@ import ( "encoding/pem" "time" - "github.com/corecollectives/mist/models" "github.com/golang-jwt/jwt" + "github.com/trymist/mist/models" ) func GenerateGithubJwt(appID int) (string, error) { diff --git a/apps/daemon/github/getAccessToken.go b/apps/daemon/github/getAccessToken.go index 2fa7483..f4dab4e 100644 --- a/apps/daemon/github/getAccessToken.go +++ b/apps/daemon/github/getAccessToken.go @@ -7,7 +7,7 @@ import ( "net/http" "time" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/models" ) func GetGitHubAccessToken(userID int) (string, time.Time, error) { diff --git a/apps/daemon/github/getLatestCommit.go b/apps/daemon/github/getLatestCommit.go index 65f2b66..370000d 100644 --- a/apps/daemon/github/getLatestCommit.go +++ b/apps/daemon/github/getLatestCommit.go @@ -14,7 +14,7 @@ import ( "net/http" "time" - "github.com/corecollectives/mist/models" + "github.com/trymist/mist/models" ) func GetLatestCommit(appID, userID int64) (*models.LatestCommit, error) { diff --git a/apps/daemon/github/webHook.go b/apps/daemon/github/webHook.go index 3b7a24b..7a95a34 100644 --- a/apps/daemon/github/webHook.go +++ b/apps/daemon/github/webHook.go @@ -4,8 +4,8 @@ import ( "errors" "strings" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/go.mod b/apps/daemon/go.mod index 77e377a..12919f4 100644 --- a/apps/daemon/go.mod +++ b/apps/daemon/go.mod @@ -1,4 +1,4 @@ -module github.com/corecollectives/mist +module github.com/trymist/mist go 1.25.1 diff --git a/apps/daemon/lib/cleanup.go b/apps/daemon/lib/cleanup.go index 6b51092..37f015e 100644 --- a/apps/daemon/lib/cleanup.go +++ b/apps/daemon/lib/cleanup.go @@ -7,9 +7,9 @@ package lib import ( "time" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/queue" "github.com/rs/zerolog/log" + "github.com/trymist/mist/models" + "github.com/trymist/mist/queue" ) func CleanupOnStartup() error { diff --git a/apps/daemon/main.go b/apps/daemon/main.go index 55bbddb..5d27477 100644 --- a/apps/daemon/main.go +++ b/apps/daemon/main.go @@ -1,14 +1,14 @@ package main import ( - "github.com/corecollectives/mist/api" - "github.com/corecollectives/mist/db" - "github.com/corecollectives/mist/lib" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/queue" - "github.com/corecollectives/mist/store" - "github.com/corecollectives/mist/utils" "github.com/rs/zerolog/log" + "github.com/trymist/mist/api" + "github.com/trymist/mist/db" + "github.com/trymist/mist/lib" + "github.com/trymist/mist/models" + "github.com/trymist/mist/queue" + "github.com/trymist/mist/store" + "github.com/trymist/mist/utils" ) func main() { diff --git a/apps/daemon/models/apiToken.go b/apps/daemon/models/apiToken.go index b902e04..67030b2 100644 --- a/apps/daemon/models/apiToken.go +++ b/apps/daemon/models/apiToken.go @@ -3,7 +3,7 @@ package models import ( "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) diff --git a/apps/daemon/models/app.go b/apps/daemon/models/app.go index f2eca1a..8b1146c 100644 --- a/apps/daemon/models/app.go +++ b/apps/daemon/models/app.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" ) type DeploymentStrategy string diff --git a/apps/daemon/models/backup.go b/apps/daemon/models/backup.go index 6edd4cc..4ea3def 100644 --- a/apps/daemon/models/backup.go +++ b/apps/daemon/models/backup.go @@ -3,7 +3,7 @@ package models import ( "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) @@ -164,7 +164,7 @@ func DeleteExpiredBackups() error { // import ( // "time" -// "github.com/corecollectives/mist/utils" +// "github.com/trymist/mist/utils" // ) // type BackupType string diff --git a/apps/daemon/models/deployment.go b/apps/daemon/models/deployment.go index 7158a01..512285d 100644 --- a/apps/daemon/models/deployment.go +++ b/apps/daemon/models/deployment.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) @@ -239,7 +239,7 @@ func GetDeploymentStatus(depID int64) (string, error) { // import ( // "time" -// "github.com/corecollectives/mist/utils" +// "github.com/trymist/mist/utils" // ) // type DeploymentStatus string diff --git a/apps/daemon/models/domain.go b/apps/daemon/models/domain.go index 24a5f78..dd8791f 100644 --- a/apps/daemon/models/domain.go +++ b/apps/daemon/models/domain.go @@ -3,7 +3,7 @@ package models import ( "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" ) type sslStatus string @@ -141,7 +141,7 @@ func UpdateDomainDnsStatus(id int64, configured bool, errorMsg *string) error { // import ( // "time" -// "github.com/corecollectives/mist/utils" +// "github.com/trymist/mist/utils" // ) // type Domain struct { diff --git a/apps/daemon/models/envVariable.go b/apps/daemon/models/envVariable.go index e5f3f66..6442701 100644 --- a/apps/daemon/models/envVariable.go +++ b/apps/daemon/models/envVariable.go @@ -3,7 +3,7 @@ package models import ( "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" ) type EnvVariable struct { diff --git a/apps/daemon/models/notification.go b/apps/daemon/models/notification.go index 6a234d4..f8e96fb 100644 --- a/apps/daemon/models/notification.go +++ b/apps/daemon/models/notification.go @@ -3,7 +3,7 @@ package models import ( "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" ) type NotificationType string @@ -155,7 +155,7 @@ func DeleteExpiredNotifications() error { // import ( // "time" -// "github.com/corecollectives/mist/utils" +// "github.com/trymist/mist/utils" // ) // type NotificationType string diff --git a/apps/daemon/models/project.go b/apps/daemon/models/project.go index 6c1fb70..bfa8d5c 100644 --- a/apps/daemon/models/project.go +++ b/apps/daemon/models/project.go @@ -4,7 +4,7 @@ import ( "strings" "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) @@ -179,7 +179,7 @@ func UpdateProjectMembers(projectID int64, userIDs []int64) error { // "strings" // "time" -// "github.com/corecollectives/mist/utils" +// "github.com/trymist/mist/utils" // ) // type Project struct { diff --git a/apps/daemon/models/user.go b/apps/daemon/models/user.go index 3f13a17..2755762 100644 --- a/apps/daemon/models/user.go +++ b/apps/daemon/models/user.go @@ -3,7 +3,7 @@ package models import ( "time" - "github.com/corecollectives/mist/utils" + "github.com/trymist/mist/utils" "golang.org/x/crypto/bcrypt" "gorm.io/gorm" ) @@ -165,7 +165,7 @@ func GetUserCount() (int64, error) { // import ( // "time" -// "github.com/corecollectives/mist/utils" +// "github.com/trymist/mist/utils" // "golang.org/x/crypto/bcrypt" // ) diff --git a/apps/daemon/queue/deployQueue.go b/apps/daemon/queue/deployQueue.go index 87342f2..3fafb20 100644 --- a/apps/daemon/queue/deployQueue.go +++ b/apps/daemon/queue/deployQueue.go @@ -7,8 +7,8 @@ import ( "fmt" "sync" - "github.com/corecollectives/mist/models" "github.com/rs/zerolog/log" + "github.com/trymist/mist/models" "gorm.io/gorm" ) diff --git a/apps/daemon/queue/handleWork.go b/apps/daemon/queue/handleWork.go index 199cef1..de36873 100644 --- a/apps/daemon/queue/handleWork.go +++ b/apps/daemon/queue/handleWork.go @@ -5,14 +5,14 @@ import ( "fmt" "sync" - "github.com/corecollectives/mist/compose" - "github.com/corecollectives/mist/docker" - "github.com/corecollectives/mist/fs" - "github.com/corecollectives/mist/git" - "github.com/corecollectives/mist/github" - "github.com/corecollectives/mist/models" - "github.com/corecollectives/mist/utils" "github.com/rs/zerolog/log" + "github.com/trymist/mist/compose" + "github.com/trymist/mist/docker" + "github.com/trymist/mist/fs" + "github.com/trymist/mist/git" + "github.com/trymist/mist/github" + "github.com/trymist/mist/models" + "github.com/trymist/mist/utils" "gorm.io/gorm" ) diff --git a/apps/daemon/static/assets/index-BH9kEiR3.js b/apps/daemon/static/assets/index-BH9kEiR3.js index ad9315e..a117e07 100644 --- a/apps/daemon/static/assets/index-BH9kEiR3.js +++ b/apps/daemon/static/assets/index-BH9kEiR3.js @@ -53,7 +53,7 @@ If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHid For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return v.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Na=`DialogDescriptionWarning`,Pa=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${ja(Na).contentName}}.`;return v.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},Fa=oa,Ia=fa,La=ma,Ra=va,za=Ca,Ba=Ta,Va=Da,Ha=l(b());function Ua(e){let t=(0,Ha.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,E.jsx)(Fa,{"data-slot":`dialog`,...n}),t[2]=n,t[3]=r),r}function Wa(e){let t=(0,Ha.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,E.jsx)(Ia,{"data-slot":`dialog-portal`,...n}),t[2]=n,t[3]=r),r}function Ga(e){let t=(0,Ha.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=K(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,E.jsx)(La,{"data-slot":`dialog-overlay`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Ka(e){let t=(0,Ha.c)(15),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,children:n,showCloseButton:a,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o=a===void 0?!0:a,s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,E.jsx)(Ga,{}),t[5]=s):s=t[5];let c;t[6]===r?c=t[7]:(c=K(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,r),t[6]=r,t[7]=c);let l;t[8]===o?l=t[9]:(l=o&&(0,E.jsxs)(Va,{"data-slot":`dialog-close`,className:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,E.jsx)(An,{}),(0,E.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),t[8]=o,t[9]=l);let u;return t[10]!==n||t[11]!==i||t[12]!==c||t[13]!==l?(u=(0,E.jsxs)(Wa,{"data-slot":`dialog-portal`,children:[s,(0,E.jsxs)(Ra,{"data-slot":`dialog-content`,className:c,...i,children:[n,l]})]}),t[10]=n,t[11]=i,t[12]=c,t[13]=l,t[14]=u):u=t[14],u}function qa(e){let t=(0,Ha.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=K(`flex flex-col gap-2 text-center sm:text-left`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,E.jsx)(`div`,{"data-slot":`dialog-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Ja(e){let t=(0,Ha.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=K(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,E.jsx)(`div`,{"data-slot":`dialog-footer`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Ya(e){let t=(0,Ha.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=K(`text-lg leading-none font-semibold`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,E.jsx)(za,{"data-slot":`dialog-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Xa(e){let t=(0,Ha.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=K(`text-muted-foreground text-sm`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,E.jsx)(Ba,{"data-slot":`dialog-description`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var Za=l(b());function Qa(e){let t=(0,Za.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,type:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===n?a=t[5]:(a=K(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n),t[4]=n,t[5]=a);let o;return t[6]!==r||t[7]!==a||t[8]!==i?(o=(0,E.jsx)(`input`,{type:i,"data-slot":`input`,className:a,...r}),t[6]=r,t[7]=a,t[8]=i,t[9]=o):o=t[9],o}var $a=l(b());function eo(e){let t=(0,$a.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=K(`border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,E.jsx)(`textarea`,{"data-slot":`textarea`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var to=l(h(),1);function no(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var ro=e=>{switch(e){case`success`:return oo;case`info`:return co;case`warning`:return so;case`error`:return lo;default:return null}},io=Array(12).fill(0),ao=({visible:e,className:t})=>v.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},v.createElement(`div`,{className:`sonner-spinner`},io.map((e,t)=>v.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),oo=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),so=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),co=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),lo=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),uo=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},v.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),v.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),fo=()=>{let[e,t]=v.useState(document.hidden);return v.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},po=1,mo=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:po++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],v.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(go(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||po++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},ho=(e,t)=>{let n=t?.id||po++;return mo.addToast({title:e,...t,id:n}),n},go=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,_o=ho,X=Object.assign(_o,{success:mo.success,info:mo.info,warning:mo.warning,error:mo.error,custom:mo.custom,message:mo.message,promise:mo.promise,dismiss:mo.dismiss,loading:mo.loading},{getHistory:()=>mo.toasts,getToasts:()=>mo.getActiveToasts()});no(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function vo(e){return e.label!==void 0}var yo=3,bo=`24px`,xo=`16px`,So=4e3,Co=356,wo=14,To=45,Eo=200;function Do(...e){return e.filter(Boolean).join(` `)}function Oo(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var ko=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:y=``,duration:b,position:x,gap:S,expandByDefault:C,classNames:w,icons:T,closeButtonAriaLabel:E=`Close toast`}=e,[D,O]=v.useState(null),[k,A]=v.useState(null),[j,M]=v.useState(!1),[N,P]=v.useState(!1),[F,I]=v.useState(!1),[L,R]=v.useState(!1),[z,B]=v.useState(!1),[V,H]=v.useState(0),[U,ee]=v.useState(0),te=v.useRef(n.duration||b||So),ne=v.useRef(null),re=v.useRef(null),ie=c===0,ae=c+1<=o,oe=n.type,se=n.dismissible!==!1,ce=n.className||``,le=n.descriptionClassName||``,ue=v.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),de=v.useMemo(()=>n.closeButton??p,[n.closeButton,p]),fe=v.useMemo(()=>n.duration||b||So,[n.duration,b]),pe=v.useRef(0),me=v.useRef(0),he=v.useRef(0),ge=v.useRef(null),[_e,ve]=x.split(`-`),ye=v.useMemo(()=>s.reduce((e,t,n)=>n>=ue?e:e+t.height,0),[s,ue]),be=fo(),xe=n.invert||t,Se=oe===`loading`;me.current=v.useMemo(()=>ue*S+ye,[ue,ye]),v.useEffect(()=>{te.current=fe},[fe]),v.useEffect(()=>{M(!0)},[]),v.useEffect(()=>{let e=re.current;if(e){let t=e.getBoundingClientRect().height;return ee(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),v.useLayoutEffect(()=>{if(!j)return;let e=re.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,ee(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[j,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let Ce=v.useCallback(()=>{P(!0),H(me.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},Eo)},[n,d,a,me]);v.useEffect(()=>{if(n.promise&&oe===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||be?(()=>{if(he.current{n.onAutoClose==null||n.onAutoClose.call(n,n),Ce()},te.current)),()=>clearTimeout(e)},[u,i,n,oe,be,Ce]),v.useEffect(()=>{n.delete&&(Ce(),n.onDismiss==null||n.onDismiss.call(n,n))},[Ce,n.delete]);function we(){return T?.loading?v.createElement(`div`,{className:Do(w?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":oe===`loading`},T.loading):v.createElement(ao,{className:Do(w?.loader,n?.classNames?.loader),visible:oe===`loading`})}let Te=n.icon||T?.[oe]||ro(oe);return v.createElement(`li`,{tabIndex:0,ref:re,className:Do(_,ce,w?.toast,n?.classNames?.toast,w?.default,w?.[oe],n?.classNames?.[oe]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":j,"data-promise":!!n.promise,"data-swiped":z,"data-removed":N,"data-visible":ae,"data-y-position":_e,"data-x-position":ve,"data-index":c,"data-front":ie,"data-swiping":F,"data-dismissible":se,"data-type":oe,"data-invert":xe,"data-swipe-out":L,"data-swipe-direction":k,"data-expanded":!!(u||C&&j),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${N?V:me.current}px`,"--initial-height":C?`auto`:`${U}px`,...m,...n.style},onDragEnd:()=>{I(!1),O(null),ge.current=null},onPointerDown:e=>{e.button!==2&&(Se||!se||(ne.current=new Date,H(me.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(I(!0),ge.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(L||!se)return;ge.current=null;let e=Number(re.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(re.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-ne.current?.getTime(),i=D===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=To||a>.11){H(me.current),n.onDismiss==null||n.onDismiss.call(n,n),A(D===`x`?e>0?`right`:`left`:t>0?`down`:`up`),Ce(),R(!0);return}else{var o,s;(o=re.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=re.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}B(!1),I(!1),O(null)},onPointerMove:t=>{var n,r;if(!ge.current||!se||window.getSelection()?.toString().length>0)return;let i=t.clientY-ge.current.y,a=t.clientX-ge.current.x,o=e.swipeDirections??Oo(x);!D&&(Math.abs(a)>1||Math.abs(i)>1)&&O(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(D===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)0||Math.abs(s.y)>0)&&B(!0),(n=re.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=re.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},de&&!n.jsx&&oe!==`loading`?v.createElement(`button`,{"aria-label":E,"data-disabled":Se,"data-close-button":!0,onClick:Se||!se?()=>{}:()=>{Ce(),n.onDismiss==null||n.onDismiss.call(n,n)},className:Do(w?.closeButton,n?.classNames?.closeButton)},T?.close??uo):null,(oe||n.icon||n.promise)&&n.icon!==null&&(T?.[oe]!==null||n.icon)?v.createElement(`div`,{"data-icon":``,className:Do(w?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||we():null,n.type===`loading`?null:Te):null,v.createElement(`div`,{"data-content":``,className:Do(w?.content,n?.classNames?.content)},v.createElement(`div`,{"data-title":``,className:Do(w?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?v.createElement(`div`,{"data-description":``,className:Do(y,le,w?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),v.isValidElement(n.cancel)?n.cancel:n.cancel&&vo(n.cancel)?v.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{vo(n.cancel)&&se&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),Ce())},className:Do(w?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,v.isValidElement(n.action)?n.action:n.action&&vo(n.action)?v.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{vo(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&Ce())},className:Do(w?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function Ao(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function jo(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?xo:bo;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var Mo=v.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=yo,toastOptions:g,dir:_=Ao(),gap:y=wo,icons:b,containerAriaLabel:x=`Notifications`}=e,[S,C]=v.useState([]),w=v.useMemo(()=>n?S.filter(e=>e.toasterId===n):S.filter(e=>!e.toasterId),[S,n]),T=v.useMemo(()=>Array.from(new Set([i].concat(w.filter(e=>e.position).map(e=>e.position)))),[w,i]),[E,D]=v.useState([]),[O,k]=v.useState(!1),[A,j]=v.useState(!1),[M,N]=v.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),P=v.useRef(null),F=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),I=v.useRef(null),L=v.useRef(!1),R=v.useCallback(e=>{C(t=>(t.find(t=>t.id===e.id)?.delete||mo.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return v.useEffect(()=>mo.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{C(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{to.flushSync(()=>{C(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[S]),v.useEffect(()=>{if(d!==`system`){N(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?N(`dark`):N(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{N(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{N(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),v.useEffect(()=>{S.length<=1&&k(!1)},[S]),v.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;k(!0),(t=P.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===P.current||P.current?.contains(document.activeElement))&&k(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),v.useEffect(()=>{if(P.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,L.current=!1)}},[P.current]),v.createElement(`section`,{ref:t,"aria-label":`${x} ${F}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},T.map((t,n)=>{let[i,a]=t.split(`-`);return w.length?v.createElement(`ol`,{key:t,dir:_===`auto`?Ao():_,tabIndex:-1,ref:P,className:c,"data-sonner-toaster":!0,"data-sonner-theme":M,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${E[0]?.height||0}px`,"--width":`${Co}px`,"--gap":`${y}px`,...m,...jo(l,u)},onBlur:e=>{L.current&&!e.currentTarget.contains(e.relatedTarget)&&(L.current=!1,I.current&&=(I.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||L.current||(L.current=!0,I.current=e.relatedTarget)},onMouseEnter:()=>k(!0),onMouseMove:()=>k(!0),onMouseLeave:()=>{A||k(!1)},onDragEnd:()=>k(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||j(!0)},onPointerUp:()=>j(!1)},w.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>v.createElement(ko,{key:n.id,icons:b,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:A,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:R,toasts:w.filter(e=>e.position==n.position),heights:E.filter(e=>e.position==n.position),setHeights:D,expandByDefault:o,gap:y,expanded:O,swipeDirections:e.swipeDirections}))):null}))}),No=l(b());function Po(e){let t=(0,No.c)(49),{isOpen:n,onClose:r,title:i,fields:a,onSubmit:o}=e,s;t[0]===a?s=t[1]:(s=Object.fromEntries(a.map(Ro)),t[0]=a,t[1]=s);let[c,l]=(0,v.useState)(s),[u,d]=(0,v.useState)(``),f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=[],t[2]=f):f=t[2];let[p,m]=(0,v.useState)(f),h,g;t[3]!==a||t[4]!==n?(h=()=>{if(n){let e=Object.fromEntries(a.map(Lo));l(e);let t=a.find(Io);t&&Array.isArray(t.defaultValue)?m(t.defaultValue):m([])}},g=[n,a],t[3]=a,t[4]=n,t[5]=h,t[6]=g):(h=t[5],g=t[6]),(0,v.useEffect)(h,g);let _;t[7]!==u||t[8]!==p?(_=()=>{let e=u.trim();if(e){if(p.includes(e)){X.error(`Tag already exists`);return}m([...p,e]),d(``)}},t[7]=u,t[8]=p,t[9]=_):_=t[9];let y=_,b;t[10]===p?b=t[11]:(b=e=>m(p.filter(t=>t!==e)),t[10]=p,t[11]=b);let x=b,S;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(S=(e,t)=>{l(n=>({...n,[e]:t}))},t[12]=S):S=t[12];let C=S,w;t[13]!==c||t[14]!==r||t[15]!==o||t[16]!==p?(w=async e=>{e.preventDefault();let t={...c,tags:p};await o(t),r()},t[13]=c,t[14]=r,t[15]=o,t[16]=p,t[17]=w):w=t[17];let T=w,D;t[18]===i?D=t[19]:(D=(0,E.jsx)(qa,{children:(0,E.jsx)(Ya,{children:i})}),t[18]=i,t[19]=D);let O;if(t[20]!==a||t[21]!==c||t[22]!==y||t[23]!==x||t[24]!==u||t[25]!==p){let e;t[27]!==c||t[28]!==y||t[29]!==x||t[30]!==u||t[31]!==p?(e=e=>e.type===`textarea`?(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:e.label}),(0,E.jsx)(eo,{value:c[e.name],onChange:t=>C(e.name,t.target.value),required:e.required,className:`mt-1`})]},e.name):e.type===`select`?(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:e.label}),(0,E.jsx)(`select`,{value:c[e.name],onChange:t=>C(e.name,t.target.value),className:`w-full bg-background border rounded-md mt-1 px-3 py-2`,children:e.options?.map(Fo)})]},e.name):e.type===`tags`?(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:e.label}),(0,E.jsxs)(`div`,{className:`flex gap-2 mt-1`,children:[(0,E.jsx)(Qa,{value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),y())},placeholder:`Add a tag`}),(0,E.jsx)(q,{type:`button`,variant:`secondary`,onClick:y,children:`Add`})]}),(0,E.jsx)(`div`,{className:`flex flex-wrap gap-2 mt-2`,children:p.map(e=>(0,E.jsxs)(`span`,{className:`px-2 py-1 text-sm rounded-full bg-primary/10 text-primary flex items-center gap-2`,children:[e,(0,E.jsx)(`button`,{type:`button`,onClick:()=>x(e),className:`text-destructive hover:underline`,children:`×`})]},e))})]},`tags`):(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:e.label}),(0,E.jsx)(Qa,{type:e.type,value:c[e.name],onChange:t=>C(e.name,t.target.value),required:e.required,className:`mt-1`})]},e.name),t[27]=c,t[28]=y,t[29]=x,t[30]=u,t[31]=p,t[32]=e):e=t[32],O=a.map(e),t[20]=a,t[21]=c,t[22]=y,t[23]=x,t[24]=u,t[25]=p,t[26]=O}else O=t[26];let k;t[33]===r?k=t[34]:(k=(0,E.jsx)(q,{type:`button`,variant:`outline`,onClick:r,children:`Cancel`}),t[33]=r,t[34]=k);let A;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,E.jsx)(q,{type:`submit`,children:`Submit`}),t[35]=A):A=t[35];let j;t[36]===k?j=t[37]:(j=(0,E.jsxs)(Ja,{className:`flex justify-end gap-2 pt-4`,children:[k,A]}),t[36]=k,t[37]=j);let M;t[38]!==T||t[39]!==O||t[40]!==j?(M=(0,E.jsxs)(`form`,{onSubmit:T,className:`space-y-4`,children:[O,j]}),t[38]=T,t[39]=O,t[40]=j,t[41]=M):M=t[41];let N;t[42]!==M||t[43]!==D?(N=(0,E.jsxs)(Ka,{className:`sm:max-w-md`,children:[D,M]}),t[42]=M,t[43]=D,t[44]=N):N=t[44];let P;return t[45]!==n||t[46]!==r||t[47]!==N?(P=(0,E.jsx)(Ua,{open:n,onOpenChange:r,children:N}),t[45]=n,t[46]=r,t[47]=N,t[48]=P):P=t[48],P}function Fo(e){return(0,E.jsx)(`option`,{value:e.value,children:e.label},e.value)}function Io(e){return e.type===`tags`}function Lo(e){return[e.name,e.defaultValue??``]}function Ro(e){return[e.name,e.defaultValue??``]}var zo=class extends Error{constructor({message:e,status:t,code:n}){super(e),this.name=`ApiError`,this.status=t,this.code=n}};const Bo=new class{constructor(e=``){this.baseUrl=e,this.defaultHeaders={"Content-Type":`application/json`}}async request(e,t={}){let n=`${this.baseUrl}${e}`,r={credentials:`include`,headers:{...this.defaultHeaders,...t.headers||{}},...t};try{return await(await fetch(n,r)).json()}catch(e){throw e instanceof zo?e:new zo({message:e.message||`Network error occurred`})}}async get(e,t){return this.request(e,{...t,method:`GET`})}async post(e,t,n){return this.request(e,{...n,method:`POST`,body:t?JSON.stringify(t):void 0})}async put(e,t,n){return this.request(e,{...n,method:`PUT`,body:t?JSON.stringify(t):void 0})}async delete(e,t){return this.request(e,{...t,method:`DELETE`})}}(`/api`),Vo={async getMe(){return Bo.get(`/auth/me`)},async login(e,t){return Bo.post(`/auth/login`,{email:e,password:t})},async signup(e,t,n){return Bo.post(`/auth/signup`,{email:e,password:t,username:n})},async logout(){return Bo.post(`/auth/logout`)}};var Ho=l(b()),Uo=(0,v.createContext)(null);const Wo=e=>{let t=(0,Ho.c)(9),{children:n}=e,[r,i]=v.useState(null),[a,o]=(0,v.useState)(null),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=async()=>{let e=await Vo.logout();e.success?(o(null),X.success(`Logged out successfully`)):X.error(e.message||`An error occurred during logout.`)},t[0]=s):s=t[0];let c=s,l,u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{(async()=>{let e=await Vo.getMe();e.success?e.data.setupRequired===!0?i(!0):(i(!1),e.data.user&&o({...e.data.user,isAdmin:e.data.user.role===`owner`||e.data.user.role===`admin`})):X.error(e.message||`An error occurred while fetching authentication status.`)})()},u=[],t[1]=l,t[2]=u):(l=t[1],u=t[2]),(0,v.useEffect)(l,u);let d;t[3]!==r||t[4]!==a?(d={setupRequired:r,setSetupRequired:i,user:a,setUser:o,logout:c},t[3]=r,t[4]=a,t[5]=d):d=t[5];let f;return t[6]!==n||t[7]!==d?(f=(0,E.jsx)(Uo.Provider,{value:d,children:n}),t[6]=n,t[7]=d,t[8]=f):f=t[8],f},Go=()=>{let e=(0,v.useContext)(Uo);if(e===null)throw Error(`useAuth must be used within an AuthProvider`);return e};var Ko=`modulepreload`,qo=function(e){return`/`+e},Jo={};const Yo=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=qo(t,n),t in Jo)return;Jo[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Ko,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};var Xo=`popstate`;function Zo(e={}){function t(e,t){let{pathname:n,search:r,hash:i}=e.location;return ns(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){return typeof t==`string`?t:rs(t)}return ss(t,n,null,e)}function Qo(e,t){if(e===!1||e==null)throw Error(t)}function $o(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function es(){return Math.random().toString(36).substring(2,10)}function ts(e,t){return{usr:e.state,key:e.key,idx:t}}function ns(e,t,n=null,r){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?os(t):t,state:n,key:t&&t.key||r||es()}}function rs({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function os(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function ss(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=ns(h.location,e,t);n&&n(r,e),l=u()+1;let d=ts(r,l),f=h.createHref(r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=ns(h.location,e,t);n&&n(r,e),l=u();let i=ts(r,l),d=h.createHref(r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return cs(e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(Xo,d),c=e,()=>{i.removeEventListener(Xo,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function cs(e,t=!1){let n=`http://localhost`;typeof window<`u`&&(n=window.location.origin===`null`?window.location.href:window.location.origin),Qo(n,`No window.location.(origin|href) available to create URL`);let r=typeof e==`string`?e:rs(e);return r=r.replace(/ $/,`%20`),!t&&r.startsWith(`//`)&&(r=n+r),new URL(r,n)}function ls(e,t,n=`/`){return us(e,t,n,!1)}function us(e,t,n,r){let i=typeof t==`string`?os(t):t,a=Os(i.pathname||`/`,n);if(a==null)return null;let o=fs(e);ms(o);let s=null;for(let e=0;s==null&&e{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;Qo(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=Fs([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(Qo(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),fs(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:Ss(l,e.index),routesMeta:u})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of ps(e.path))a(e,t,!0,n)}),t}function ps(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=ps(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function ms(e){e.sort((e,t)=>e.score===t.score?Cs(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var hs=/^:[\w-]+$/,gs=3,_s=2,vs=1,ys=10,bs=-2,xs=e=>e===`*`;function Ss(e,t){let n=e.split(`/`),r=n.length;return n.some(xs)&&(r+=bs),t&&(r+=_s),n.filter(e=>!xs(e)).reduce((e,t)=>e+(hs.test(t)?gs:t===``?vs:ys),r)}function Cs(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function ws(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return n&&!i?e[t]=void 0:e[t]=(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Es(e,t=!1,n=!0){$o(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n)=>(r.push({paramName:t,isOptional:n!=null}),n?`/?([^\\/]+)?`:`/([^\\/]+)`)).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Ds(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return $o(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Os(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function ks(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?os(e):e;return{pathname:n?n.startsWith(`/`)?n:As(n,t):t,search:Ls(r),hash:Rs(i)}}function As(e,t){let n=t.replace(/\/+$/,``).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function js(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Ms(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Ns(e){let t=Ms(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Ps(e,t,n,r=!1){let i;typeof e==`string`?i=os(e):(i={...e},Qo(!i.pathname||!i.pathname.includes(`?`),js(`?`,`pathname`,`search`,i)),Qo(!i.pathname||!i.pathname.includes(`#`),js(`#`,`pathname`,`hash`,i)),Qo(!i.search||!i.search.includes(`#`),js(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=ks(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Fs=e=>e.join(`/`).replace(/\/\/+/g,`/`),Is=e=>e.replace(/\/+$/,``).replace(/^\/*/,`/`),Ls=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Rs=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e;function zs(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}var Bs=v.createContext(null);Bs.displayName=`DataRouter`;var Vs=v.createContext(null);Vs.displayName=`DataRouterState`,v.createContext(!1);var Hs=v.createContext({isTransitioning:!1});Hs.displayName=`ViewTransition`;var Us=v.createContext(new Map);Us.displayName=`Fetchers`;var Ws=v.createContext(null);Ws.displayName=`Await`;var Gs=v.createContext(null);Gs.displayName=`Navigation`;var Ks=v.createContext(null);Ks.displayName=`Location`;var qs=v.createContext({outlet:null,matches:[],isDataRoute:!1});qs.displayName=`Route`;var Js=v.createContext(null);Js.displayName=`RouteError`;function Ys(e,{relative:t}={}){Qo(Xs(),`useHref() may be used only in the context of a component.`);let{basename:n,navigator:r}=v.useContext(Gs),{hash:i,pathname:a,search:o}=ac(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:Fs([n,a])),r.createHref({pathname:s,search:o,hash:i})}function Xs(){return v.useContext(Ks)!=null}function Zs(){return Qo(Xs(),`useLocation() may be used only in the context of a component.`),v.useContext(Ks).location}var Qs=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function $s(e){v.useContext(Gs).static||v.useLayoutEffect(e)}function ec(){let{isDataRoute:e}=v.useContext(qs);return e?Sc():tc()}function tc(){Qo(Xs(),`useNavigate() may be used only in the context of a component.`);let e=v.useContext(Bs),{basename:t,navigator:n}=v.useContext(Gs),{matches:r}=v.useContext(qs),{pathname:i}=Zs(),a=JSON.stringify(Ns(r)),o=v.useRef(!1);return $s(()=>{o.current=!0}),v.useCallback((r,s={})=>{if($o(o.current,Qs),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Ps(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:Fs([t,c.pathname])),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}var nc=v.createContext(null);function rc(e){let t=v.useContext(qs).outlet;return v.useMemo(()=>t&&v.createElement(nc.Provider,{value:e},t),[t,e])}function ic(){let{matches:e}=v.useContext(qs),t=e[e.length-1];return t?t.params:{}}function ac(e,{relative:t}={}){let{matches:n}=v.useContext(qs),{pathname:r}=Zs(),i=JSON.stringify(Ns(n));return v.useMemo(()=>Ps(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function oc(e,t){return sc(e,t)}function sc(e,t,n,r,i){Qo(Xs(),`useRoutes() may be used only in the context of a component.`);let{navigator:a}=v.useContext(Gs),{matches:o}=v.useContext(qs),s=o[o.length-1],c=s?s.params:{},l=s?s.pathname:`/`,u=s?s.pathnameBase:`/`,d=s&&s.route;{let e=d&&d.path||``;wc(l,!d||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant (or called \`useRoutes()\`) at "${l}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. Please change the parent to .`)}let f=Zs(),p;if(t){let e=typeof t==`string`?os(t):t;Qo(u===`/`||e.pathname?.startsWith(u),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${e.pathname}" was given in the \`location\` prop.`),p=e}else p=f;let m=p.pathname||`/`,h=m;if(u!==`/`){let e=u.replace(/^\//,``).split(`/`);h=`/`+m.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let g=ls(e,{pathname:h});$o(d||g!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),$o(g==null||g[g.length-1].route.element!==void 0||g[g.length-1].route.Component!==void 0||g[g.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let _=fc(g&&g.map(e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:Fs([u,a.encodeLocation?a.encodeLocation(e.pathname.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?u:Fs([u,a.encodeLocation?a.encodeLocation(e.pathnameBase.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),o,n,r,i);return t&&_?v.createElement(Ks.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,...p},navigationType:`POP`}},_):_}function cc(){let e=xc(),t=zs(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=v.createElement(v.Fragment,null,v.createElement(`p`,null,`💿 Hey developer 👋`),v.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,v.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,v.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),v.createElement(v.Fragment,null,v.createElement(`h2`,null,`Unexpected Application Error!`),v.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?v.createElement(`pre`,{style:i},n):null,o)}var lc=v.createElement(cc,null),uc=class extends v.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.unstable_onError?this.props.unstable_onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){return this.state.error===void 0?this.props.children:v.createElement(qs.Provider,{value:this.props.routeContext},v.createElement(Js.Provider,{value:this.state.error,children:this.props.component}))}};function dc({routeContext:e,match:t,children:n}){let r=v.useContext(Bs);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),v.createElement(qs.Provider,{value:e},n)}function fc(e,t=[],n=null,r=null,i=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,o=n?.errors;if(o!=null){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);Qo(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(`,`)}`),a=a.slice(0,Math.min(a.length,e+1))}let s=!1,c=-1;if(n)for(let e=0;e=0?a.slice(0,c+1):[a[0]];break}}}return a.reduceRight((e,i,l)=>{let u,d=!1,f=null,p=null;n&&(u=o&&i.route.id?o[i.route.id]:void 0,f=i.route.errorElement||lc,s&&(c<0&&l===0?(wc(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):c===l&&(d=!0,p=i.route.hydrateFallbackElement||null)));let m=t.concat(a.slice(0,l+1)),h=()=>{let t;return t=u?f:d?p:i.route.Component?v.createElement(i.route.Component,null):i.route.element?i.route.element:e,v.createElement(dc,{match:i,routeContext:{outlet:e,matches:m,isDataRoute:n!=null},children:t})};return n&&(i.route.ErrorBoundary||i.route.errorElement||l===0)?v.createElement(uc,{location:n.location,revalidation:n.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},unstable_onError:r}):h()},null)}function pc(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function mc(e){let t=v.useContext(Bs);return Qo(t,pc(e)),t}function hc(e){let t=v.useContext(Vs);return Qo(t,pc(e)),t}function gc(e){let t=v.useContext(qs);return Qo(t,pc(e)),t}function _c(e){let t=gc(e),n=t.matches[t.matches.length-1];return Qo(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function vc(){return _c(`useRouteId`)}function yc(){return hc(`useNavigation`).navigation}function bc(){let{matches:e,loaderData:t}=hc(`useMatches`);return v.useMemo(()=>e.map(e=>ds(e,t)),[e,t])}function xc(){let e=v.useContext(Js),t=hc(`useRouteError`),n=_c(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Sc(){let{router:e}=mc(`useNavigate`),t=_c(`useNavigate`),n=v.useRef(!1);return $s(()=>{n.current=!0}),v.useCallback(async(r,i={})=>{$o(n.current,Qs),n.current&&(typeof r==`number`?e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Cc={};function wc(e,t,n){!t&&!Cc[e]&&(Cc[e]=!0,$o(!1,n))}v.memo(Tc);function Tc({routes:e,future:t,state:n,unstable_onError:r}){return sc(e,void 0,n,r,t)}function Ec({to:e,replace:t,state:n,relative:r}){Qo(Xs(),` may be used only in the context of a component.`);let{static:i}=v.useContext(Gs);$o(!i,` must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.`);let{matches:a}=v.useContext(qs),{pathname:o}=Zs(),s=ec(),c=Ps(e,Ns(a),o,r===`path`),l=JSON.stringify(c);return v.useEffect(()=>{s(JSON.parse(l),{replace:t,state:n,relative:r})},[s,l,r,t,n]),null}function Dc(e){return rc(e.context)}function Oc(e){Qo(!1,`A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .`)}function kc({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1}){Qo(!Xs(),`You cannot render a inside another . You should never have more than one in your app.`);let o=e.replace(/^\/*/,`/`),s=v.useMemo(()=>({basename:o,navigator:i,static:a,future:{}}),[o,i,a]);typeof n==`string`&&(n=os(n));let{pathname:c=`/`,search:l=``,hash:u=``,state:d=null,key:f=`default`}=n,p=v.useMemo(()=>{let e=Os(c,o);return e==null?null:{location:{pathname:e,search:l,hash:u,state:d,key:f},navigationType:r}},[o,c,l,u,d,f,r]);return $o(p!=null,` is not able to match the URL "${c}${l}${u}" because it does not start with the basename, so the won't render anything.`),p==null?null:v.createElement(Gs.Provider,{value:s},v.createElement(Ks.Provider,{children:t,value:p}))}function Ac({children:e,location:t}){return oc(jc(e),t)}function jc(e,t=[]){let n=[];return v.Children.forEach(e,(e,r)=>{if(!v.isValidElement(e))return;let i=[...t,r];if(e.type===v.Fragment){n.push.apply(n,jc(e.props.children,i));return}Qo(e.type===Oc,`[${typeof e.type==`string`?e.type:e.type.name}] is not a component. All component children of must be a or `),Qo(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=jc(e.props.children,i)),n.push(a)}),n}var Mc=`get`,Nc=`application/x-www-form-urlencoded`;function Pc(e){return e!=null&&typeof e.tagName==`string`}function Fc(e){return Pc(e)&&e.tagName.toLowerCase()===`button`}function Ic(e){return Pc(e)&&e.tagName.toLowerCase()===`form`}function Lc(e){return Pc(e)&&e.tagName.toLowerCase()===`input`}function Rc(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function zc(e,t){return e.button===0&&(!t||t===`_self`)&&!Rc(e)}var Bc=null;function Vc(){if(Bc===null)try{new FormData(document.createElement(`form`),0),Bc=!1}catch{Bc=!0}return Bc}var Hc=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Uc(e){return e!=null&&!Hc.has(e)?($o(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Nc}"`),null):e}function Wc(e,t){let n,r,i,a,o;if(Ic(e)){let o=e.getAttribute(`action`);r=o?Os(o,t):null,n=e.getAttribute(`method`)||Mc,i=Uc(e.getAttribute(`enctype`))||Nc,a=new FormData(e)}else if(Fc(e)||Lc(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a