From b649d7a511962cef8e52e5ceb1a40fb9e5464301 Mon Sep 17 00:00:00 2001 From: Rupanshi Date: Tue, 16 Sep 2025 19:21:05 +0530 Subject: [PATCH 1/7] enhancement: Move Report Issue to sidebar (bottom) --- view/app/globals.css | 7 +++++++ view/components/layout/app-sidebar.tsx | 2 +- view/components/layout/nav-user.tsx | 15 +++++++++++---- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/view/app/globals.css b/view/app/globals.css index 87ebc30c0..e66543bdc 100644 --- a/view/app/globals.css +++ b/view/app/globals.css @@ -523,3 +523,10 @@ scrollbar-width: none; } } + +/* Ensure the sidebar supports bottom anchoring */ +.sidebar { + display: flex; + flex-direction: column; + height: 100vh; /* Full height of the viewport */ +} diff --git a/view/components/layout/app-sidebar.tsx b/view/components/layout/app-sidebar.tsx index 7b631fec6..6c4dc37fb 100644 --- a/view/components/layout/app-sidebar.tsx +++ b/view/components/layout/app-sidebar.tsx @@ -151,7 +151,7 @@ export function AppSidebar({ } return ( - + diff --git a/view/components/layout/nav-user.tsx b/view/components/layout/nav-user.tsx index 26c74037d..c2a7e1826 100644 --- a/view/components/layout/nav-user.tsx +++ b/view/components/layout/nav-user.tsx @@ -220,10 +220,6 @@ Add any other context about the problem here.`; {t('user.menu.help')} - - - {t('user.menu.reportIssue')} - @@ -232,6 +228,17 @@ Add any other context about the problem here.`; + + {/* Bottom-anchored "Report Issue" action */} +
+ +
); } From 263cff8ce672444b5808df10692585707e8d4732 Mon Sep 17 00:00:00 2001 From: Rupanshi Date: Tue, 16 Sep 2025 19:52:21 +0530 Subject: [PATCH 2/7] invalid date preview on container listing screen --- view/app/containers/components/table.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/view/app/containers/components/table.tsx b/view/app/containers/components/table.tsx index 0c1366e22..3bc70a721 100644 --- a/view/app/containers/components/table.tsx +++ b/view/app/containers/components/table.tsx @@ -83,10 +83,10 @@ const ContainersTable = ({ const hasPorts = container.ports && container.ports.length > 0; const formattedDate = container.created - ? new Intl.DateTimeFormat(undefined, { day: 'numeric', month: 'long' }).format( - new Date(parseInt(container.created) * 1000) - ) - : '-'; + ? new Intl.DateTimeFormat('en-US', { month: 'short', day: '2-digit', year: 'numeric' }).format( + new Date(parseInt(container.created) * 1000) + ) + : '-'; return ( router.push(`/containers/${container.id}`)} From 8d202776d5974a308b8b96d578542756c8a7b160 Mon Sep 17 00:00:00 2001 From: Panagiotis Bellias Date: Tue, 16 Sep 2025 23:42:14 +0300 Subject: [PATCH 3/7] docs: add roadmap to readme (#414) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a03c6cd66..af3ef4ace 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ WebsiteDocumentationBlog • - Discord + Discord • + Roadmap

image @@ -80,3 +81,4 @@ Nixopus is derived from the combination of "octopus" and the Linux penguin (Tux) Nixopus project contributors + From 9b20a412cb46f7a4eba94c286e87f67a80d7ea3f Mon Sep 17 00:00:00 2001 From: Raj Gupta <150777419+Raj-G07@users.noreply.github.com> Date: Wed, 17 Sep 2025 02:22:02 +0530 Subject: [PATCH 4/7] chore: change redis container name (#419) --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1ea795f7a..e7d120eda 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -62,7 +62,7 @@ services: nixopus-redis: image: redis:7-alpine - container_name: nixopus-redis-container + container_name: nixopus-redis restart: unless-stopped ports: - "${REDIS_PORT:-6379}:6379" From ad621d9284340495bc5125abe7ea6106d8f38029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?shravan=20=7C=7C=20=E0=A4=B6=E0=A5=8D=E0=A4=B0van?= Date: Wed, 17 Sep 2025 02:25:48 +0530 Subject: [PATCH 5/7] fix: prevent PasswordInputField type override (#417) --- api/api/versions.json | 2 +- view/components/ui/password-input-field.tsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/api/versions.json b/api/api/versions.json index 0f1755677..572d6c484 100644 --- a/api/api/versions.json +++ b/api/api/versions.json @@ -3,7 +3,7 @@ { "version": "v1", "status": "active", - "release_date": "2025-09-11T20:17:18.854289411+05:30", + "release_date": "2025-09-16T08:20:28.255146+05:30", "end_of_life": "0001-01-01T00:00:00Z", "changes": [ "Initial API version" diff --git a/view/components/ui/password-input-field.tsx b/view/components/ui/password-input-field.tsx index 7a17b842d..b4b5badb7 100644 --- a/view/components/ui/password-input-field.tsx +++ b/view/components/ui/password-input-field.tsx @@ -9,17 +9,17 @@ export interface PasswordInputFieldProps extends React.ComponentProps<'input'> { } const PasswordInputField = React.forwardRef( - function PasswordInputField({ className, containerClassName, ...props }, ref) { + function PasswordInputField({ className, containerClassName, autoComplete, ...props }, ref) { const [showPassword, setShowPassword] = React.useState(false); return (
-
+ {/* Bottom-aligned actions */} + + + {t('user.menu.sponsor')} + + + + {t('user.menu.help')} + + + + {t('user.menu.reportIssue')} + ); } diff --git a/view/components/ui/sidebar.tsx b/view/components/ui/sidebar.tsx index 9d55d0aae..a71b6f245 100644 --- a/view/components/ui/sidebar.tsx +++ b/view/components/ui/sidebar.tsx @@ -431,12 +431,13 @@ function SidebarGroupContent({ className, ...props }: React.ComponentProps<'div' ); } +// Ensure the sidebar supports bottom anchoring function SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) { return (
    ); From 8ad3b64958ff9e4a019f9b4dfa1cce72efe36a5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?shravan=20=7C=7C=20=E0=A4=B6=E0=A5=8D=E0=A4=B0van?= Date: Thu, 18 Sep 2025 14:20:06 +0530 Subject: [PATCH 7/7] hotfix: fix caddy docker proxy issue (#416) --- api/api/versions.json | 2 +- api/internal/features/deploy/tasks/create.go | 5 ++++- helpers/config.dev.yaml | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/api/api/versions.json b/api/api/versions.json index 572d6c484..bca329973 100644 --- a/api/api/versions.json +++ b/api/api/versions.json @@ -3,7 +3,7 @@ { "version": "v1", "status": "active", - "release_date": "2025-09-16T08:20:28.255146+05:30", + "release_date": "2025-09-18T09:02:53.080017+05:30", "end_of_life": "0001-01-01T00:00:00Z", "changes": [ "Initial API version" diff --git a/api/internal/features/deploy/tasks/create.go b/api/internal/features/deploy/tasks/create.go index f194e9317..8984bf21a 100644 --- a/api/internal/features/deploy/tasks/create.go +++ b/api/internal/features/deploy/tasks/create.go @@ -7,6 +7,7 @@ import ( "github.com/google/uuid" "github.com/raghavyuva/caddygo" + "github.com/raghavyuva/nixopus-api/internal/config" "github.com/raghavyuva/nixopus-api/internal/features/deploy/types" shared_types "github.com/raghavyuva/nixopus-api/internal/types" ) @@ -81,7 +82,9 @@ func (t *TaskService) HandleCreateDockerfileDeployment(ctx context.Context, Task taskCtx.LogAndUpdateStatus("Failed to convert port to int: "+err.Error(), shared_types.Failed) return err } - err = client.AddDomainWithAutoTLS(TaskPayload.Application.Domain, TaskPayload.Application.Domain, port, caddygo.DomainOptions{}) + upstreamHost := config.AppConfig.SSH.Host + + err = client.AddDomainWithAutoTLS(TaskPayload.Application.Domain, upstreamHost, port, caddygo.DomainOptions{}) if err != nil { fmt.Println("Failed to add domain: ", err) taskCtx.LogAndUpdateStatus("Failed to add domain: "+err.Error(), shared_types.Failed) diff --git a/helpers/config.dev.yaml b/helpers/config.dev.yaml index c75278930..383f5d5bc 100644 --- a/helpers/config.dev.yaml +++ b/helpers/config.dev.yaml @@ -17,6 +17,7 @@ services: SSH_PASSWORD: ${SSH_PASSWORD:-} DOCKER_HOST: ${DOCKER_HOST:-unix:///var/run/docker.sock} REDIS_URL: ${REDIS_URL:-redis://localhost:6379} + CADDY_ENDPOINT: ${CADDY_ENDPOINT:-http://127.0.0.1:2019} ALLOWED_ORIGIN: ${ALLOWED_ORIGIN:-http://localhost:7443} ENV: ${ENV:-development} LOGS_PATH: ${LOGS_PATH:-./logs}