Giter Site home page Giter Site logo

proofrock / pupcloud Goto Github PK

View Code? Open in Web Editor NEW
131.0 131.0 6.0 8.08 MB

[SUSPENDED] A portable web file manager and gallery

Home Page: https://pupcloud.vercel.app

License: GNU General Public License v3.0

Dockerfile 0.21% Makefile 1.74% Go 18.16% CSS 2.13% HTML 2.16% JavaScript 1.88% Svelte 72.97% TypeScript 0.76%
axentix browser file-sharing go gofiber svelte web

pupcloud's People

Contributors

proofrock 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

pupcloud's Issues

Browser shares the cookies among all the open sessions to that general address

A few days ago I made an expiring share in latest beta pupcloud on Docker.
Screenshot 2022-05-22 at 11 27 49
(date just for example, actual date was earlier)

But it never seems to expire............

Did I do something wrong? Not enabled in this version? Is my memory of setting the share to expire wrong (could be)?

Can someone check it?

EDIT:
I actually got a "Link Expired" message, but then was able to login and continue........ I did not clean the browser cache in between.

Copied the url to a new browser. And now I cannot login anymore with "Link expired".

After logout I cannot log in anymore. That's OK.
.... and I can login again.......???

So just as log as you do not logout and keep your browser open ....... Let's test some more!

Listview's whole row should be clickable

From reddit: Listview: When hovering above a file/folder the cursor only changes above the text or its extends, It should change above the whole Table Row instead as clicking would still be actionable.

Pupcloud stopped without warning (I think) ...

This is not the best of reports, I know.

Had Pupcloud running in Docker. Seemed to have stopped running/responding but I am not such a Docker expert to know where the fault lies.

Log extract in case it is a "Pupcloud" issue.

