Giter Site home page Giter Site logo

shaneisrael / fireshare Goto Github PK

View Code? Open in Web Editor NEW
631.0 631.0 39.0 21.01 MB

Self host your media and share with unique links

License: GNU General Public License v3.0

Dockerfile 0.54% HTML 1.93% JavaScript 69.55% CSS 0.34% Python 26.55% Shell 0.90% Mako 0.20%

fireshare's Introduction

Hi πŸ‘‹, I'm Shane Israel

Just a guy with a passion for developing full stack web applications primarily in NodeJS & React.

fireshare's People

Contributors

bookking3000 avatar dulanic avatar hcnguyen111 avatar j-stuff avatar jackbailey avatar kohsine avatar risedsky avatar shaneisrael avatar skrekhere avatar talon876 avatar tdurieux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

fireshare's Issues

Add ability to delete files

  • Allow deletion of a file after a confirmation dialog
  • Remove the files data from the database
  • Remove all the generated data that exists for the file

[Feature Request] Basic video editing (cropping, cutting)

Hello. First of all, thank you for amazing project you've made. It's very pleasing for eyes, it's responsive, have neat features. It also has it's downsides like some bugs but i think those will be fixed ASAP :)

I'd like to see basic video editing tool right in the Web UI. I mean the basic functions like cropping or cutting some moments. Will it be possible?

Thanx.

docker-compose error?

Not sure if it was just me but I had to change the line

image: fireshare:latest to image: shaneisrael/fireshare:latest

as I was getting the following error but works great after changing that line.

ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

It's working great now, looking forward to trying it out.

Feature req: handbrake in a container and queuing

There is mention of using handbrake out of band. It might be a neat feature to add in handbrake as an additional container service. There’s a long history of automating it with python and you can probably leverage the built in queue.

Read Metadata + Filters & Tags

Would be cool if you would read the Metadata of the Recordings, eg Windows Game Bar save the Game Name and Recoding Date.
Also if newly imported Videos would get the a Tag "unsorted" or something that would be great.

Just a Idea...

IPs recorded in sqlite file

Why are IPs recorded in the sqlite file? What is the source (some I don't recognize). This seems unnecessary, and a security concern. For example:

INSERT INTO "video_view" VALUES (1,'e7xxxxxxxxxxxxxxxxxxa2ceff4306287','107.150.23.212');
INSERT INTO "video_view" VALUES (2,'f13xxxxxxxxxxxxxxxxxx5c061e43c9fdd','161.129.70.14');

Thank you!

[Feature Request] Delete videos(s)

Hello, I'd like to see the ability to delete videos from the webui. This should also delete the videos from the filesystem. This is obviously easily done via cli, but this would be a time saver for sure.

BTW, love the program!

Dev environment doesn't work as expected

Describe the bug
While 'running' the dev environment works (with some fiddles), the end result ends up in a window with a blue background and a bunch of XHR 404 errors.

To Reproduce
Steps to reproduce the behavior:

  1. Clone git directory, go to root and run bash ./run_local.sh, wait for it to suceed to :5000
  2. Open another terminal window, go to app/client and run npm install (or npm install --legacy-deps), followed by npm start. Gives a bunch of warnings, see the in the screenshot section (1).
  3. Navigate to localhost:3000 (in this case, my homeserver 192.168.1.99:3000) to be greeted with the blue screen

Expected behavior
I expect it to run.

Screenshots
(1) The Warnings generated by npm install:

npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: [email protected]
npm WARN Found: [email protected]
npm WARN node_modules/react
npm WARN   react@"^18.1.0" from the root project
npm WARN   20 more (@emotion/react, @emotion/styled, @mui/base, ...)
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer react@"^16.3.0 || ^17.0.0" from [email protected]
npm WARN node_modules/react-side-effect
npm WARN   react-side-effect@"^2.1.0" from [email protected]
npm WARN   node_modules/react-helmet
npm WARN
npm WARN Conflicting peer dependency: [email protected]
npm WARN node_modules/react
npm WARN   peer react@"^16.3.0 || ^17.0.0" from [email protected]
npm WARN   node_modules/react-side-effect
npm WARN     react-side-effect@"^2.1.0" from [email protected]
npm WARN     node_modules/react-helmet
npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.

What I see:

image

What I see when I manually navigate to /#/login

image

The errors on console:

image

Desktop (please complete the following information):

  • Happens on every browser, Ubuntu 22.04 Server, Tried node 12.x and node 18.x

Am I missing something here?

Add scheduled file scans

  • Every minute run a silent scan for new files (i.e. only output that the scan has started, ended, or anything pertaining to new files found)
  • Generate all derived data for any new files and metadata

can't copy timelink

If I click on the Time link Icon nothing happens,
this shows up in the console: image

Feature Request: Folders

I think the ability to create folders would be great. A usage example: Folders for different games. Being able to upload to a folder, or view a folder would be awesome.

Great project!

Add arch64 support

  • Add support for arm64 devices
  • Add QEMU & buildx to github action
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v1

      - name: Setup Docker buildx
        uses: docker/[email protected]

      - name: Log in to Docker Hub
        uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      
      - name: Log in to the Container registry
        uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GIT_TOKEN }}
      
      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
        with:
          images: |
            justsky/honeypots
            ghcr.io/${{ github.repository }}
      
      - name: Build and push Docker images
        uses: docker/build-push-action@v2
        with:
          context: .
          platforms: linux/amd64,linux/arm64
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}

