Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker compose does not start - Guacamole connection closed during handshake #56

Open
nkgiovannivl opened this issue May 25, 2023 · 23 comments

Comments

@nkgiovannivl
Copy link

nkgiovannivl commented May 25, 2023

Describe the bug
At first setup of docker compose logs shows error related to Guacamole connection closed during handshake

To Reproduce
Below docker compose:

version: "3"
services:
  obsidian:
    image: 'ghcr.io/sytone/obsidian-remote:latest'
    container_name: obsidian-remote
    restart: always
    ports:
      - 8080:8080
      - 8443:8443
    volumes:
      - obsidian_vaults:/vaults
      - obsidian_config:/config
    environment:
      - PUID=0
      - PGID=0
      - TZ=America/Bogota
      - DOCKER_MODS=linuxserver/mods:universal-git
      - CUSTOM_PORT="8080"
      - CUSTOM_HTTPS_PORT="8443" 
      - CUSTOM_USER=""
      - PASSWORD=""
      - SUBFOLDER=""
    networks:
      macvlan-favernet:
        ipv4_address: 192.168.1.37      
      
networks:
  macvlan-favernet:
    external: true
    name: macvlan-favernet
    
volumes:
  obsidian_vaults:
    external: true
  obsidian_config:
    external: true

Log info from docker:

guacd[1104]: INFO:	Guacamole proxy daemon (guacd) version 1.1.0 started
guacd[1104]: INFO:	Listening on host 0.0.0.0, port 4822
guacd[1104]: INFO:	Guacamole connection closed during handshake
Starting guacamole-lite websocket server
Starting guacamole-lite websocket server
events.js:377
      throw er; // Unhandled 'error' event
      ^
Error: listen EACCES: permission denied "8080"
    at Server.setupListenHandle [as _listen2] (net.js:1314:21)
    at listenInCluster (net.js:1379:12)
    at Server.listen (net.js:1476:5)
    at Object.<anonymous> (/gclient/app.js:217:6)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
    at internal/main/run_main_module.js:17:47
Emitted 'error' event on WebSocketServer instance at:
    at Server.WebSocketServer._onServerError (/gclient/node_modules/ws/lib/WebSocketServer.js:82:50)
    at Server.emit (events.js:400:28)
    at emitErrorNT (net.js:1358:8)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'EACCES',
  errno: -13,
  syscall: 'listen',
  address: '"8080"',
  port: -1
}
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
starting sesman in foreground...
Global configuration:
    ListenAddress:            127.0.0.1
    ListenPort:               3350
    EnableUserWindowManager:  1
    UserWindowManager:        startwm.sh
    DefaultWindowManager:     /etc/xrdp/startwm.sh
    ReconnectScript:          /etc/xrdp/reconnectwm.sh
    AuthFilePath:             disabled
Session configuration:
    MaxSessions:              50
    X11DisplayOffset:         10
    KillDisconnected:         0
    IdleTimeLimit:            0
    DisconnectedTimeLimit:    0
    Policy:                   0
Security configuration:
    AllowRootLogin:           1
    MaxLoginRetry:            4
    AlwaysGroupCheck:         0
    RestrictOutboundClipboard: 0
    TSUsersGroup:             (not defined)
    TSAdminsGroup:            (not defined)
Xorg parameters:
    Parameter 00              /usr/lib/xorg/Xorg
    Parameter 01              -config
    Parameter 02              xrdp/xorg.conf
    Parameter 03              -noreset
    Parameter 04              -nolisten
    Parameter 05              tcp
    Parameter 06              -logfile
    Parameter 07              .xorgxrdp.%s.log
Xvnc parameters:
    Parameter 00              Xvnc
    Parameter 01              -bs
    Parameter 02              -nolisten
    Parameter 03              tcp
    Parameter 04              -localhost
    Parameter 05              -dpi
    Parameter 06              96
SessionVariables parameters:
    Parameter 00              PULSE_SCRIPT=/etc/xrdp/pulse/default.pa