/pupcloud$ docker-compose logs pupcloud
Attaching to pupcloud
pupcloud    | Pupcloud v0.8.0 (c) 2022 Germano Rizzo
pupcloud    |  - Serving dir /data
pupcloud    |    + Read/Write
pupcloud    |    + With password
pupcloud    |    + With max upload size: 32 MiB
pupcloud    |    + Will NOT follow symbolic links
pupcloud    |  - Server running on port 17178
pupcloud    | panic: runtime error: invalid memory address or nil pointer dereference
pupcloud    | [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x6ee065]
pupcloud    | 
pupcloud    | goroutine 2446 [running]:
pupcloud    | github.com/proofrock/pupcloud/files.LsFile({0xc00030aa20, 0x5c}, 0x0)
pupcloud    |   /app/pupcloud/src/files/files.go:67 +0xa5
pupcloud    | github.com/proofrock/pupcloud/files.LsDir({0xc0000603c0?, 0x34?}, 0x0)
pupcloud    |   /app/pupcloud/src/files/files.go:120 +0x23c
pupcloud    | main.ls(0xc0001fd080)
pupcloud    |   /app/pupcloud/src/handlers.go:73 +0x185
pupcloud    | github.com/gofiber/fiber/v2.(*App).next(0xc000144000, 0xc0001fd080)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:132 +0x1be
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0x2000000?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:802 +0x53
pupcloud    | main.launchMainApp.func1(0xc00008c0f0?)
pupcloud    |   /app/pupcloud/src/main.go:301 +0x335
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0x86fdc0?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/filesystem.New.func1(0xc0001fd080)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/filesystem/filesystem.go:145 +0x369
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0xc0001fd080?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/csrf.New.func1(0x100?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/csrf/csrf.go:98 +0x35b
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0xc000151600?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/compress.New.func3(0xc0001fd080)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/compress/compress.go:54 +0x45
pupcloud    | github.com/gofiber/fiber/v2.(*App).next(0xc000144000, 0xc0001fd080)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:132 +0x1be
pupcloud    | github.com/gofiber/fiber/v2.(*App).handler(0xc000144000, 0x4a1d77?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:159 +0x45
pupcloud    | github.com/valyala/fasthttp.(*Server).serveConn(0xc0000d2480, {0x872d30?, 0xc0000a4450})
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/server.go:2338 +0x1268
pupcloud    | github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc000076000, 0xc000680460)
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:224 +0xa9
pupcloud    | github.com/valyala/fasthttp.(*workerPool).getCh.func1()
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:196 +0x38
pupcloud    | created by github.com/valyala/fasthttp.(*workerPool).getCh
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 +0x1b0
pupcloud    | Pupcloud v0.8.0 (c) 2022 Germano Rizzo
pupcloud    |  - Serving dir /data
pupcloud    |    + Read/Write
pupcloud    |    + With password
pupcloud    |    + With max upload size: 32 MiB
pupcloud    |    + Will NOT follow symbolic links
pupcloud    |  - Server running on port 17178
pupcloud    | Pupcloud v0.8.0 (c) 2022 Germano Rizzo
pupcloud    |  - Serving dir /data
pupcloud    |    + Read/Write
pupcloud    |    + With password
pupcloud    |    + With max upload size: 32 MiB
pupcloud    |    + Will NOT follow symbolic links
pupcloud    |  - Server running on port 17178
pupcloud    | Pupcloud v0.8.0 (c) 2022 Germano Rizzo
pupcloud    |  - Serving dir /data
pupcloud    |    + Read/Write
pupcloud    |    + With password
pupcloud    |    + With max upload size: 32 MiB
pupcloud    |    + Will NOT follow symbolic links
pupcloud    |  - Server running on port 17178
pupcloud    | panic: runtime error: invalid memory address or nil pointer dereference
pupcloud    | [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x6ee065]
pupcloud    | 
pupcloud    | goroutine 2488 [running]:
pupcloud    | github.com/proofrock/pupcloud/files.LsFile({0xc000014960, 0x46}, 0x0)
pupcloud    |   /app/pupcloud/src/files/files.go:67 +0xa5
pupcloud    | main.file(0xc000095b80)
pupcloud    |   /app/pupcloud/src/handlers.go:103 +0x1aa
pupcloud    | github.com/gofiber/fiber/v2.(*App).next(0xc0000001e0, 0xc000095b80)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:132 +0x1be
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0x2000000?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:802 +0x53
pupcloud    | main.launchMainApp.func1(0xc00001a130?)
pupcloud    |   /app/pupcloud/src/main.go:301 +0x335
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0x86fdc0?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/filesystem.New.func1(0xc000095b80)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/filesystem/filesystem.go:145 +0x369
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0xc000095b80?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/csrf.New.func1(0x70?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/csrf/csrf.go:98 +0x35b
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0xc000273180?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/compress.New.func3(0xc000095b80)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/compress/compress.go:54 +0x45
pupcloud    | github.com/gofiber/fiber/v2.(*App).next(0xc0000001e0, 0xc000095b80)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:132 +0x1be
pupcloud    | github.com/gofiber/fiber/v2.(*App).handler(0xc0000001e0, 0x4a1d77?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:159 +0x45
pupcloud    | github.com/valyala/fasthttp.(*Server).serveConn(0xc00008e480, {0x872d30?, 0xc0001022d0})
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/server.go:2338 +0x1268
pupcloud    | github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc0000775e0, 0xc000110160)
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:224 +0xa9
pupcloud    | github.com/valyala/fasthttp.(*workerPool).getCh.func1()
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:196 +0x38
pupcloud    | created by github.com/valyala/fasthttp.(*workerPool).getCh
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 +0x1b0
pupcloud    | panic: runtime error: invalid memory address or nil pointer dereference
pupcloud    | [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x6ee065]
pupcloud    | 
pupcloud    | goroutine 2522 [running]:
pupcloud    | github.com/proofrock/pupcloud/files.LsFile({0xc0002a6b90, 0x46}, 0x0)
pupcloud    |   /app/pupcloud/src/files/files.go:67 +0xa5
pupcloud    | main.file(0xc00041a2c0)
pupcloud    |   /app/pupcloud/src/handlers.go:103 +0x1aa
pupcloud    | github.com/gofiber/fiber/v2.(*App).next(0xc0000001e0, 0xc00041a2c0)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:132 +0x1be
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0x2000000?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:802 +0x53
pupcloud    | main.launchMainApp.func1(0xc00001a130?)
pupcloud    |   /app/pupcloud/src/main.go:301 +0x335
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0x86fdc0?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/filesystem.New.func1(0xc00041a2c0)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/filesystem/filesystem.go:145 +0x369
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0xc00041a2c0?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/csrf.New.func1(0x70?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/csrf/csrf.go:98 +0x35b
pupcloud    | github.com/gofiber/fiber/v2.(*Ctx).Next(0xc000272c00?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/ctx.go:799 +0x43
pupcloud    | github.com/gofiber/fiber/v2/middleware/compress.New.func3(0xc00041a2c0)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/middleware/compress/compress.go:54 +0x45
pupcloud    | github.com/gofiber/fiber/v2.(*App).next(0xc0000001e0, 0xc00041a2c0)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:132 +0x1be
pupcloud    | github.com/gofiber/fiber/v2.(*App).handler(0xc0000001e0, 0x4a1d77?)
pupcloud    |   /app/pkg/mod/github.com/gofiber/fiber/[email protected]/router.go:159 +0x45
pupcloud    | github.com/valyala/fasthttp.(*Server).serveConn(0xc00008e480, {0x872d30?, 0xc00000e490})
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/server.go:2338 +0x1268
pupcloud    | github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc0000775e0, 0xc0007b2120)
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:224 +0xa9
pupcloud    | github.com/valyala/fasthttp.(*workerPool).getCh.func1()
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:196 +0x38
pupcloud    | created by github.com/valyala/fasthttp.(*workerPool).getCh
pupcloud    |   /app/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 +0x1b0

Lights off

Amazing clean, fast and simple project. Love it.

Not the most important but a dark mode would be nice if that's not too much trouble.

Feature request: browser navigation with pushstate popstate?

Pupcloud is a single web-application. So when I hit previous it exits Pupcloud and navigates my browser window to the previous webpage.
By implementing pushstate and popstate events on path traversal you make the whole application easier to use.

Possible Docker/Pupcloud/External data store gremlin

Note, I do not know where the possible problem may lie, but I can report it and if you have ideas what to check to isolate "who has the problem" I am happy to check.

Environment: Debian 11 server running Docker. Rclone mount (via systemd) used as datastore. Pupcloud ran as a container within. Data directory for Pupcloud is set to access this share.

version: '3.3'
services:
    pupcloud:
        restart: unless-stopped
        container_name: pupcloud
        ports:
            - '8080:17178'
        volumes:
            - '/mnt/disks/DB0-UNION:/data'
        environment:
            - PID=1001
            - PGID=1001
            - PUP_TITLE=The Archive
            - PUP_PASSWORD=downundertv
        image: 'germanorizzo/pupcloud:latest'

Pupcloud can run (in tests) and serve files. Eventually and silently it stops. You don't get an error (that I can see) and the web app continues to run, but no data is served up or shown.

docker start pupcloud restarts things, no errors are shown on restart, and the web app then (after page refresh) will deliver goodies again.

Other info:

rclone --version
rclone v1.58.1
- os/version: debian 11.3 (64 bit)
- os/kernel: 5.10.0-13-amd64 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.17.9
- go/linking: static
- go/tags: none

Sharing only works if shared from localhost

If I start pupcloud with

./pupcloud -r /home/user/Share/pubcloud -E --share-profile John:Secret --share-prefix 'http://192.168.1.140:17179'

If I access pupcloud from
a - localhost

  • :17178 => I can not "Copy link" copying to clipboard does not work
  • reverse proxy /pubcloud => I can not "Copy link" copying to clipboard does not work
  • localhost:17178 => I cant "Copy link" copying to clipboard works
    b - from any remote computer/IP
  • :17178 => I can not "Copy link" copying to clipboard does not work
  • reverse proxy /pubcloud => I can not "Copy link" copying to clipboard does not work
  • obviously I cannot localhost :-)

The link can be opened inside the LAN. (OK)

Is this wanted behavior of pupcloud, a limitation of pupcloud, or do I simply want to much (pupcloud runs on my headless debian server inside a VM. I access pupcloud from my Mac or mobile devices, never from localhost. Or did I misconfigure pupcloud?)

Other point:
the popup on the bottom of the browser screen is there only very short.

  • can it be there longer, or
  • can it be there until the mouse changes shape into a hand?

allow_edits=1 in docker makes '/data' read only

docker runs well, i can serve files in /data, and logs shows its running in '+ Read/Write'.

i turned on allow edits by adding environment variable: '-e PUP_ALLOW_EDITS=1' to docker run command.

webui add buttons for creating folder and upload files, but get a permission denied message. logs says its running in '+ Read Only'.

Feature Request: Folder sizes

I don't know if this would be possible without creating a database and resource draining process, but I would love to see the sizes of the contents of folders added in their properties. Perhaps just the size of the files in ONLY that folder would be better than any recursion?

Docfix: Multiple profiles

It took a few minutes to figure out that --share-profile can only accept a single key:value pair,

But then how does one specify more than one?

Non-obvious:
Turns out with multiple --share-profile parameter invocations in series.

Consider adding comma separated list parsing of key/value pairs with a single parameter invocation.

Sharing subdirectories, feature or a bug?

If I share when inside a sub-directory (symlinked or not) only that sub-directory is shared. I cannot go UP in the directory tree.

Is this intended behaviour?

I think it's a feature!!! Don't fix.

Link in wiki to Roadmap links to itself, not the Roadmap

See title
Screenshot 2022-05-11 at 23 17 41

I like most of the items in the Roadmap.

Please remember, you wrote [pupcloud] "It is an exercise in minimalism".

I fear that when you integrate all of the items in the Roadmap into pupcloud it no longer will be no longer "minimal" in size, code, functionality (do we want another Nextcloud?) and maximal in speed.

Bu in the end, it's YOUR project. Only you can decide where to go with pupcloud.

So far, thank you for pupcloud!

If we want to discuss pupclouod, we cannot contain our enthusiasm, where should we do that?
Maybe you could open a topic in "Discussions"?

Docker environment variable for max upload size?

Increasing the maximum upload size in Docker is quite cumbersome at the moment as my docker-compose.yml file shows:

version: "3"
services:
  pupcloud:
    image: germanorizzo/pupcloud:latest
    user: 1003:1003
    ports:
      - "17178:17178"
    restart: unless-stopped
    entrypoint: ["/pupcloud", "-r", "/data", "--max-upload-size", "1000"]
    environment:
      PID: 1003
      PGID: 1003  
    volumes:
      - /home/user/music:/data

If you know how entry points work it quite doable but I suspect users would want an easier method. Or just having documentation about the entrypoint with an example might be sufficient for the moment.

Share button for when looking at folders and files

Right now i can only share a folder that i am currently in. sometimes i might only want to share a specific file or want to be able to share a folder that is not currently open.

a share button in the triple bar menu might be a fix. i did see that multi select is on the way so this prob already planned for after that is done.

great project tho after a few more updates come out ill prob use this full time

Feature request: consideration for multiple accounts

Would it be possible to consider "multiple accounts" within one (Docker or similar) instance.

E.g. I may have mounted "drive1/" but will keep that not visible.

Then create a share called "dog pics" (data source "drive1/dogpics" and protect it with a password woof. I get a URL to share.

Ditto for "cat pics" (data surce "drive1/catpics")

Then "animal pics" (data source "drive1/dogpics" and "drive1/catpics") presently in a sort of union affair.

Result = 3 "public" addresses with an optional password (x3).

Bonus but less critical if individual users can be created and then selecting what directories they can see.
This adds more "filebrowser" behaviour here.

I am aware I could spin up 3 Docker instances, or more, to achieve this in part (not the union, unless I use rclone to join the data sources and then expose the union), but I am presuming this creates greater server load and resource usage.

Tks

(feature request) add "download all files" from share/folder

tldr: bulk-downloads of all files in a folder/share

My User Story

I have a folder full of pictures that i want to share with a friend. (f.e. the photos from a shared vacation)

  • I want my friend to be able to view the folder and individidual files in the browser (that works great already)
  • I want my friend to be able to download all files from the folder. Currently, he would need to download each image individually.

How to implement & considerations

I see two options really:

  1. All files are concetenated on-the-fly into 1 big file (f.e. a .zip or .tar file)
  2. All files are downloaded individually

Option 1. is the nicer one imho, its also how most other services do it (f.e. Google drive, Dropbox etc.). But it might need a cache directory? That would kinda contradict the minimalist "leave no marks on your filesystem" goal of pupcloud.

Option 2. has no dependencies, but browsers do not like a client-side invocation of lots of file downloads. (Because Its not very userfriendly - what happens on name conflicts etc.)

Feature enhancement: file structure cache or pre-fetch

From my observations and a bit of feedback from test users, there can be some latency issues when retrieving file data from a large exposed instance (in this case c. 45Tb of data).

It seems noticeable as you navigate down a series of directories (with the size/scope growing).

e.g. /root/main title/sub title (27 folders)/possible up to a few hundred or greater folders/up to 10 folders/content

Whether an index (that refreshes itself when a user eventually navigates down in case of change OR something that does an update every hour) or use of the file cache (if possible/used e.g. rclone) is possible I don't know.

User-case, vps mounted Pupcloud, external cloud data store via rclone mounted drive point). It seems empirically slower than comparable Filebrowser configuration so far.

(Some test users felt the thing had crashed, so it puts further desire for the "spinner" on network activity as per the earlier FR).

Edit: this refers ONLY to the file structure metadata and NOT the actual end contents.

[if the developer wants access to the referenced test environment, just contact]

In changing Dir, path not found

Pupcloud 0.7.2

Something goes wrong when using the forward/backward buttons to go back to a folder.
The console shows the following (redacted) 404 error:

# On first press back:
GET https://files.domain.nl/ls?path=Backups/fotoarchief/My%20full%20Name%20and%20Girl%20Friend%20Name%202015%20-%202030/2022/2022-04

# On second subsequent press back:
GET https://files.domain.nl//ls?path=Backups/fotoarchief/My%20full%20Name%20and%20Girl%20Friend%20Name%202015%20-%202030/2022

# On third subsequent press back:
GET https://files.domain.nl/ls?path=Backups/fotoarchief/My%20full%20Name%20and%20Girl%20Friend%20Name%202015%20-%202030

The file structure should look like this:

  • Backups
    • fotoarchief
      • My full Name and Girl Friend Name 2015 - 2030
        • 2022
          • 2022-04

I'm not sure what goes wrong here, maybe the URL encoding/decoding goes wrong with the %2020 ?

Feature request: logo

It would be nice if you could consider an optional logo for the login page when a password is set for the share. As an environment variable too that I can refer to in the docker-compose.yml.

As it is now, it just pops up a password box (unless I've missed an existing option).

Just a link would do, e.g. LOGIN_LOGO=/home/user/directory/logo.jpg (or png) No problem with default centering and any size limits (width wise). I am not going to start requesting lots of skinning options!

My launch mode:

version: '3.3'
services:
    pupcloud:
        restart: unless-stopped
        container_name: pupcloud
        ports:
            - '8080:17178'
        volumes:
            - '/mnt/disks/D:/data'
        environment:
            - PID=1001
            - PGID=1001
            - PUP_TITLE=xxxxxx
            - PUP_PASSWORD=xxxxxx
        image: 'germanorizzo/pupcloud:latest
```'

PDF on iOS / iPadOS do not show (correctly)

As the title says: when using pupcloud in the Safari browser (or any other browser) on iOS an iPadOS (latest versions) PDF's do not work.

I either got only the first page (graphics) but not any subsequent pages or the page remained dark and unresponsive (text).

This might be a limitation of iOS/iPadOS, but ....... you know ...... I would like to be able toe read pdf's on my iPhone/iPad with pupcloud.

To make startup of pupcloud easier we can use a config file

When I first used pupcloud I started it with

pupcloud -r /home/user/pupcloud

That is easy and relatively quick to type.

After some experimenting with pupcloud my startup line evaluated to

pupcloud -r /home/user/Share/pubcloud -H 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef --max-upload-size 128 -E --share-profile John:S3cr3t --share-profile James:S5cr5t --share-prefix 'http://domain.com:12345/pupshare' --follow-symlinks

This is a bit much to type .............

ENHANCEMENT: wouldn't it be nice to ha a config file (pupcloud.conf) to start pupcloud.

pupcloud might be started with: pupcloud -c pupcloud.conf
option -c is config.file

Make readonly mode the default

From discussion on reddit. The default behaviour (read-write and passwordless) potentially allows everyone in the local network to modify an exposed filesystem.

Keep --readonly for retrocompatibility; the new default behaviour will be to disallow edits; add a -E/--allow-edits parameter; put a warning toast that says "edit is disallowed, please re-run it with --allow-edits".

Pupcloud does not work with nginx reverse proxy

Could be user error but whenever i use nginx with the docker image of pupcloud i can access via lan but whenever i use an https reverse proxy i get a message that says password required in basic text and no styling or anyway to enter a passwd.

heres my nginx config

location /pupcloud/ {
   proxy_pass http://localhost:8998;
}

Customizable temp path

Wow, amazing project! Lightweight, friendly UI and I really appreciate the single binary executable style. :)
Only thing that I'm missing right now (keeping your roadmap in mind, which cover's pretty much everything else I'm tempted to think of) is a customizable path for file upload temp. Right now this goes to /tmp/ on my system, which is mounted as tmpfs. So large file uploads fail (silently) when space runs out. Which it luckily does due to limited size before memory fills up.

Feature request/thought? Webdav

I don't know how possible it is to add a feature stream, and certainly it should be "opt-in" not to remove the core use of the application.

But if it is easy to somehow add a mini Webdav server (read-only is fine, or whatever permissions otherwise granted to each Pupcloud share) it would be good. An alternative means to get the same files from one point.

The launch simplicity of Pupcloud is great. So maybe this feature, if possible, may be easiest to implement only in a Docker, if you or another contributor, can add the glue to pull in a webdav server and make the configuration as a slave to Pupcloud being a master.

More functional footer

From reddit: A footer with links to your documentation or GitHub would be one option. An obnoxious popup on start would be another. The gist of it is: some links to documentation/GitHub/ Reddit etc.

Still developing?

Just wondering if you are still developing this, as there has been a lot of silence. I recall you had indicated that summer would be busy (with work?) but I see no sign of life in the repo... just wondering whether to keep up the Pupcloud instance...

Docker (new test version) does not show owner & group info in hamburger popup.

The owner and group fields are empty.
Screenshot 2022-05-09 at 17 58 34

if: docker exec -ti puptest /bin/sh
Screenshot 2022-05-09 at 18 43 54

Logical, because the container does not know the names of owner:group 1000:1000 inside the container.

The simples of fixes is to no longer show this info.

Just show the permissions info and I'm happy.

I really like the keep it simple approach of pupcloud.
Just kill off features that do not work and only add features that dd to the functionality of pupcloud! NO need to make the code bloated (and slower) with exceptions and workarounds.

Maybe make this a discussion, not an issue?

Can't enter directory made by pupcloud

Pupcloud: 0.70 - Non Docker

After creating a directory using Pupcloud I cannot seem to enter it. The folder name is added to the path each time I click the directory. Only "Uitzoeken" seems to have this problem.

image

What I tried:

  • Restarting VM with pupcloud
  • Changing permissions to match the other directories
  • Using different browser
  • Adding a hello.txt (<--- This fixed the problem!)

image

Edit: It seems like Pupcloud doesn't enter empty directories.

Sharing user problem

When starting a share I cannot choose the second user. The checkmark is not applied to the second user.
Screenshot 2022-05-07 at 13 56 52

Feature request: spinner

(user-case, data store points to an external network resource, but could also be the same for large local directories).

Could a "spinner" be implemented to show the system has not crashed when navigating to a directory that has not "loaded" (as in it is busy gathering info so "wait").

Happy to give you a private link to test if you wish - you have my email from our exchange a week or so ago re FI/IT).

Default option to hide certain data

As discussed elsewhere, I really would like the ability for the default to hide the "metadata" such as:

Owner: pup (1000)

Group: pup (1000)

Permissions: drwxrwxr-x

When viewing a file or directory. I really want to screw down default information.

An external user need not know such info...

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.