[Feature Request] Autoscan as Admin

From what I can tell, the auto scan only works if you're not logged in. I think it's best if auto scan worked regardless of being logged in or not. By being logged in, I have the privilege of deleting videos and editing titles, but no auto scan; vice versa.

Btw great job so far!

Sorting by date added or newest

First off, wonderful app! I'll be doing a full review on my website soon. I had the idea to use this to share videos of my kids to their grandparents and family.

Would love the ability for them to be able to sort videos by newest or recently added.

No video with supported format and MIME type found

When I click on a video a window opens with:

"No video with supported format and MIME type found."

Yet if I drag that video file into a blank browser (Firefox) tab, it plays. Is this expected?

Thank you!

[Feature Request] Expiry date on videos uploaded by public

I want to self-host this but I'm afraid if the community I'm in starts using it, it will quickly eat up all my space. So it would be nice to be able to set an expiry date for videos. You can make this simple as anything uploaded by non-admin, would get a install-time defined expiry date.

[Feature request] Simple in-web video editing

Hello. I came across this project and really like it. In fact i was trying to find Streamable alternative for a long time. The only thing I miss compare to Streamable is video editing (mainly cropping). It would be super awesome if you could add it later and I would be grateful. Did you think about this feature?

Database Sync Scan

  • Check that everything in the database has a corresponding file
  • If the file is not found, mark the row in the db as "missing".
  • If on a subsequent scan, a file is found and the db row is set to missing, unset it.
  • Update the front-end to reflect files that are missing to the user

Documentation Improvements

  • Add setup instructions (docker / docker-compose guide)
  • Add images showing off the application
  • Maybe a walk through of the various things you can do (manual scan, edit details, public/private).

[Questions/Issue] Upload, users & issue solving

Hello,

I'm not sure if I'm missing something but I have two questions.

  • 1 Is it possible to add users, so my friend can upload their clip to my fireshare?
  • 2 Is it possible to upload the video through the web gui? If it's possible I can't seem to find the button. Found it, but had to refresh browser after saving "Show Admin Upload Card".
  • 3 Is there any debug mode so I can see the http request the service receives?

Thanks in advance.

/Robin

Open Graph Support on Android

Pasted a share link on Android/Google Messages, and only see the link itself. Not the metadata or thumbnail.

*Direct links copied from the link copy buttons in Fireshare will allow websites and messaging apps to read the open graph data and show title, description and video thumbnails in your posts. *

Instead...

Suggestions?

File Missing in list

When i delete files from server, it shows File Missing on preview image.
Is there any way to auto delete these items from list ?
should i do manually 1 by 1 ?

thanks.

Logging Error After Scan That Prevents Further Scanning

Describe the bug
Whether a manual library scan or a scheduled library scan, the cli shows "--- Logging error ---". I think that this keeps the scan process as currently active and prevents further scanning.

To Reproduce
Steps to reproduce the behavior:

  1. Manually scan or wait for the scehduled scan to begin
  2. See error

Screenshots
https://imgur.com/rtJcq1C
fireshare logging issue

Streaming issues

Hi

Great app btw! Just could do with some advise regarding nginx settings. Are there any that can help with buffering?

I currently have 55mb upload speed with 15 second clips, I'm surprised people out my network experience buffering issues. The file sizes are 180mb max but mostly under 100mb and are MP4 files.