[20230525-04:33:54] [DEBUG] libscp initialized
[20230525-04:33:54] [INFO ] starting xrdp-sesman with pid 1094
[20230525-04:33:54] [INFO ] listening to port 3350 on 127.0.0.1
[20230525-04:33:55] [INFO ] A connection received from ::ffff:127.0.0.1 port 59356
[20230525-04:33:55] [WARN ] libscp network error.
[20230525-04:33:55] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:55] [INFO ] A connection received from ::ffff:127.0.0.1 port 59366
[20230525-04:33:55] [WARN ] libscp network error.
[20230525-04:33:55] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:56] [INFO ] A connection received from ::ffff:127.0.0.1 port 59378
[20230525-04:33:56] [WARN ] libscp network error.
[20230525-04:33:56] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:56] [INFO ] A connection received from ::ffff:127.0.0.1 port 59382
[20230525-04:33:56] [WARN ] libscp network error.
[20230525-04:33:56] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:57] [INFO ] A connection received from ::ffff:127.0.0.1 port 59394
[20230525-04:33:57] [WARN ] libscp network error.
[20230525-04:33:57] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:57] [INFO ] A connection received from ::ffff:127.0.0.1 port 59400
[20230525-04:33:57] [WARN ] libscp network error.
[20230525-04:33:57] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:58] [INFO ] A connection received from ::ffff:127.0.0.1 port 59408
[20230525-04:33:58] [WARN ] libscp network error.
[20230525-04:33:58] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:58] [INFO ] A connection received from ::ffff:127.0.0.1 port 59420
[20230525-04:33:58] [WARN ] libscp network error.
[20230525-04:33:58] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:59] [INFO ] A connection received from ::ffff:127.0.0.1 port 59424
[20230525-04:33:59] [WARN ] libscp network error.
[20230525-04:33:59] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:33:59] [INFO ] A connection received from ::ffff:127.0.0.1 port 59438
[20230525-04:33:59] [WARN ] libscp network error.
[20230525-04:33:59] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20230525-04:34:00] [INFO ] A connection received from ::ffff:127.0.0.1 port 59442
[20230525-04:34:00] [WARN ] libscp network error.
[20230525-04:34:00] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake
guacd[1104]: INFO:	Guacamole connection closed during handshake

Expected behavior
Start normally

Screenshots
N/A

Desktop (please complete the following information):

N/A

Smartphone (please complete the following information):

N/A

Additional context
Add any other context about the problem here.

@stefwill
Copy link

stefwill commented Jun 1, 2023

I'm having the same issue.

@gitwittidbit
Copy link

Same here. Any solution for this available yet?

@bau-tech
Copy link

Having the same problem. Will there be fix for this in the near future?

@sytone
Copy link
Owner

sytone commented Jun 18, 2023

Ill try this config later this week to see if I can reproduce.

@gab-luz
Copy link

gab-luz commented Jun 24, 2023

I second that. Same problem for me. I hope somebody else fix it. I've tried using UFW to allow ports. Nothing seems to work.

@gab-luz
Copy link

gab-luz commented Jun 24, 2023

Using the following docker-compose.yml worked for me. Obsidian-remote now works, but I don't like how it works. It basically uses Guacamole as VNC server/viewer. It doesn't fit the whole browser window if you click on it.

Docker-compose.yml config I found (you can modify it according to your own taste):
version: "3.9"
services:
obsidian:
image: ghcr.io/sytone/obsidian-remote:latest
container_name: Obsidian-Remote
hostname: obsidian-remote
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
healthcheck:
test: curl -f http://localhost:8080/ || exit 1
ports:
- 4501:8080
- 27123:27123
- 27124:27124
- 8446:8443
volumes:
- /volume1/docker/obsidian/vaults:/vaults:rw
- /volume1/docker/obsidian/config:/config:rw
environment:
PUID: 1000
PGID: 1000
TZ: America/Sao_Paulo
DOCKER_MODS: linuxserver/mods:universal-git
restart: on-failure:5

@witnes0417
Copy link

same problem here, use shell interact with the container find that the server failed starting.

@drewbitt
Copy link

drewbitt commented Jul 6, 2023

ghcr.io/sytone/obsidian-remote:latest is outdated with the last release of it 9 months ago. Changes to the base image and some fixes have went out since - @sytone can we get an update to the Docker tag to better help you debug this on the current codebase?

@Woynert
Copy link

Woynert commented Jul 28, 2023

I solved it by removing the "" from the port, like so

- CUSTOM_PORT=8080
- CUSTOM_HTTPS_PORT=8443

@arguemore
Copy link

I solved it by removing the "" from the port, like so

- CUSTOM_PORT=8080
- CUSTOM_HTTPS_PORT=8443

