@@ -13,6 +13,7 @@ import (
1313
1414 "github.com/deevus/pixels/internal/egress"
1515 "github.com/deevus/pixels/internal/scripts"
16+ "github.com/deevus/pixels/sandbox/user"
1617)
1718
1819// Client wraps a truenas-go WebSocket client and its typed services.
@@ -191,12 +192,13 @@ func (c *Client) Provision(ctx context.Context, name string, opts ProvisionOpts)
191192 }); err != nil {
192193 return fmt .Errorf ("writing authorized_keys: %w" , err )
193194 }
194- pixelUID := intPtr (1000 )
195+ pixelUID := intPtr (user .UID )
196+ pixelGID := intPtr (user .GID )
195197 if err := c .Filesystem .WriteFile (ctx , rootfs + "/home/pixel/.ssh/authorized_keys" , truenas.WriteFileParams {
196198 Content : keyData ,
197199 Mode : 0o600 ,
198200 UID : pixelUID ,
199- GID : pixelUID ,
201+ GID : pixelGID ,
200202 }); err != nil {
201203 return fmt .Errorf ("writing authorized_keys: %w" , err )
202204 }
@@ -205,6 +207,15 @@ func (c *Client) Provision(ctx context.Context, name string, opts ProvisionOpts)
205207
206208 // Write dev tools setup script (executed later via zmx).
207209 if opts .DevTools {
210+ if err := c .Filesystem .WriteFile (ctx , rootfs + "/home/pixel/.config/mise/config.toml" , truenas.WriteFileParams {
211+ Content : []byte (scripts .MiseToml ),
212+ Mode : 0o644 ,
213+ UID : intPtr (user .UID ),
214+ GID : intPtr (user .GID ),
215+ }); err != nil {
216+ return fmt .Errorf ("writing mise config: %w" , err )
217+ }
218+
208219 if err := c .Filesystem .WriteFile (ctx , rootfs + "/usr/local/bin/pixels-setup-devtools.sh" , truenas.WriteFileParams {
209220 Content : []byte (scripts .SetupDevtools ),
210221 Mode : 0o755 ,
@@ -509,12 +520,13 @@ func (c *Client) WriteAuthorizedKey(ctx context.Context, name, sshPubKey string)
509520 return fmt .Errorf ("writing root authorized_keys: %w" , err )
510521 }
511522
512- pixelUID := intPtr (1000 )
523+ pixelUID := intPtr (user .UID )
524+ pixelGID := intPtr (user .GID )
513525 if err := c .Filesystem .WriteFile (ctx , rootfs + "/home/pixel/.ssh/authorized_keys" , truenas.WriteFileParams {
514526 Content : keyData ,
515527 Mode : 0o600 ,
516528 UID : pixelUID ,
517- GID : pixelUID ,
529+ GID : pixelGID ,
518530 }); err != nil {
519531 return fmt .Errorf ("writing pixel authorized_keys: %w" , err )
520532 }
0 commit comments