I'm assuming it's an nginx setting for caching which would help resolve.

Any help would be appreciated :)

Scanning Lock File

  • Create a lock file to prevent subsequent scans from overlapping and causing problems.
  • Delete the lock file after scan is done.
  • Check if the lock file exists and delete the lock file on container start if it does.

preview images

The videos I upload do not have preview images by default. Will there be preview images only when I share them? How can I create preview images for all videos at once?

Enhancement: Nginx HTTPS/SSL/Port 443

Can the nginx.conf (prod.conf) and Dockerfile be updated to also open/listen on port 443 for HTTPS/SSL?

Currently, when navigating to my Fireshare instance under https://, I get "ERR_SSL_PROTOCOL_ERROR" (Chrome) and notice that Nginx only does a "listen 80 default;". Will the addition of "listen 443 ssl;" make HTTPS work or is there more to it?

Please look into this.

[Bug] Webview is to small

Describe the bug
When I visit my Fireshare instance I get horizontal scrolling.

To Reproduce
I just visit any Fireshare webpage on my phone and I get the horizontal scrolling.

Expected behavior
I expect that the full with of the website should be visible. (no scrolling sideway).

Screenshots
image

Additional context

  • iOS
  • iPhone 13 Pro
  • Safari and Firefox
  • Fireshare v1.2.3

Doesn't happens on my partners phone (iphone 11).

[BUG] Mobile Tap/Click

Taps on videos continue to play the muted preview even after the modal has opened and started playing.

Feature Request: Custom Thumbnails

I need to change certain thumbnails... Particularly the all black ones. Presently I do that manually, though it is complicated to figure out the relationship between the video file name and the appropriate folder that holds the thumbnail. Thanks for your consideration.

Docker image getting full

Describe the bug
Running it as a container in Unraid with all the path mapping to the array even the appdata is in the array because while uploading a file it starts to fill up the docker image for no apparent reason.
When it reaches 100% it stops uploading i have to start again.

To Reproduce
Steps to reproduce the behavior:

  1. Start uploading file and wait to see the docker image fill up.

Expected behavior
Expecting either the ram to increase in usage or for it to write directly to the upload location on the array

Screenshots
image
image
image

Desktop (please complete the following information):

  • Browser Vivaldi

Additional context
Add any other context about the problem here.

Grey screen, play button disabled and wont play videos.

On Edge (I currently only have this browser), when I press a video to play it just shows a gray screen and the buttons bar.
The play button and the 3 dots button are disabled, and it won't play the video.

image
It's an mp4 file.
I tried with some other videos, but nothing.
On Ipad safari works.
On another laptop, chrome, it just plays the audio, and no image is shown.

This is running on docker (proxmox lxc container OS turnkey - debian 10)

Docker compose
version: '3.3'
services:
fireshare:
container_name: fireshare
image: shaneisrael/fireshare:latest
restart: unless-stopped
ports:
- "8888:80"
volumes:
- /srv/fireshare/fireshare_data:/data #change this to your folder location
- /srv/fireshare/fireshare_processed:/processed #change this to your folder location
- /srv/fireshare/fireshare_videos:/videos #change this to your folder location
environment:
- ADMIN_USERNAME=admin #please change this
- ADMIN_PASSWORD=admin #please change this
- SECRET_KEY=somestr1ng!
- MINUTES_BETWEEN_VIDEO_SCANS=1 #how often should the system scan?
- PUID=1000 #change this to match your server settings
- PGID=1000 #change this to match your server settings

https://test.quiquos.space/ <- Site to test

Screenshots

I just discovered this container in Unraid and this is right up my alley (Thumbs up to then creators) to self host my own game clips to share around with friends. Can i request a screenshot feature be implemented so i can upload my game screenshot archives

look at the redlines and help me plz

<html> <head><title>502 Bad Gateway</title></head> <body bgcolor="white"> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page -->

when i visit the website , the above redlines show up.
help me plz and i can't login either.

An unknown error occurred while trying to log in

No MKV support

Probably intended or to be added later ?

Awesome soft btw

OpenGraph Embed

Hello!

I wanted to say that I love this project so far!

One small thing: I don't seem to be having any luck with the OpenGraph embed .

I'm seeing just a generic embed (see attached). Is there something I'm missing?

embed

Shareable Link Domain - How does it work?

