Ok so the solution was this. Thank you @mouse@midwest.social

cd /home

git clone https://github.com/mdshack/shotshare

cd .../Files/

sudo mkdir Shotshare

cd .../Files/Shotshare

sudo mkdir shotshare_data

sudo touch .env database.sqlite

cp -r /home/shotshare/storage/* .../Files/Shotshare/shotshare_data

chown 82:82 -R .../Files/Shotshare/

version: "3.3"
services:
  shotshare:
    ports:
      - 2000:80
    environment:
      - HOST=:80
      - ALLOW_REGISTRATION=false
    volumes:
      - .../Files/Shotshare/shotshare_data:/app/storage
      - .../Files/Shotshare/database.sqlite:/app/database/database.sqlite
      - .../Files/Shotshare/.env:/app/.env
    restart: unless-stopped
    container_name: shotshare
    image: mdshack/shotshare:latest
networks: {}

Hello everyone.

I am deeply struggling to install shotshare on my server using docker-compose.

I followed the instructions and I’ve been talking with someone (from their team I guess) for 2 weeks without finding a solution.

Does anyone have a working docker-compose to share so I can compare it and understand ?

  • A Mouse@midwest.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    10 months ago

    This appears to be the exact same problem as https://github.com/mdshack/shotshare/issues/31

    For testing I just spun up a VM with Docker, I tried the same compose file as you. I found I had to use the volume instead of a bind mount for /app/storage.

    This compose file should work.

    version: "3.3"
    services:
      shotshare:
        ports:
          - 2000:80
        environment:
          - HOST=:80
          - ALLOW_REGISTRATION=false
        volumes:
          - shotshare_data:/app/storage
          - /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Shotshare/database.sqlite:/app/database/database.sqlite
          - /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Shotshare/.env:/app/.env
        restart: unless-stopped
        container_name: shotshare
        image: mdshack/shotshare:latest
    volumes:
        shotshare_data:
    networks: {}
    
    • Tiritibambix@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 months ago

      Oh wow, thanks for trying this. It is working indeed.

      I am an absolute begginer so let me ask. Where is shotshare_data on my machine ? Is it in docker volumes ( like /var/lib/docker/volumes/) ? Is there a way I can store data in /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Shotshare/ ?

      • A Mouse@midwest.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        10 months ago

        I just did another test.

        You should be able to create the directories manually. I cheated by simply cloning the repo and copying them to the bind mount location like so. You can use the bind mount method like you wanted.

        git clone https://github.com/mdshack/shotshare
        cp -r shotshare/storage/* /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Shotshare/shotshare_data/
        chown 82:82 -R /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Shotshare/shotshare_data
        
        • N0x0n@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          9 months ago

          Ugh permission issues…

          I have no idea how the shotshare image works, but an easier method is to specify the puid/pgid in the docker-compose:

          environment:
            - PUID=82
            - PGID=82
          

          If the docker image supports it, the --user flag is also helpful :).

          I know those works with volume mounts, no idea about bind mounts.

      • A Mouse@midwest.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        10 months ago

        It will be stored in /var/lib/docker/volumes, you can find the exact location by inspecting the volume. Use docker volume ls to list the volumes, and do docker volume inspect <volume_name> replacing <volume_name> with the one from the list. Look for “Mountpoint”, that is the exact location. You could try copying that to bind mount location, though I can’t be sure if it will continue to work.