this post was submitted on 22 Jan 2024
10 points (85.7% liked)

Selfhosted

38831 readers
186 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

Ok so the solution was this. Thank you @[email protected]

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 ?

top 12 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 7 months ago (1 children)
[–] [email protected] 1 points 7 months ago (1 children)

I struggled a lot with ports.

I still didn't get how ports are configured in the container, but a user tried to help me and now I get an error 500

Here's my compose (path is OMV path)

version: "3.3"
services:
  shotshare:
    ports:
      - 2000:2000
    environment:
      - HOST=:2000
      - ALLOW_REGISTRATION=false
    volumes:
      - /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Shotshare/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
networks: {}

image

ERR | ts=1705936180.7673454 logger=http.log.access msg=handled request request={"remote_ip":"192.168.1.106","remote_port":"57659","client_ip":"192.168.1.106","proto":"HTTP/1.1","method":"GET","host":"192.168.1.104:2000","uri":"/","headers":{"Dnt":["1"],"Sec-Gpc":["1"],"Connection":["keep-alive"],"Upgrade-Insecure-Requests":["1"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate"],"Cookie":[]}} bytes_read=0 user_id= duration=0.168065318 size=651 status=500 resp_headers={"Status":["500 Internal Server Error"],"X-Powered-By":["PHP/8.3.1"],"Cache-Control":["no-cache, private"],"Content-Encoding":["gzip"],"Vary":["Accept-Encoding"],"Server":["Caddy"],"Date":["Mon, 22 Jan 2024 15:09:40 GMT"],"Content-Type":["text/html; charset=UTF-8"]} 

I can't wrap my head around this

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago) (1 children)

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: {}
[–] [email protected] 1 points 7 months ago (2 children)

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/ ?

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago) (2 children)

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
[–] [email protected] 2 points 7 months ago* (last edited 7 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.

[–] [email protected] 1 points 7 months ago (1 children)

Oh that's great.

So do I need to keep this ?

volumes:
    shotshare_data:
[–] [email protected] 2 points 7 months ago (1 children)

No, since you are using the bind mount, you do not need to use the volume.

[–] [email protected] 2 points 7 months ago (1 children)
[–] [email protected] 2 points 7 months ago

You're welcome! Also thanks for asking this question, I hadn't seen ShotShare before, it looks useful.

[–] [email protected] 2 points 7 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.

[–] [email protected] 1 points 7 months ago

To give more information:

I'm a portainer user and wanted to try shotshare as is looks exactly like what I need :)

I followed these steps: sudo mkdir Shotshare and cd into this directory sudo touch .env database.sqlite sudo chown 82:82 .env database.sqlite

and then tried this docker-compose:

version: "3.3"
services:
  shotshare:
    ports:
      - 2000:2000
    environment:
      - HOST=:2000
      - ALLOW_REGISTRATION=false
    volumes:
      - /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Shotshare/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
networks: {}