I'm running a docker container and I entered a domain "share.mydomain.com" under settings.

When I log into the container over the LAN, I am using http://192.168.1.42:12345. When I create a link, the domain I entered is ignored, and the link comes back with my local LAN IP, so...

http://192.168.96.101:12345/w/1a84ad8333l3l58238e7dc0f65047

... which is not shareable outside my LAN. Instead, I was expecting:

https://share.mydomain.com/w/1a84ad8333l3l58238e7dc0f65047

OTOH, if I log into Fireshare using https://share.mydomain.com, which is redirected by reverse proxy to http://192.168.1.42:12345, the share links use my domain. It seems that the domain I enter in Settings is ignored. What am I doing wrong?

Videos 404 not found in subdirectories or renamed upload directory

Dear Team,

Describe the bug
I'm facing issues with playing videos if they're not in the default upload directory or if they're in subdirectories.
See in the Screenshot attached, it looks like Fireshare is not able to locate the video file if it's in a subdirectory or if the upload path is change to another name (via settings; and ofc video uploaded after changing this name).

To Reproduce
Steps to reproduce the behavior:

  1. Start the container with the following settings..
  2. Login as admin
  3. Create Subdirectories on the server or change the admin upload folder via WebGUI
  4. Upload a video via WebGUI or place a video (mp4 file in my tests) in a subdirectorie

Docker config:

docker run -d \
  --name fireshare \
  --restart=always \
  --label=com.centurylinklabs.watchtower.enable=true \
  -v /run/user/1000/docker.sock:/run/user/1000/docker.sock \
  -v /share/fireshare/data:/data:rw \
  -v /share/fireshare/processed:/processed:rw \
  -v /share/fireshare/videos:/videos:rw \
  -p 127.0.0.1:8090:80 \
  -e ADMIN_PASSWORD=mysupersecurepassword \
  -e MINUTES_BETWEEN_VIDEO_SCANS=1 \
  shaneisrael/fireshare:latest

Note: I'm using a rev proxy outside of docker to connect via https to all those webserivces. So the revproxy is hosting the secure connections and forwards the traffic to the local mapped system port which is connected with docker.
Also my docker runs in the context of a service user without root privileges; this user owns the whole /share/fireshare directory.

Expected behavior
Like described I would like to see those subdirectories as a "filter" in the Dropdown menu.

Screenshots
issue-fireshare_notfound

Desktop (please complete the following information):

  • Browser: tested with Vivaldi 5.3.2679.61 (Stable channel) (arm64)
  • Browser: tested with Firefox 101.0.1 (64-bit)

Additional context
I tried to rename the folders, without spaces but also that was without success.
Btw using the default upload directory (uploads) and then copy a video to a subdirectory and delete it via webgui also shows "not found" afterwards. Just tested this case, to be sure there's no permission issue..

Thanks in advance for your help!
If more information is needed, please let me know.

Br
Flo

Fireshare docker stop working when I reboot

Fireshare works properly when I first run it, but when I reboot my computer the application gave errors and I'm unable to access my videos.

This is the command I used to deploy fireshare, almost as same as the one provided in this github but added restart=unless-stopped
docker run --restart=unless-stopped --name fireshare -v $(pwd)/fireshare:/data:rw -v $(pwd)/fireshare_processed:/processed:rw -v /media/karis/backup/DESKTOP-IIJBPB0/Current\ Video/Valorant:/videos:rw -p 8080:80 -e ADMIN_PASSWORD=my-admin-password -d shaneisrael/fireshare:latest

It deployed fine and I can access fireshare at ip-address:8080, I logged in and scanned my videos, everything was fine.

However when I reboot the computer, fireshare no longer works. I can still go to ip-addr:8080 but I got an error <html> <head><title>502 Bad Gateway</title></head> <body bgcolor="white"> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page -->, then I clicked login and enter my info. It gave me this error.
image
After a minute, the site can't be reached, ip-address refused to connect.

Here's the log I got about this issue using docker logs fireshare
fireshare error.txt

I ran docker on Linux Mint 21 on a Lenovo Desktop, Docker version 20.10.17, build 100c701. I ran the docker run command in my home directory and my game clips are stored on external hard drive mounted at /media/karis/backup. I ran various other containers and all these container work properly after I reboot my computer.

I'm new to using Linux but let me know what other information you need from me to resolve my issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.