proofrock / pupcloud Goto Github PK
View Code? Open in Web Editor NEW[SUSPENDED] A portable web file manager and gallery
Home Page: https://pupcloud.vercel.app
License: GNU General Public License v3.0
[SUSPENDED] A portable web file manager and gallery
Home Page: https://pupcloud.vercel.app
License: GNU General Public License v3.0
When using a reverse proxy with apache2 the GUI does not load (on desktop and mobile browser), the page stays white.
My relevant config:
ProxyPreserveHost On
ProxyRequests off
ProxyPass /pupcloud http://192.168.1.xxx:17178
ProxyPassReverse /pupcloud http://192.168.1.xxx:17178
A few days ago I made an expiring share in latest beta pupcloud on Docker.
(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!
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.
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
This will solve a lot of issues with security and relieve rev-proxy setups.
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.
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.
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
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
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.
I've just installed this via docker container, and it works great, but...I don't have these (this is a screenshot from your demo):
This is how it looks for me:
https://prnt.sc/a9PeUQqgq8Nx
Any ideas?
see milahu@230a077
these files should be moved to the gh-pages
branch
4.6M total before
924K total after
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'.
From reddit: Clicking the Pupcloud image header doesn't do anything, I would have expected it to bring me to root also.
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?
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.
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.
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"?
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.
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
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
From reddit: A systemd example would be nice on how to start it as a service on boot. This would aid newcomers.
It would be good if such an option could be set to determine whether the default view behaviour is icon view or list view when connecting to a Pupcloud instance (as a user).
Subissue of #2
The navigation fails, but the breadcrumb gets updated, and it results in an endless loop of cd/fail
tldr: bulk-downloads of all files in a folder/share
I have a folder full of pictures that i want to share with a friend. (f.e. the photos from a shared vacation)
I see two options really:
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.)
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]
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:
I'm not sure what goes wrong here, maybe the URL encoding/decoding goes wrong with the %2020 ?
I believe it's because you're sending the header Content-Disposition: inline
, where it should probably be Content-Disposition: attachment
if you click the download button, so the browser doesn't just show the file in the browser.
I did a quick test, and that seems to fix it.
It seems to get confused by the 499
error. I have to investigate a bit more.
From reddit: Filtering based on Size or Mod. Date by clicking the table row header would be nice.
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
```'
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.
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
This can be used to "evade" the sandbox. Urgent.
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".
It only shows when using an hashed password.
An environment variable to turn off (optional) ability to stream/watch video from the Pupcloud instance would be nice, e.g. download only and "watch at home".
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;
}
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.
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.
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.
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...
The owner and group fields are empty.
if: docker exec -ti puptest /bin/sh
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?
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.
What I tried:
Edit: It seems like Pupcloud doesn't enter empty directories.
(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).
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...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.