diff --git a/frontend/app/index.tsx b/frontend/app/term/index.tsx
similarity index 81%
rename from frontend/app/index.tsx
rename to frontend/app/term/index.tsx
index 7de956a..c53ba69 100644
--- a/frontend/app/index.tsx
+++ b/frontend/app/term/index.tsx
@@ -15,25 +15,25 @@ const HomePage = () => {
       type: "ssh",
       params: { hostId: "01jc3v9w609f8e2wzw60amv195" },
     },
-    {
-      id: "2",
-      type: "pve",
-      params: { client: "vnc", hostId: "01jc3wp2b3zvgr777f4e3caw4w" },
-    },
-    {
-      id: "3",
-      type: "pve",
-      params: { client: "xtermjs", hostId: "01jc3z3yyn2fgb77tyfxc1tkfy" },
-    },
-    {
-      id: "4",
-      type: "incus",
-      params: {
-        client: "xtermjs",
-        hostId: "01jc3xz9db0v54dg10hk70a13b",
-        shell: "fish",
-      },
-    },
+    // {
+    //   id: "2",
+    //   type: "pve",
+    //   params: { client: "vnc", hostId: "01jc3wp2b3zvgr777f4e3caw4w" },
+    // },
+    // {
+    //   id: "3",
+    //   type: "pve",
+    //   params: { client: "xtermjs", hostId: "01jc3z3yyn2fgb77tyfxc1tkfy" },
+    // },
+    // {
+    //   id: "4",
+    //   type: "incus",
+    //   params: {
+    //     client: "xtermjs",
+    //     hostId: "01jc3xz9db0v54dg10hk70a13b",
+    //     shell: "fish",
+    //   },
+    // },
   ]);
   const [curSession, setSession] = useState(0);
 
diff --git a/frontend/components/containers/interactive-session.tsx b/frontend/components/containers/interactive-session.tsx
index 8262db5..3cc0ff7 100644
--- a/frontend/components/containers/interactive-session.tsx
+++ b/frontend/components/containers/interactive-session.tsx
@@ -5,16 +5,12 @@ import VNCViewer from "./vncviewer";
 
 type SSHSessionProps = {
   type: "ssh";
-  params: {
-    hostId: string;
-  };
 };
 
 type PVESessionProps = {
   type: "pve";
   params: {
     client: "vnc" | "xtermjs";
-    hostId: string;
   };
 };
 
@@ -22,15 +18,15 @@ type IncusSessionProps = {
   type: "incus";
   params: {
     client: "vnc" | "xtermjs";
-    hostId: string;
     shell?: string;
   };
 };
 
-export type InteractiveSessionProps =
+export type InteractiveSessionProps = { params: { hostId: string } } & (
   | SSHSessionProps
   | PVESessionProps
-  | IncusSessionProps;
+  | IncusSessionProps
+);
 
 const InteractiveSession = ({ type, params }: InteractiveSessionProps) => {
   const query = new URLSearchParams(params);
diff --git a/server/.env.example b/server/.env.example
new file mode 100644
index 0000000..e61fe68
--- /dev/null
+++ b/server/.env.example
@@ -0,0 +1,5 @@
+
+DATABASE_URL=
+
+# Generate a 32-byte (256-bit) key for AES-256 encryption using `openssl rand -base64 32`
+ENCRYPTION_KEY=""
diff --git a/server/app/ws/term.go b/server/app/ws/term.go
index 4370b57..f09f04a 100644
--- a/server/app/ws/term.go
+++ b/server/app/ws/term.go
@@ -1,6 +1,8 @@
 package ws
 
 import (
+	"log"
+
 	"github.com/gofiber/contrib/websocket"
 	"rul.sh/vaulterm/app/hosts"
 	"rul.sh/vaulterm/lib"
@@ -11,9 +13,10 @@ func HandleTerm(c *websocket.Conn) {
 	hostId := c.Query("hostId")
 
 	hostRepo := hosts.NewHostsRepository()
-	data, _ := hostRepo.Get(hostId)
+	data, err := hostRepo.Get(hostId)
 
 	if data == nil {
+		log.Printf("Cannot find host! Error: %s\n", err.Error())
 		c.WriteMessage(websocket.TextMessage, []byte("Host not found"))
 		return
 	}
diff --git a/server/go.mod b/server/go.mod
index 03ba620..cb5429d 100644
--- a/server/go.mod
+++ b/server/go.mod
@@ -11,6 +11,7 @@ require (
 	github.com/oklog/ulid/v2 v2.1.0
 	github.com/stretchr/testify v1.9.0
 	golang.org/x/crypto v0.28.0
+	gorm.io/datatypes v1.2.4
 	gorm.io/driver/postgres v1.5.9
 	gorm.io/driver/sqlite v1.5.6
 	gorm.io/gorm v1.25.12
@@ -50,6 +51,5 @@ require (
 	golang.org/x/sys v0.26.0 // indirect
 	golang.org/x/text v0.19.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	gorm.io/datatypes v1.2.4 // indirect
 	gorm.io/driver/mysql v1.5.6 // indirect
 )
diff --git a/server/go.sum b/server/go.sum
index 7a78e3c..9979d05 100644
--- a/server/go.sum
+++ b/server/go.sum
@@ -15,12 +15,14 @@ github.com/gofiber/contrib/websocket v1.3.2 h1:AUq5PYeKwK50s0nQrnluuINYeep1c4nRC
 github.com/gofiber/contrib/websocket v1.3.2/go.mod h1:07u6QGMsvX+sx7iGNCl5xhzuUVArWwLQ3tBIH24i+S8=
 github.com/gofiber/fiber/v2 v2.52.5 h1:tWoP1MJQjGEe4GB5TUGOi7P2E0ZMMRx5ZTG4rT+yGMo=
 github.com/gofiber/fiber/v2 v2.52.5/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
+github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA=
+github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
+github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A=
+github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
 github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
-github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk=
-github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
 github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA=
 github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
 github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw=
@@ -48,6 +50,8 @@ github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZ
 github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
 github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
 github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE=
+github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ=
 github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU=
 github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ=
 github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
@@ -98,6 +102,8 @@ gorm.io/driver/postgres v1.5.9 h1:DkegyItji119OlcaLjqN11kHoUgZ/j13E0jkJZgD6A8=
 gorm.io/driver/postgres v1.5.9/go.mod h1:DX3GReXH+3FPWGrrgffdvCk3DQ1dwDPdmbenSkweRGI=
 gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE=
 gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4=
+gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0=
+gorm.io/driver/sqlserver v1.4.1/go.mod h1:DJ4P+MeZbc5rvY58PnmN1Lnyvb5gw5NPzGshHDnJLig=
 gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
 gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
 gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=