Sign inSign up

germanorizzo/pupcloud

By germanorizzo

Updated over 4 years ago

A portable web file manager and gallery

Image
1

50K+

germanorizzo/pupcloud repository overview

🐶 Pupcloud

Point pupcloud to a local folder and instantly get its contents exposed as a web application. Browse, manage, share files... in a truly portable way!

Pupcloud doesn't need a database, nor it leaves .dotfiles on the filesystem; it is packaged as a single executable file (written in Go+Svelte+Typescript), so you'll just need to download and run it.

It is an exercise in minimalism: it aims to be as simple as possible, while retaining all the features you would like it to have. Just run it! It has everything that fits in a pup-sized cloud ;-)

If you are curious, go see the Demo!

Docker image

The image is based on Alpine. It's a multiarch image for amd64, ARM and ARM64.

Here are the relevant configurations:

ParameterValueNotes
Exposed port-p xxxx:17178Fixed; remap it with -p
Config dir-v [...]:/dataFixed; remap it with -v
User-e PUID=1001If not specified, 1000
Group-e PGID=1001If not specified, 1000

Environment variables can be used to configure the various aspects of Pupcloud.

VariableHelp
-e PUP_TITLE="PupWow"Title of the window
-e PUP_FOLLOW_SYMLINKS=1Follow symlinks when traversing directories
-e PUP_MAX_UPLOAD_SIZE=64The max size of an upload, in MiB
-e PUP_PASSWORD=ciaoThe main access password, if desired. Use --pwd-hash for a safer alternative
-e PUP_PWD_HASH=5302bfSHA256 hash of the main access password, if desired
-e PUP_ALLOW_EDITS=1Allow edit operations to FS
-e PUP_SHARE_PORT=12345The port of the sharing interface
-e PUP_SHARE_PREFIX=http://localhost:12345The base URL of the sharing interface
-e PUP_SHARE_PROFILES=k1:v1,k2:v2Profiles for sharing, in the form name:secret

See Running Pupcloud for more info, and other variables (use with caution, the ones listed here are the "safe" ones).

Example
docker run -d \
 --restart=unless-stopped \
 --name=pupcloud \
 -p 8080:17178 \
 -v /mnt/DockerHome/myDir:/data \
 -e PUID=1001 \
 -e PGID=1001 \
 -e PUP_TITLE="MyPupCloud!" \
 germanorizzo/pupcloud:latest

This command will install and run pupcloud, configuring it to:

  • Use port 8080 (Line 4);
  • Map a local dir to path /data in the docker environment (Line 5);
  • Run the server as user/group 1001:1001 (Lines 6-7);
  • Set the title (Line 8).

Note: if you specify PUP_FOLLOW_SYMLINKS, please be aware that the links are resolved in the docker container, so the feature won't probably work. Use multiple bind/mounts inside /data instead.

Tag summary

Content type

Image

Digest

Size

5.7 MB

Last updated

over 4 years ago

docker pull germanorizzo/pupcloud