Hi there! I tried doing what you did but mine just said websocat: invalid port number. I'm doing the installation through Codesandbox for context.

@gustavbnm
Copy link

Hi there! I tried doing what you did but mine just said websocat: invalid port number. I'm doing the installation through Codesandbox for context.

I'm getting the same message and when loading the page in a browser I also get Cannot GET /.
This is the state of my docker-compose.

services:
  obsidian:
    image: 'ghcr.io/sytone/obsidian-remote:latest'
    container_name: obsidian-remote
    restart: unless-stopped
    ports:
      - 8081:8081
      - 8443:8443
    volumes:
      - /home/obsidian/vaults:/vaults
      - /home/obsidian/config:/config
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Stockholm
      - DOCKER_MODS=linuxserver/mods:universal-git
      - CUSTOM_PORT=8081
      - CUSTOM_HTTPS_PORT=8443
      - CUSTOM_USER=""
      - PASSWORD=""
      - SUBFOLDER=""
      ```

@tosmaniac
Copy link

Hi Guys,

By doing a bit of a mix of the two docker compose that are in this thread here is one that works:

  obsidian:
    image: 'ghcr.io/sytone/obsidian-remote:latest'
    container_name: obsidian-remote
    restart: unless-stopped
    hostname: obsidian-remote
    mem_limit: 2g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: curl -f http://localhost:8080/ || exit 1
    ports:
      - 8080:8080
      - 8443:8443
    volumes:
      - /home/tosmaniac/docker/obsidian/vaults:/vaults
      - /home/tosmaniac/docker/obsidian/config:/config
    environment:
      - PUID=1000
      - PGID=100
      - TZ=European/Berlin
      - DOCKER_MODS=linuxserver/mods:universal-git
#      - CUSTOM_PORT="8080"
#      - CUSTOM_HTTPS_PORT="8443" 
#      - CUSTOM_USER=""
#      - PASSWORD=""
#      - SUBFOLDER=""```

Latest version of obsidian gets installed.

Thank you all.

Florent

@fetwar
Copy link

fetwar commented Nov 21, 2023

