puter
puter copied to clipboard
[docker] A way mount the data directory that doesn't require `chown`
I am using unraid. When I deployed the puter, I looked at the docker container log and found this error. Looking for technical help.
~~Hello, quick fix is to add NO_VAR_RUNTIME=1 before the command. The /var/puter directory is getting created and I still don't know why; this has been driving me nuts for weeks.~~
edit: I didn't read this carefully enough; didn't realize it was a Docker container.
This might be a permission issue. Can you provide the commands you used to reproduce this issue?
~Hello, quick fix is to add
NO_VAR_RUNTIME=1before the command. The/var/puterdirectory is getting created and I still don't know why; this has been driving me nuts for weeks.~edit: I didn't read this carefully enough; didn't realize it was a Docker container.
This might be a permission issue. Can you provide the commands you used to reproduce this issue?
version: "3.8" services: puter: container_name: puter image: ghcr.io/heyputer/puter:latest pull_policy: always # build: ./ restart: unless-stopped ports: - '4100:4100' environment: TZ: Asia/Shanghai CONFIG_PATH: /etc/puter PUID: 1000 PGID: 1000 volumes: - /mnt/nvme0n1-4/Configs/puter/config:/etc/puter - /mnt/nvme0n1-4/Configs/puter/data:/var/puter healthcheck: test: wget --no-verbose --tries=1 --spider http://puter.localhost:4100/test || exit 1 interval: 30s timeout: 3s retries: 3 start_period: 30s
This is a docker compose file, right? Make sure you have ownership set correctly on those directories:
chown -R 1000:1000 /mnt/nvme0n1-4/Configs/puter/config
chown -R 1000:1000 /mnt/nvme0n1-4/Configs/puter/data
In case it helps, this is the snippet of code that's throwing the exception when checking /var/puter:
require_write_permission: ({ path }) => {
try {
fs.writeFileSync(path_.join(path, '.tmp_test_write_permission'), 'test');
fs.unlinkSync(path_.join(path, '.tmp_test_write_permission'));
} catch (e) {
throw new Error(`Cannot write to path: ${path}`);
}
return true;
},
The function tries to write a file to that directory as a test. This error indicates that /var/puter is not writable within your container.
@bupahaibao hello, did the solution above resolve the issue? If so, please let me know so I can close this, thanks!
Hello, I have the same situation on Ubuntu 22.04. Here is my compose:
services:
puter:
container_name: puter
image: ghcr.io/heyputer/puter:latest
pull_policy: always
restart: unless-stopped
ports:
- 4100:4100
environment:
- PUID=1004
- PGID=1004
- TZ=Europe/Rome
volumes:
- /root/docker/stack/puter/config:/etc/puter
- /root/docker/stack/puter/data:/var/puter
healthcheck:
test: wget --no-verbose --tries=1 --spider http://puter.localhost:4100/test || exit 1
interval: 30s
timeout: 3s
retries: 3
start_period: 30s
I checked the user and group id were correct:
root@dockerstack:~/docker/stack# getent group 1004
container:x:1004:
root@dockerstack:~/docker/stack# id -u container
1004
It also looks like the permissions are correct:
root@dockerstack:~/docker/stack# ls -la puter/
total 16
drwxrwxr-x 4 container service 4096 Aug 9 11:14 .
drwxrwxr-x 13 container service 4096 Aug 9 11:13 ..
drwxrwxr-x 2 container service 4096 Aug 9 11:15 config
drwxrwxr-x 2 container service 4096 Aug 8 21:05 data
Could it be the permissions drwxrwxr-x?
I still get [BOOT/ERROR] Error: Cannot write to path: /var/puter and the container keeps restarting. Would love to get this awesome tool running!
@francescoferri are you able to check the permissions of /var/puter inside the Docker container? I suspect that's where they're incorrect, but I'm not sure how Docker handles permissions of volume mounts.
So it looks like the container keeps restarting so I cannot make it into the shell:
root@dockerstack:~# docker exec -it puter sh
Error response from daemon: Container ec4a4f93b9013ec241cf51fafe7ed85afd52ad2b712bf847021aa2d371e118b3 is restarting, wait until the container is running
Because of this, I decided to start a webtop container with the same uid and gid just to see what is going on. Here is the compose:
webtop:
image: lscr.io/linuxserver/webtop:latest
container_name: webtop
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1004
- PGID=1004
- TZ=Europe/Rome
- TITLE=Webtop #optional
volumes:
- /root/docker/stack/webtop/data:/config
- /root/docker/stack/puter/config:/etc/puter
- /root/docker/stack/puter/data:/var/puter
ports:
- 3000:3000
- 3001:3001
shm_size: "1gb" #optional
restart: unless-stopped
Turns out that inside of the container at /var I see:
9ad4a2eb6d1f:/var$ ls -la
total 72
drwxr-xr-x 1 root root 4096 Aug 10 17:52 .
drwxr-xr-x 1 root root 4096 Aug 10 17:52 ..
drwxr-xr-x 1 root root 4096 Aug 3 20:53 cache
drwxr-xr-x 2 root root 4096 Aug 3 20:53 db
dr-xr-xr-x 2 root root 4096 Jul 27 15:31 empty
drwxr-xr-x 1 root root 4096 Aug 6 05:58 lib
drwxr-xr-x 2 root root 4096 Jul 27 15:31 local
drwxr-xr-x 3 root root 4096 Jul 27 15:31 lock
drwxr-xr-x 1 root root 4096 Aug 3 20:53 log
drwxr-xr-x 2 root root 4096 Jul 27 15:31 mail
drwxr-xr-x 2 root root 4096 Jul 27 15:31 opt
drwxrwxr-x 2 abc kasm-user 4096 Aug 10 17:35 puter
lrwxrwxrwx 1 root root 4 Jul 27 15:31 run -> /run
drwxr-xr-x 1 root root 4096 Aug 3 20:53 spool
drwxrwxrwt 2 root root 4096 Jul 27 15:31 tmp
drwxr-xr-x 3 root root 4096 Aug 3 20:53 www
And that indeed as set by the compose the user abc has uid=1004:
9ad4a2eb6d1f:/var$ whoami
abc
9ad4a2eb6d1f:/var$ id -u abc
1004
So I decided to test if I could write to it. Sure I can...
9ad4a2eb6d1f:/var$ cd puter
9ad4a2eb6d1f:/var/puter$ ls -la
total 12
drwxrwxr-x 2 abc kasm-user 4096 Aug 10 17:35 .
drwxr-xr-x 1 root root 4096 Aug 10 17:52 ..
9ad4a2eb6d1f:/var/puter$ touch test
9ad4a2eb6d1f:/var/puter$ ls -la
total 12
drwxrwxr-x 2 abc kasm-user 4096 Aug 10 17:55 .
drwxr-xr-x 1 root root 4096 Aug 10 17:52 ..
-rw-r--r-- 1 abc abc 0 Aug 10 17:55 test
So I can, which leaves me even more confused now. If I have a different container with the same uid that can write to it, why would puter not be able to do that?
Could it be a username issue? I have the host OS setting container as the owner of the directory. But have the container user abc, with the same uid=1004 try to access it. Would that be the issue? Thanks for the help!
Has there been an update to this issue? I'm having the same problem. I'm running this on a Synology NAS using Container Manager (which is basically a Docker Compose frontend). I have tried various changes to the compose file, but I haven't gotten this to work either. Getting the same error:
-- | -- | --
2024/09/10 01:36:45 | stdout |
2024/09/10 01:36:45 | stdout | [31;1m┗━━ [ END HELP ][0m
2024/09/10 01:36:45 | stdout | [31;1m┃[0m Help can be added in src/errors/error_help_details.
2024/09/10 01:36:45 | stdout | [31;1m┃[0m No help is available for this error.
2024/09/10 01:36:45 | stdout | [31;1m┃[0m Whoops! Looks like something isn't working!
2024/09/10 01:36:45 | stdout | [31;1m┏━━ [ HELP:[0m Cannot write to path: /var/puter [31;1m][0m
2024/09/10 01:36:45 | stdout |
2024/09/10 01:36:45 | stdout | at async file:///opt/puter/app/tools/run-selfhosted.js:157:9
2024/09/10 01:36:45 | stdout | at main (file:///opt/puter/app/tools/run-selfhosted.js:96:7)
2024/09/10 01:36:45 | stdout | at Kernel.boot (/opt/puter/app/src/backend/src/Kernel.js:70:14)
2024/09/10 01:36:45 | stdout | at Kernel.runtime_init (/opt/puter/app/src/backend/src/Kernel.js:62:40)
2024/09/10 01:36:45 | stdout | at RuntimeEnvironment.init (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:210:25)
2024/09/10 01:36:45 | stdout | at RuntimeEnvironment.init (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:235:37)
2024/09/10 01:36:45 | stdout | at RuntimeEnvironment.get_first_suitable_path_ (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:338:32)
2024/09/10 01:36:45 | stdout | at require_write_permission (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:78:19)
2024/09/10 01:36:45 | stdout | [31;1m[BOOT/ERROR][0m Error: Cannot write to path: /var/puter
2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m -> doing require_write_permission on path /var/puter...
2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m -> doing on path `/var/puter`... 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m -> doing `skip_if_not_exists` on path `/var/puter`... 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m Checking path `/var/puter` for working directory... 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m -> `require_if_not_undefined` doesn't like this path 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m -> doing `require_if_not_undefined` on path [undefined]... 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m Checking path `$RUNTIME_PATH` for working directory... 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m [33;1mUSING[0m `/etc/puter` for configuration. 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m -> doing `require_read_permission` on path `/etc/puter`... 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m -> doing `require_if_not_undefined` on path `/etc/puter`... 2024/09/10 01:36:45 | stdout | [36;1m[BOOT/INFO][0m Checking path `$CONFIG_PATH` for configuration... 2024/09/10 01:36:45 | stdout | [36;1mBoot logger started :)[0m 2024/09/10 01:36:45 | stdout | 2024/09/10 01:36:45 | stdout | > node ./tools/run-selfhosted.js 2024/09/10 01:36:45 | stdout | > [email protected] start 2024/09/10 01:36:45 | stdout | 2024/09/10 01:36:16 | stdout | 2024/09/10 01:36:16 | stdout | [31;1m┗━━ [ END HELP ][0m 2024/09/10 01:36:16 | stdout | [31;1m┃[0m Help can be added in src/errors/error_help_details. 2024/09/10 01:36:16 | stdout | [31;1m┃[0m No help is available for this error. 2024/09/10 01:36:16 | stdout | [31;1m┃[0m Whoops! Looks like something isn't working! 2024/09/10 01:36:16 | stdout | [31;1m┏━━ [ HELP:[0m `Cannot write to path: /var/puter` [31;1m][0m 2024/09/10 01:36:16 | stdout | 2024/09/10 01:36:16 | stdout | at async file:///opt/puter/app/tools/run-selfhosted.js:157:9 2024/09/10 01:36:16 | stdout | at main (file:///opt/puter/app/tools/run-selfhosted.js:96:7) 2024/09/10 01:36:16 | stdout | at Kernel.boot (/opt/puter/app/src/backend/src/Kernel.js:70:14) 2024/09/10 01:36:16 | stdout | at Kernel._runtime_init (/opt/puter/app/src/backend/src/Kernel.js:62:40) 2024/09/10 01:36:16 | stdout | at RuntimeEnvironment.init (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:210:25) 2024/09/10 01:36:16 | stdout | at RuntimeEnvironment.init_ (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:235:37) 2024/09/10 01:36:16 | stdout | at RuntimeEnvironment.get_first_suitable_path_ (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:338:32) 2024/09/10 01:36:16 | stdout | at require_write_permission (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:78:19) 2024/09/10 01:36:16 | stdout | [31;1m[BOOT/ERROR][0m Error: Cannot write to path: /var/puter 2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m -> doing `require_write_permission` on path `/var/puter`... 2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m -> doing on path /var/puter...
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m -> doing skip_if_not_exists on path /var/puter...
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m Checking path /var/puter for working directory...
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m -> require_if_not_undefined doesn't like this path
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m -> doing require_if_not_undefined on path [undefined]...
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m Checking path $RUNTIME_PATH for working directory...
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m [33;1mUSING[0m /etc/puter for configuration.
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m -> doing require_read_permission on path /etc/puter...
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m -> doing require_if_not_undefined on path /etc/puter...
2024/09/10 01:36:16 | stdout | [36;1m[BOOT/INFO][0m Checking path $CONFIG_PATH for configuration...
2024/09/10 01:36:16 | stdout | [36;1mBoot logger started :)[0m
2024/09/10 01:36:16 | stdout |
2024/09/10 01:36:16 | stdout | > node ./tools/run-selfhosted.js
2024/09/10 01:36:16 | stdout | > [email protected] start
Hello, I have the same error. I don't know if there is any solution.
I have created a system user without home named puter:
$ id puter
uid=993(puter) gid=990(puter) grupos=990(puter),994(docker)
I have created the docker compose file with two services: puter and webtop as @francescoferri indicated.
$ cat docker-compose.yml
version: "3.8"
services:
puter:
container_name: puter
image: ghcr.io/heyputer/puter:latest
pull_policy: always
restart: unless-stopped
ports:
- '4100:4100'
environment:
- PUID=993
- PGID=990
- TZ=Europe/Madrid
volumes:
- /var/puter/config:/etc/puter
- /var/puter/data:/var/puter
healthcheck:
test: wget --no-verbose --tries=1 --spider http://puter.localhost:4100/test || exit 1
interval: 30s
timeout: 3s
retries: 3
start_period: 30s
webtop:
image: lscr.io/linuxserver/webtop:latest
container_name: webtop
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=993
- PGID=990
- TZ=Europe/Madrid
- TITLE=Webtop #optional
volumes:
- /var/puter/webtop/data:/config
- /var/puter/config:/etc/puter
- /var/puter/data:/var/puter
ports:
- 3000:3000
- 3001:3001
shm_size: "1gb" #optional
restart: unless-stopped
Puter gives error accessing /var/puter, however if I connect to webtop I can access and write without problems.
$ docker exec -it puter sh
Error response from daemon: Container d9ef518aa6599f7a4d297e09e271e669c044af44211dab29f3306e9bcd1d4c4b is restarting, wait until the container is running
$ sudo -u puter docker logs puter
> [email protected] start
> node ./tools/run-selfhosted.js
Boot logger started :)
[BOOT/INFO] Checking path `$CONFIG_PATH` for configuration...
[BOOT/INFO] -> doing `require_if_not_undefined` on path [undefined]...
[BOOT/INFO] -> `require_if_not_undefined` doesn't like this path
[BOOT/INFO] Checking path `/etc/puter` for configuration...
[BOOT/INFO] -> doing `skip_if_not_exists` on path `/etc/puter`...
[BOOT/INFO] -> doing `require_read_permission` on path `/etc/puter`...
[BOOT/INFO] USING `/etc/puter` for configuration.
[BOOT/INFO] Checking path `$RUNTIME_PATH` for working directory...
[BOOT/INFO] -> doing `require_if_not_undefined` on path [undefined]...
[BOOT/INFO] -> `require_if_not_undefined` doesn't like this path
[BOOT/INFO] Checking path `/var/puter` for working directory...
[BOOT/INFO] -> doing `skip_if_not_exists` on path `/var/puter`...
[BOOT/INFO] -> doing `` on path `/var/puter`...
[BOOT/INFO] -> doing `require_write_permission` on path `/var/puter`...
[BOOT/ERROR] Error: Cannot write to path: /var/puter
at require_write_permission (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:78:19)
at RuntimeEnvironment.get_first_suitable_path_ (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:338:32)
at RuntimeEnvironment.init_ (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:235:37)
at RuntimeEnvironment.init (/opt/puter/app/src/backend/src/boot/RuntimeEnvironment.js:210:25)
at Kernel._runtime_init (/opt/puter/app/src/backend/src/Kernel.js:62:40)
at Kernel.boot (/opt/puter/app/src/backend/src/Kernel.js:70:14)
at main (file:///opt/puter/app/tools/run-selfhosted.js:96:7)
at async file:///opt/puter/app/tools/run-selfhosted.js:157:9
┏━━ [ HELP: `Cannot write to path: /var/puter` ]
┃ Whoops! Looks like something isn't working!
┃ No help is available for this error.
┃ Help can be added in src/errors/error_help_details.
┗━━ [ END HELP ]
$ docker exec -it webtop sh
root@c8ba85a917b6:/# ls -la /var
total 72
drwxr-xr-x 1 root root 4096 Sep 21 19:57 .
drwxr-xr-x 1 root root 4096 Sep 21 19:57 ..
drwxr-xr-x 1 root root 4096 Sep 14 20:48 cache
drwxr-xr-x 2 root root 4096 Sep 14 20:48 db
dr-xr-xr-x 2 root root 4096 Sep 14 15:32 empty
drwxr-xr-x 1 root root 4096 Sep 17 05:54 lib
drwxr-xr-x 2 root root 4096 Sep 14 15:32 local
drwxr-xr-x 3 root root 4096 Sep 14 15:32 lock
drwxr-xr-x 1 root root 4096 Sep 14 20:48 log
drwxr-xr-x 2 root root 4096 Sep 14 15:32 mail
drwxr-xr-x 2 root root 4096 Sep 14 15:32 opt
drwxrwxr-x 2 abc abc 4096 Sep 21 19:49 puter
lrwxrwxrwx 1 root root 4 Sep 14 15:32 run -> /run
drwxr-xr-x 1 root root 4096 Sep 14 20:48 spool
drwxrwxrwt 2 root root 4096 Sep 14 15:32 tmp
drwxr-xr-x 3 root root 4096 Sep 14 20:48 www
root@c8ba85a917b6:/# sudo -u abc id
uid=993(abc) gid=990(abc) groups=990(abc),10(wheel),103(docker),1000(users)
root@c8ba85a917b6:/# sudo -u abc touch /var/puter/b
root@c8ba85a917b6:/# sudo -u abc ls -la /var/puter
total 12
drwxrwxr-x 2 abc abc 4096 Sep 21 19:59 .
drwxr-xr-x 1 root root 4096 Sep 21 19:57 ..
-rw-r--r-- 1 abc abc 0 Sep 21 19:49 a
-rw-r--r-- 1 abc abc 0 Sep 21 19:59 b
Thanks in advance!
Reviewing the issue https://github.com/HeyPuter/puter/issues/209 I have tried assigning user 1000 and group 1000 permissions and configuring docker compose with these and it works.
Is it possible that these permissions are written in the code? is it not possible to parameterize them, @KernelDeimos ?
In any case, thank you very much for the awesome work.
Unfortunately, I have the same problem, since I can't create a UID 1000 / GID 1000 user I am stuck. Shame that this is not possible yet. It appears indeed that docker parameters are not used.
Only when I give "everyone" access to the folder it will work.
Reviewing the issue #209 I have tried assigning user 1000 and group 1000 permissions and configuring docker compose with these and it works.
Is it possible that these permissions are written in the code? is it not possible to parameterize them, @KernelDeimos ?
In any case, thank you very much for the awesome work.
Parameterizing the UID/GID of the user in the Docker container would be tricky. I think we need to mount this in a different way. Docker must have a way to make this easier, but I don't know what it is yet.
Neither of the maintainers (myself included) use Docker all that much. I know my way around a Dockerfile and the cli, but I don't my way around all the features or what people usually expect when deploying a docker image, so a lot of these issues that come up confuse me. For example, I don't understand why setting ownership to 1000:1000 causes a problem for some people, and it would take me much longer to improve that experience than someone who does this sort of thing all the time.
I added the help wanted label, and changed the title to something a Docker-guru who knows how to solve this will recognize.
Step 1: Find the Current UID/GID on Unraid
ls -n /path/to/your/directory
Note the UID and GID from the output (e.g., 99:100)
Step 2: Update the Container Environment Variables
In Unraid's Docker GUI, set the following environment variables:
PUID=99 PGID=100
Step 3: Adjust Permissions for Shared Directories
chown -R 99:100 /path/to/your/directory chmod -R 775 /path/to/your/directory
Step 4: Restart the Docker Container
From the Unraid UI, restart the container for changes to take effect.
Step 5: Verify Permissions Inside the Container
docker exec -it <container_name> /bin/bash ls -l /path/to/mounted/directory
Ensure the UID and GID match what you set (99:100).
Optional: Create a Custom User in the Container
If modifying the Dockerfile (advanced):
RUN addgroup -g 99 unraidgroup && adduser -u 99 -G unraidgroup -D unraiduser USER unraiduser
Alternatively, specify the user when running the container:
docker run --user 99:100 -v /path/to/your/directory:/container/path puter-image
I am unable to get this working with your advice, unfortunately.
Hey,
Id love to collaborate, but a screen share with this configuration would be helpful. I am able to get it going on my host and am thinking of setting up a couple trial vms to try, but it would better if we had live host to troubleshoot with.
Can you provide logs or anything that can help determine the fail point?
On Fri, Nov 22, 2024, 9:59 PM mihcox @.***> wrote:
I am unable to get this working with your advice, unfortunately.
— Reply to this email directly, view it on GitHub https://github.com/HeyPuter/puter/issues/645#issuecomment-2495247768, or unsubscribe https://github.com/notifications/unsubscribe-auth/APUFLHLXDKQNHAW2S7T2AJT2B7VRVAVCNFSM6AAAAABLXT4FNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVGI2DONZWHA . You are receiving this because you commented.Message ID: @.***>
Step 1:
Step 2:
Step 3:
Step 4: I run docker restart Puter and get the same error
Let me know if I missed something in my config/setup
OK,
The container variables need to be deleted, set those at the top when in advanced viewer. Also, make sure privileged is on for the first test launch.
Try and advise.
Thanks
On Sat, Nov 23, 2024, 5:42 PM mihcox @.***> wrote:
Step 1: image.png (view on web) https://github.com/user-attachments/assets/c2bae1c7-7bf4-4a1e-9809-a8912feb77ff
Step 2: image.png (view on web) https://github.com/user-attachments/assets/ac51b457-a9ec-438e-ad01-18c232f847cb
Step 3: image.png (view on web) https://github.com/user-attachments/assets/692526d3-f91d-438d-b92e-aa2a2982105d
Step 4: I run docker restart Puter and get the same error image.png (view on web) https://github.com/user-attachments/assets/c34f27af-1178-436d-934c-d30b588ebac2
Let me know if I missed something in my config/setup
— Reply to this email directly, view it on GitHub https://github.com/HeyPuter/puter/issues/645#issuecomment-2495676710, or unsubscribe https://github.com/notifications/unsubscribe-auth/APUFLHIJ3Z4NBCBJLFRXRHL2CEAFJAVCNFSM6AAAAABLXT4FNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVGY3TMNZRGA . You are receiving this because you commented.Message ID: @.***>
That seems to have gotten me over the initial hurdle, now the webpage only shows the following: Invalid Host header.
Logs:
Excellent. I believe first launch this took about 5-10 mins to get past.
On Sat, Nov 23, 2024, 7:29 PM mihcox @.***> wrote:
That seems to have gotten me over the initial hurdle, now the webpage only shows the following: Invalid Host header.
Logs:
status: 400 responseTime: 5.035 trace_request: "27612e08-5596-4567-b9be-07ec86f215b6" [INFO::morgan] (15.033s) GET /favicon.ico? 400 0.729 method: "GET" url: "/favicon.ico?" status: 400 responseTime: 0.729 trace_request: "7e2d64ce-4b94-40f5-8408-fb6396046638" [INFO::morgan] (15.786s) GET /? 400 0.565 method: "GET" url: "/?" status: 400 responseTime: 0.565 trace_request: "8976c58a-df9c-44fb-a25c-d8a76d88fd48" [TICK::server-health] (30.886s) service checks [TICK::app-info] (31.483s) refresh app cache [TICK::refresh_apps_cache] (46.505s) refresh associations cache [ Dev Console ]
— Reply to this email directly, view it on GitHub https://github.com/HeyPuter/puter/issues/645#issuecomment-2495717524, or unsubscribe https://github.com/notifications/unsubscribe-auth/APUFLHN3CH7WYBHVRWKDUPT2CEMVPAVCNFSM6AAAAABLXT4FNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVG4YTONJSGQ . You are receiving this because you commented.Message ID: @.***>
Status?
On Sat, Nov 23, 2024, 7:47 PM Simon Lively @.***> wrote:
Excellent. I believe first launch this took about 5-10 mins to get past.
On Sat, Nov 23, 2024, 7:29 PM mihcox @.***> wrote:
That seems to have gotten me over the initial hurdle, now the webpage only shows the following: Invalid Host header.
Logs:
status: 400 responseTime: 5.035 trace_request: "27612e08-5596-4567-b9be-07ec86f215b6" [INFO::morgan] (15.033s) GET /favicon.ico? 400 0.729 method: "GET" url: "/favicon.ico?" status: 400 responseTime: 0.729 trace_request: "7e2d64ce-4b94-40f5-8408-fb6396046638" [INFO::morgan] (15.786s) GET /? 400 0.565 method: "GET" url: "/?" status: 400 responseTime: 0.565 trace_request: "8976c58a-df9c-44fb-a25c-d8a76d88fd48" [TICK::server-health] (30.886s) service checks [TICK::app-info] (31.483s) refresh app cache [TICK::refresh_apps_cache] (46.505s) refresh associations cache [ Dev Console ]
— Reply to this email directly, view it on GitHub https://github.com/HeyPuter/puter/issues/645#issuecomment-2495717524, or unsubscribe https://github.com/notifications/unsubscribe-auth/APUFLHN3CH7WYBHVRWKDUPT2CEMVPAVCNFSM6AAAAABLXT4FNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVG4YTONJSGQ . You are receiving this because you commented.Message ID: @.***>
i am seeing various errors in the logs, I can provide more detail as you need:
Gputer> G
A[ Dev Console ]
init failures [
{
k: 'database',
e: SqliteError: FOREIGN KEY constraint failed
at Database.exec (/opt/puter/app/node_modules/better-sqlite3/lib/methods/wrappers.js:9:14)
at SqliteDatabaseAccessService._init (/opt/puter/app/src/backend/src/services/database/SqliteDatabaseAccessService.js:80:25)
at SqliteDatabaseAccessService.init (/opt/puter/app/src/backend/src/services/BaseService.js:48:36)
at Container.init (/opt/puter/app/src/backend/src/services/Container.js:95:42)
at async Kernel._install_modules (/opt/puter/app/src/backend/src/Kernel.js:139:13)
at async /opt/puter/app/src/backend/src/Kernel.js:118:13
at async /opt/puter/app/src/backend/src/util/context.js:115:20
at async Context.arun (/opt/puter/app/src/backend/src/util/context.js:113:16) {
code: 'SQLITE_CONSTRAINT_FOREIGNKEY'
}
}
]
Gputer> G
A[ERRO::system-validation] (1.449s) Error @ INVALID SYSTEM STATE: failed to initialize services; CompositeError: failed to initialize these services: database
at Container.init (/opt/puter/app/src/backend/src/services/Container.js:103:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Kernel._install_modules (/opt/puter/app/src/backend/src/Kernel.js:139:13)
at async /opt/puter/app/src/backend/src/Kernel.js:118:13
at async /opt/puter/app/src/backend/src/util/context.js:115:20
at async Context.arun (/opt/puter/app/src/backend/src/util/context.js:113:16)
--- Inner error: SqliteError: FOREIGN KEY constraint failed
at Database.exec (/opt/puter/app/node_modules/better-sqlite3/lib/methods/wrappers.js:9:14)
at SqliteDatabaseAccessService._init (/opt/puter/app/src/backend/src/services/database/SqliteDatabaseAccessService.js:80:25)
at SqliteDatabaseAccessService.init (/opt/puter/app/src/backend/src/services/BaseService.js:48:36)
at Container.init (/opt/puter/app/src/backend/src/services/Container.js:95:42)
at async Kernel._install_modules (/opt/puter/app/src/backend/src/Kernel.js:139:13)
at async /opt/puter/app/src/backend/src/Kernel.js:118:13
at async /opt/puter/app/src/backend/src/util/context.js:115:20
at async Context.arun (/opt/puter/app/src/backend/src/util/context.js:113:16)
--- End of inner error
[ Dev Console ]
Gputer> G
A[ERRO::system-validation] (1.450s) CompositeError: failed to initialize these services: database
[ Dev Console ]
Gputer> G
A[ERRO::alarm] (1.451s) upcoming alarm: INVALID SYSTEM STATE:failed to initialize services: failed to initialize services
[ Dev Console ]
Gputer> G
A[ERRO::alarm] (1.454s) ACTIVE bold-wallet-1101 (INVALID SYSTEM STATE...) :: failed to initialize services (1)
error: {
"message": "failed to initialize these services: database",
"name": "CompositeError",
"innerErrors": [
{
"code": "SQLITE_CONSTRAINT_FOREIGNKEY"
}
],
"originalStackDescriptor": {
"enumerable": false,
"configurable": true
}
}
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.465s) registering command fsc:status
[ Dev Console ]
Gputer> G
A[TICK::app-info] (1.466s) refresh app cache
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.468s) registering command eng:test
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.470s) registering command eng:set
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.470s) registering command eng:list
[ Dev Console ]
Gputer> G
A[TICK::app-info] (1.471s) refresh app stats
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.473s) registering command mysql-fsentry-service:get-queue-size-current
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.474s) registering command mysql-fsentry-service:get-queue-size-deferred
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.476s) services:event boot.consolidation
args: []
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.477s) registering command logs:show
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.477s) registering command logs:rec
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.478s) registering command logs:stop
[ Dev Console ]
Gputer> G
A[INFO::commands] (1.478s) registering command logs:indent
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.479s) services:event install.middlewares.context-aware
args: [
all values are hidden
]
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.480s) services:event install.context-initializers
args: []
[ Dev Console ]
Gputer> G
A[TICK::refresh_apps_cache] (1.484s) refresh associations cache
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.488s) services:event install.routes
args: [
all values are hidden
]
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.597s) services:event install.routes-gui
args: [
all values are hidden
]
[ Dev Console ]
Gputer> G
A[TICK::app-info] (1.603s) refresh app stat referrals
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.606s) services:event boot.activation
args: []
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.607s) services:event start.webserver
args: []
[ Dev Console ]
Gputer> G
A[INFO::init] (1.611s) services ready
[ Dev Console ]
Gputer> G
A[SYSTEM::init] (1.612s) server ready
deployment_type: undefined
[ Dev Console ]
Gputer> G
ACONFIGURATION MUTATED AT RUNTIME http_port to auto
[ Dev Console ]
Gputer> G
A[INFO::web-server] (1.614s) trying port: 4100
[ Dev Console ]
Gputer> G
A[INFO::app-info] (1.622s) DONE refresh app stat referrals
[ Dev Console ]
Gputer> G
ACONFIGURATION MUTATED AT RUNTIME http_port to 4100
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.680s) services:event install.websockets
args: [
{
"server": {
"requestTimeout": 7200000,
"headersTimeout": 7200000,
"keepAliveTimeout": 5000,
"connectionsCheckingInterval": 30000,
"requireHostHeader": true,
"rejectNonStandardBodyWrites": false,
"_events": {
"listening": [
null,
null,
]
},
"_eventsCount": 6,
"_connections": 0,
"_handle": {
"reading": false
},
"_usingWorkers": false,
"_workers": [],
"_unref": false,
"_listeningId": 1,
"allowHalfOpen": true,
"pauseOnConnect": false,
"noDelay": true,
"keepAlive": false,
"keepAliveInitialDelay": 0,
"highWaterMark": 16384,
"httpAllowHalfOpen": false,
"timeout": 7200000,
"maxHeadersCount": null,
"maxRequestsPerSocket": 0,
"_connectionKey": "6::::4100"
}
}
]
[ Dev Console ]
Gputer> G
A[NOTICE_ME::broadcast] (1.683s) {}
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (1.685s) services:event ready.webserver
args: []
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (1.687s) Starting puter.js:webpack-watch in /opt/puter/app/src/puter-js
[ Dev Console ]
Gputer> G
Acommand npm run start-webpack
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (1.692s) Starting terminal:rollup-watch in /opt/puter/app/src/terminal
[ Dev Console ]
Gputer> G
Acommand npx rollup -c rollup.config.js --watch
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (1.696s) Starting phoenix:rollup-watch in /opt/puter/app/src/phoenix
[ Dev Console ]
Gputer> G
Acommand npx rollup -c rollup.config.js --watch
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (1.701s) Starting git:rollup-watch in /opt/puter/app/src/git
[ Dev Console ]
Gputer> G
Acommand npx rollup -c rollup.config.js --watch
[ Dev Console ]
Gputer> G
A[INFO::permission] (1.710s) checking permission driver:puter-kvstore:get for actor user:4f3e0d5b-736e-4989-b471-5d663a0d59b2
actor: "user:4f3e0d5b-736e-4989-b471-5d663a0d59b2"
permission: "driver:puter-kvstore:get"
[ Dev Console ]
Gputer> G
A[INFO::operation-trace] (1.716s) FRAME START public-db-kvstore:get (0) {}
[ Dev Console ]
Gputer> G
A[INFO::frame:486f6e67-97d8-4c80-aabd-89ee54738a3a] (1.718s) FRAME STATUS working
tags: []
[ Dev Console ]
Gputer> G
ATHIS WAS CALLED { key: 'tmp_password' }
[ Dev Console ]
Gputer> G
A[INFO::frame:486f6e67-97d8-4c80-aabd-89ee54738a3a] (1.720s) FRAME STATUS done
tags: []
[ Dev Console ]
Gputer> G
A[INFO::permission] (1.727s) checking permission driver:puter-kvstore:set for actor user:4f3e0d5b-736e-4989-b471-5d663a0d59b2
actor: "user:4f3e0d5b-736e-4989-b471-5d663a0d59b2"
permission: "driver:puter-kvstore:set"
[ Dev Console ]
Gputer> G
A[INFO::operation-trace] (1.729s) FRAME START public-db-kvstore:set (0) {}
[ Dev Console ]
Gputer> G
A[INFO::frame:cc4ac5dd-ad2d-4644-9637-2740c5028c6d] (1.730s) FRAME STATUS working
tags: []
[ Dev Console ]
Gputer> G
ATHIS WAS CALLED (SET) { key: 'tmp_password', value: 'eec69ebb' }
[ Dev Console ]
Gputer> G
A[INFO::frame:cc4ac5dd-ad2d-4644-9637-2740c5028c6d] (1.734s) FRAME STATUS done
tags: []
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.327s) [puter.js:webpack-watch:1]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.328s) [puter.js:webpack-watch:1] > @heyputer/[email protected] start-webpack
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.328s) [puter.js:webpack-watch:1] > webpack ./src/index.js --output-filename puter.js && webpack ./src/index.js --output-filename puter.dev.js --watch --devtool source-map
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.329s) [puter.js:webpack-watch:1]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.765s) [git:rollup-watch:2] rollup v3.29.4
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.767s) [git:rollup-watch:2] bundles src/main.js → dist/bundle.js...
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.768s) [phoenix:rollup-watch:2] rollup v3.29.4
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.768s) [phoenix:rollup-watch:2] bundles src/main_puter.js → dist/bundle.js...
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.769s) [terminal:rollup-watch:2] rollup v3.29.4
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (2.770s) [terminal:rollup-watch:2] bundles src/main.js → dist/bundle.js...
[ Dev Console ]
Gputer> G
A[ Dev Console ]
Gputer> G
A[INFO::permission] (3.768s) checking permission driver:puter-kvstore:get for actor user:4f3e0d5b-736e-4989-b471-5d663a0d59b2
actor: "user:4f3e0d5b-736e-4989-b471-5d663a0d59b2"
permission: "driver:puter-kvstore:get"
[ Dev Console ]
Gputer> G
A[INFO::operation-trace] (3.771s) FRAME START public-db-kvstore:get (0) {}
[ Dev Console ]
Gputer> G
A[INFO::frame:d7390038-0bc9-4127-bfcd-0c0b1e8b4115] (3.772s) FRAME STATUS working
tags: []
[ Dev Console ]
Gputer> G
ATHIS WAS CALLED { key: 'tmp_password' }
[ Dev Console ]
Gputer> G
A[INFO::frame:d7390038-0bc9-4127-bfcd-0c0b1e8b4115] (3.777s) FRAME STATUS done
tags: []
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.546s) [terminal:rollup-watch:2] [!] (plugin copy) Error: EACCES: permission denied, mkdir '/opt/puter/app/src/terminal/dist'
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.547s) [terminal:rollup-watch:2] Error: EACCES: permission denied, mkdir '/opt/puter/app/src/terminal/dist'
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.548s) [terminal:rollup-watch:2]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.550s) [terminal:rollup-watch:2]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.811s) [phoenix:rollup-watch:2] [!] (plugin copy) Error: EACCES: permission denied, mkdir '/opt/puter/app/src/phoenix/dist'
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.813s) [phoenix:rollup-watch:2] Error: EACCES: permission denied, mkdir '/opt/puter/app/src/phoenix/dist'
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.814s) [phoenix:rollup-watch:2]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (4.816s) [phoenix:rollup-watch:2]
[ Dev Console ]
Gputer> G
A[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (5.767s) [git:rollup-watch:2] (!) Circular dependency
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (5.769s) [git:rollup-watch:2] src/subcommands/__exports__.js -> src/subcommands/help.js -> src/subcommands/__exports__.js
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (5.770s) [git:rollup-watch:2] [!] (plugin copy) Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist'
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (5.771s) [git:rollup-watch:2] Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist'
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (5.771s) [git:rollup-watch:2]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (5.772s) [git:rollup-watch:2]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.355s) [puter.js:webpack-watch:2] [webpack-cli] [Error: EACCES: permission denied, mkdir '/opt/puter/app/src/puter-js/dist'] {
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.357s) [puter.js:webpack-watch:2] errno: -13,
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.358s) [puter.js:webpack-watch:2] code: 'EACCES',
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.358s) [puter.js:webpack-watch:2] syscall: 'mkdir',
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.359s) [puter.js:webpack-watch:2] path: '/opt/puter/app/src/puter-js/dist'
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.361s) [puter.js:webpack-watch:2] }
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.373s) [puter.js:webpack-watch:2] npm ERR! Lifecycle script `start-webpack` failed with error:
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.375s) [puter.js:webpack-watch:2] npm ERR! Error: command failed
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.378s) [puter.js:webpack-watch:2] npm ERR! in workspace: @heyputer/[email protected]
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.379s) [puter.js:webpack-watch:2] npm ERR! at location: /opt/puter/app/src/puter-js
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.380s) [puter.js:webpack-watch:2] npm notice
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.381s) [puter.js:webpack-watch:2] npm notice New minor version of npm available! 10.5.0 -> 10.9.1
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.383s) [puter.js:webpack-watch:2] npm notice Changelog: <[https://github.com/npm/cli/releases/tag/v10.9.1>](https://github.com/npm/cli/releases/tag/v10.9.1%3E)
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.384s) [puter.js:webpack-watch:2] npm notice Run `npm install -g [email protected]` to update!
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.385s) [puter.js:webpack-watch:2] npm notice
[ Dev Console ]
Gputer> G
A[INFO::__dev-watcher] (6.392s) [puter.js:webpack-watch:exit] Process exited (1)
[ Dev Console ]
Gputer> G
A[NOTICE_ME::services-container] (6.708s) services:event boot.ready
args: []
Bumping this again for review, appreciate it.
The above errors are related to SQLLite and package dependant, I can not help with that.
Okay, i was able to get past that error, and now after setting it to reverse proxy, I see a simple blue screen. The only error left in my log is:
[INFO::__dev-watcher] (5.213s) [git:rollup-watch:2] (!) Circular dependency
[INFO::__dev-watcher] (5.216s) [git:rollup-watch:2] src/subcommands/exports.js -> src/subcommands/help.js -> src/subcommands/exports.js
[INFO::__dev-watcher] (5.217s) [git:rollup-watch:2] [!] (plugin copy) Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist'
[INFO::__dev-watcher] (5.218s) [git:rollup-watch:2] Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist'
[INFO::__dev-watcher] (5.219s) [git:rollup-watch:2]
[INFO::__dev-watcher] (5.220s) [git:rollup-watch:2]
It's not creating the server data due to this:
INFO::__dev-watcher] (5.217s) [git:rollup-watch:2] [!] (plugin copy) Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist' [INFO::__dev-watcher] (5.218s) [git:rollup-watch:2] Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist'
Map /opt/ to the appdata_folder/opt/
On Wed, Dec 11, 2024, 4:04 PM mihcox @.***> wrote:
Okay, i was able to get past that error, and now after setting it to reverse proxy, I see a simple blue screen. The only error left in my log is:
[INFO::__dev-watcher] (5.213s) [git:rollup-watch:2] (!) Circular dependency [INFO::__dev-watcher] (5.216s) [git:rollup-watch:2] src/subcommands/ exports.js -> src/subcommands/help.js -> src/subcommands/exports.js [INFO::__dev-watcher] (5.217s) [git:rollup-watch:2] [!] (plugin copy) Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist' [INFO::__dev-watcher] (5.218s) [git:rollup-watch:2] Error: EACCES: permission denied, mkdir '/opt/puter/app/src/git/dist' [INFO::__dev-watcher] (5.219s) [git:rollup-watch:2] [INFO::__dev-watcher] (5.220s) [git:rollup-watch:2]
— Reply to this email directly, view it on GitHub https://github.com/HeyPuter/puter/issues/645#issuecomment-2537173141, or unsubscribe https://github.com/notifications/unsubscribe-auth/APUFLHKKWKLMHVYMIIHJZK32FCSD7AVCNFSM6AAAAABLXT4FNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZXGE3TGMJUGE . You are receiving this because you commented.Message ID: @.***>
i have done that, and the opt folder now generates a /opt/app folder, but it is not able to write into it?
It appears that the dir is not permissioned for the correct UID/PID
On Wed, Dec 11, 2024, 4:50 PM mihcox @.***> wrote:
i have done that, and the opt folder now generates a /opt/app folder, but it is not able to write into it?
image.png (view on web) https://github.com/user-attachments/assets/fa008d7f-b5f6-46b2-b80d-548bff56fd45
image.png (view on web) https://github.com/user-attachments/assets/631e7541-997b-4e99-a76f-6824495a864b
image.png (view on web) https://github.com/user-attachments/assets/a2532b45-51f0-4851-9dbb-a1ee1745a094
image.png (view on web) https://github.com/user-attachments/assets/0c591d01-d685-4d01-9e83-b4a1af6a8693
— Reply to this email directly, view it on GitHub https://github.com/HeyPuter/puter/issues/645#issuecomment-2537266555, or unsubscribe https://github.com/notifications/unsubscribe-auth/APUFLHLHBIEKZMHDQNATDKT2FCXR3AVCNFSM6AAAAABLXT4FNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZXGI3DMNJVGU . You are receiving this because you commented.Message ID: @.***>
Also, just noticed, container path should be /opt
Not /opt/
My mistake.
On Wed, Dec 11, 2024, 5:48 PM Simon Lively @.***> wrote:
It appears that the dir is not permissioned for the correct UID/PID
On Wed, Dec 11, 2024, 4:50 PM mihcox @.***> wrote:
i have done that, and the opt folder now generates a /opt/app folder, but it is not able to write into it?
image.png (view on web) https://github.com/user-attachments/assets/fa008d7f-b5f6-46b2-b80d-548bff56fd45
image.png (view on web) https://github.com/user-attachments/assets/631e7541-997b-4e99-a76f-6824495a864b
image.png (view on web) https://github.com/user-attachments/assets/a2532b45-51f0-4851-9dbb-a1ee1745a094
image.png (view on web) https://github.com/user-attachments/assets/0c591d01-d685-4d01-9e83-b4a1af6a8693
— Reply to this email directly, view it on GitHub https://github.com/HeyPuter/puter/issues/645#issuecomment-2537266555, or unsubscribe https://github.com/notifications/unsubscribe-auth/APUFLHLHBIEKZMHDQNATDKT2FCXR3AVCNFSM6AAAAABLXT4FNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZXGI3DMNJVGU . You are receiving this because you commented.Message ID: @.***>
Container path updated:
Should the folder structure not be setup for nobody users like the rest of the folders/files in /data and /config?