It seems like guacd closing the connection during the handshake with guacamole-lite (I think it runs both? unsure to be honest, I've never used guacamole before) because of some improperly mapped configuration files. They exist in the image, but I think unpinned versions caused it to break after initial release.

Looking into the container with docker compose exec -it obsidian-remote /bin/bash I can see that guaclog outputs the following:

root@obsidian-remote:/# guaclog
guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
guaclog: INFO: No input files specified. Nothing to do.

I also noticed that the user and group within the container is abc:abc, potentially incorrect user mapping is to blame.


I stopped at the point where I'd have to clone the repo and build the image from the Dockerfile as I am running out of time to fiddle with it today, if anyone gets it working definitely let me know.

p.s. the docker compose config from @tosmaniac modified to have the commented fields uncommented and port numbers unquoted was the closest I managed to get, only outputting this error instead of the longer ones above.

obsidian-remote  | guacd[208]: INFO:	Guacamole proxy daemon (guacd) version 1.1.0 started
obsidian-remote  | guacd[208]: INFO:	Listening on host 0.0.0.0, port 4822
obsidian-remote  | Starting guacamole-lite websocket server
obsidian-remote  | listening on *:8080
obsidian-remote  | guacd[208]: INFO:	Guacamole connection closed during handshake
obsidian-remote  | [guac-init] Auto start set, starting application
obsidian-remote  | websocat: invalid port number

@JacobTheEldest
Copy link

I had the websocat: invalid port number, but got it working. I don't understand the fix, but I started removing arguments to get to basic config until I got it working.
Key adjustment steps as I progressed:

  • Remove quotes around port number env variables
  • Remove the SUBFOLDER env variable. An empty string causes problems
  • The last thing I changed that fixed the websocat error was to remove CUSTOM-USER AND PASSWORD env variables. I just switched to auth through my reverse proxy, instead. Here's my final docker-compose:
  obsidian:
    container_name: obsidian
    image: 'ghcr.io/sytone/obsidian-remote:latest'
    restart: unless-stopped
    ports:
      - 8080:8080
    volumes:
      - ./obsidian/vaults:/vaults
      - ./obsidian/config:/config
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
      - DOCKER_MODS=linuxserver/mods:universal-git

@shmolf
Copy link

shmolf commented Jan 1, 2024

I ended up having to do a number things, which leads me to believe there's not one issue, but several small issues.

Here's my docker-compose.yml

Note: I opted to build using the local Dockerfile since its more up-to-date.
Also, I copied some of this from a prior post.

services:
  obsidian:
    # image: 'ghcr.io/sytone/obsidian-remote:latest'
    build:
      context: ./
      dockerfile: Dockerfile
    container_name: obsidian-remote
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: curl -f http://localhost:7436/ || exit 1
    ports:
      - 7436:8080 # I'm using a different host port to avoid collision
      - 7496:8443 # I'm using a different host port to avoid collision
      - 27123:27123
      - 27124:27124
    volumes:
      - ./my-vaults:/vaults
      - ./my-config:/config
    environment:
      - PUID=1000 # this matches my user when I run `id $USER`
      - PGID=1000 # this matches my user when I run `id $USER`
      - TZ=America/New_York
      - DOCKER_MODS=linuxserver/mods:universal-git
      - CUSTOM_PORT=8080
      - CUSTOM_HTTPS_PORT=8443
      - CUSTOM_USER=yourUser
      - PASSWORD=yourPassword
      # - SUBFOLDER=""

This gave me a little bit of progress, but I couldn't yet open Obsidian successfully. I got some sort of error like /squashfs-root/obsidian is not a directory.
To fix this issue, I modified some of the files that were created within the config directory. (mine is setup to the my-config folder)

Updates to menu.xml

my-config/.config/openbox/menu.xml

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu xmlns="http://openbox.org/3.4/menu">
    <menu id="root-menu" label="MENU">
-      <item label="Obsidian" icon="/squashfs-root/usr/share/icons/hicolor/48x48/apps/obsidian.png">
+       <item label="Obsidian" icon="/usr/share/icons/hicolor/48x48/apps/obsidian.png">
            <action name="Execute">
-               <command>/squashfs-root/obsidian --no-sandbox --disable-dev-shm-usage --disable-gpu --disable-software-rasterizer</command>
+               <command>obsidian --no-sandbox --disable-dev-shm-usage --disable-gpu --disable-software-rasterizer</command>
            </action>
        </item>
        <item label="xterm" icon="/usr/share/pixmaps/xterm-color_48x48.xpm">
            <action name="Execute">
                <command>/usr/bin/xterm</command>
            </action>
        </item>
        <item label="Reload OB">
            <action name="Reconfigure" />
        </item>
    </menu>
</openbox_menu>
Changes to autostart

my-config/.config/openbox/autostart

- /squashfs-root/obsidian --no-sandbox --disable-dev-shm-usage --disable-gpu --disable-software-rasterizer
+ obsidian --no-sandbox --disable-dev-shm-usage --disable-gpu --disable-software-rasterizer

The last change is not required, but something I did just to improve my QoL (Qualify of Life).

Changes to Dockerfile
  ...
- ARG OBSIDIAN_VERSION=1.4.16
+ ARG OBSIDIAN_VERSION=1.5.3
  ...

@sytone
Copy link
Owner

sytone commented Jan 18, 2024

Is this on AMD or ARM?

@huenfd
Copy link

huenfd commented Feb 6, 2024

  obsidian:
    image: 'ghcr.io/sytone/obsidian-remote:latest'
    container_name: obsidian-remote
    restart: unless-stopped
    ports:
      - 6666:8080
      - 8663:8443
    volumes:
      - ${DATA}/obsidian/vaults:/vaults
      - ${DATA}/obsidian/config:/config
    environment:
      - PUID=1003
      - PGID=1003
      - TZ=${TZ}
      - DOCKER_MODS=linuxserver/mods:universal-git
      - CUSTOM_PORT=8080
      - CUSTOM_HTTPS_PORT=8443 
      - CUSTOM_USER=123
      - PASSWORD=123

with this config i got no websocat error, but in the logs i got this:


[2024-02-06 11:28:48] [Connection 1]  Closing connection with error:  Error: WS was inactive for too long
    at ClientConnection.checkActivity (/gclient/node_modules/guacamole-lite/lib/ClientConnection.js:154:24)
    at listOnTimeout (internal/timers.js:557:17)
[2024-02-06 11:28:48] [Connection 1]  Closing guacd connection
    at processTimers (internal/timers.js:500:7)
[2024-02-06 11:28:48] [Connection 1]  Client connection closed
guacd[1135]: ERROR:     User is not responding.
guacd[1135]: INFO:      User "@085c8313-50ce-4eb0-872a-05e831788aae" disconnected (0 users remain)
guacd[1135]: INFO:      Last user of connection "$9225c7a9-a824-415c-8041-03bcd513541e" disconnected
guacd[1135]: INFO:      Internal RDP client disconnected
guacd[1100]: INFO:      Connection "$9225c7a9-a824-415c-8041-03bcd513541e" removed.
rdpClientConRecv: g_sck_recv failed(returned 0)
rdpClientConRecvMsg: error
rdpClientConCheck: rdpClientConGotData failed
rdpClientConDisconnect:
rdpRemoveClientConFromDev: removing clientCon 0x5617e058a850

it doesnt matter if i use the last four lines with the costum ports, user and passwort, same result.

does anybody got it working?

@darkwolfgar
Copy link

  obsidian:
    image: 'ghcr.io/sytone/obsidian-remote:latest'
    container_name: obsidian-remote
    restart: unless-stopped
    ports:
      - 6666:8080
      - 8663:8443
    volumes:
      - ${DATA}/obsidian/vaults:/vaults
      - ${DATA}/obsidian/config:/config
    environment:
      - PUID=1003
      - PGID=1003
      - TZ=${TZ}
      - DOCKER_MODS=linuxserver/mods:universal-git
      - CUSTOM_PORT=8080
      - CUSTOM_HTTPS_PORT=8443 
      - CUSTOM_USER=123
      - PASSWORD=123

with this config i got no websocat error, but in the logs i got this:


[2024-02-06 11:28:48] [Connection 1]  Closing connection with error:  Error: WS was inactive for too long
    at ClientConnection.checkActivity (/gclient/node_modules/guacamole-lite/lib/ClientConnection.js:154:24)
    at listOnTimeout (internal/timers.js:557:17)
[2024-02-06 11:28:48] [Connection 1]  Closing guacd connection
    at processTimers (internal/timers.js:500:7)
[2024-02-06 11:28:48] [Connection 1]  Client connection closed
guacd[1135]: ERROR:     User is not responding.
guacd[1135]: INFO:      User "@085c8313-50ce-4eb0-872a-05e831788aae" disconnected (0 users remain)
guacd[1135]: INFO:      Last user of connection "$9225c7a9-a824-415c-8041-03bcd513541e" disconnected
guacd[1135]: INFO:      Internal RDP client disconnected
guacd[1100]: INFO:      Connection "$9225c7a9-a824-415c-8041-03bcd513541e" removed.
rdpClientConRecv: g_sck_recv failed(returned 0)
rdpClientConRecvMsg: error
rdpClientConCheck: rdpClientConGotData failed
rdpClientConDisconnect:
rdpRemoveClientConFromDev: removing clientCon 0x5617e058a850

it doesnt matter if i use the last four lines with the costum ports, user and passwort, same result.

does anybody got it working?

I'm having the same issue, Tried all suggested changes above but nothing is working for me.

@mpsparrow
Copy link

I was able to get it working by pulling this newer image not from ghcr.io

services:
  obsidian:
    image: sytone/obsidian-remote:latest
    container_name: obsidian
    hostname: obsidian
    restart: unless-stopped
    ports:
      - 8080:8080
      - 8443:8443
    volumes:
      - /obsidian/vaults:/vaults
      - /obsidian/config:/config
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Toronto
      - DOCKER_MODS=linuxserver/mods:universal-git```

@vmysak
Copy link

vmysak commented May 16, 2024

In 2024 images from ghcr.io are outdated. It is better to use images from dockerhub with latest Obsidian installations.

Preparation

Folders involved:
/home/user/Documents/obsidian - obsidian Vault named "obsidian" - folder for my local installation, with installed plugins, .obsidian dir, md files, excalidraw, etc
/home/user/Documents/obsidian-remote - some new empty folder - used as docker volume shared folder

Execute:

  1. mkdir -p /home/user/Documents/obsidian-remote/vaults
  2. cp -R /home/user/Documents/obsidian /home/user/Documents/obsidian-remote/vaults/obsidian - copy Vault named "obsidian" to docker volume shared folder

Attention:
PUID,PGID in the docker-compose
I had problems running container with my host machine user id&group (1000). I was forced to set these environment variables as root (0).
Please make attention to file permissions inside obsidian-remote host folder. It is better to sudo rm -r it and make a fresh copy of your local Vault folder

After docker-compose has been started, please open http://localhost:8082/ in your browser. If there is kind of black screen or empty desktop:

  1. right-click - select xterm
  2. cd /opt/obsidian
  3. ./obsidian --no-sandbox
  • in Obsidian you can open existing Vault Open - Computer, /vaults/obsidian
  • click "maximize" window button to maximize Obsidian

docker-compose.yml

version: '3.8'

services:

  obsidian:
    image: 'sytone/obsidian-remote:latest'
    container_name: obsidian-remote
    restart: unless-stopped
    hostname: obsidian-remote
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: curl -f http://localhost:8080/ || exit 1
    ports:
      - 8082:8080
      - 8445:8443
    volumes:
      - /home/user/Documents/obsidian-remote/vaults:/vaults
      - /home/user/Documents/obsidian-remote/config:/config
    environment:
      - PUID=0
      - PGID=0
      - TZ=European/Kyiv
      - DOCKER_MODS=linuxserver/mods:universal-git

@2ndwonder
Copy link

2ndwonder commented May 20, 2024

In 2024 images from ghcr.io are outdated. It is better to use images from dockerhub with latest Obsidian installations.

Preparation

Folders involved: /home/user/Documents/obsidian - obsidian Vault named "obsidian" - folder for my local installation, with installed plugins, .obsidian dir, md files, excalidraw, etc /home/user/Documents/obsidian-remote - some new empty folder - used as docker volume shared folder

Execute:

1. `mkdir -p /home/user/Documents/obsidian-remote/vaults`

2. `cp -R /home/user/Documents/obsidian /home/user/Documents/obsidian-remote/vaults/obsidian` - copy  Vault named "obsidian" to docker volume shared folder

Attention: PUID,PGID in the docker-compose I had problems running container with my host machine user id&group (1000). I was forced to set these environment variables as root (0). Please make attention to file permissions inside obsidian-remote host folder. It is better to sudo rm -r it and make a fresh copy of your local Vault folder

After docker-compose has been started, please open http://localhost:8082/ in your browser. If there is kind of black screen or empty desktop:

1. right-click - select xterm

2. `cd /opt/obsidian`

3. `./obsidian --no-sandbox`


* in Obsidian you can open existing Vault `Open - Computer`, `/vaults/obsidian`

* click "maximize" window button to maximize Obsidian

docker-compose.yml

version: '3.8'

services:

  obsidian:
    image: 'sytone/obsidian-remote:latest'
    container_name: obsidian-remote
    restart: unless-stopped
    hostname: obsidian-remote
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: curl -f http://localhost:8080/ || exit 1
    ports:
      - 8082:8080
      - 8445:8443
    volumes:
      - /home/user/Documents/obsidian-remote/vaults:/vaults
      - /home/user/Documents/obsidian-remote/config:/config
    environment:
      - PUID=0
      - PGID=0
      - TZ=European/Kyiv
      - DOCKER_MODS=linuxserver/mods:universal-git

The following below does not work for me when I have a black screen. The directory does not exist.

After docker-compose has been started, please open http://localhost:8082/ in your browser. If there is kind of black screen or empty desktop:

right-click - select xterm
cd /opt/obsidian
./obsidian --no-sandbox

@wroughtsteel
Copy link

@2ndwonder This is why you need root privileges. Otherwise you cannot access the system files /opt/obsidian

@ghostersk
Copy link

ghostersk commented Jun 30, 2024

First, I am using the one from linuxserver.io, as this project did not seem to work for me, ( white window)

In portainer terminal it was giving error it cannot open the /squashfs-root/obsidian, ofcourse not as there is no folder like that in root of the container.
Further checking where the obsidian is on system from the remote terminal which obsidian it is in the /usr/bin/obsidian
checking further, there is script to start obsidian, for some reason using the squashfs-root folder, so i just change it to correct location and it works...

nano /config/.config/openbox/autostart
# Comment out the original line and put the good path bellow
#/squashfs-root/obsidian --no-sandbox --disable-dev-shm-usage --disable-gpu --disable-software-rasterizer
/usr/bin/obsidian --no-sandbox --disable-dev-shm-usage --disable-gpu --disable-software-rasterizer

the config folder should be somewhere on your system, as it is maped via docker-compose (in my case)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests