🏃Running Pupcloud
Pupcloud is distributed as a single executable file. Download and unpack the proper file for your OS/arch.
Once done, just execute it with the directory to serve as an argument:
Then, open http://localhost:17178
with a browser. As simple as that!
Runpupcloud --help
to see the other configuration options:
enable "write" operations (delete/cut/paste/upload...;
-E
or--allow-edits
);setup authentication (
-P
or-H
);setup folder sharing (
--share-profile
/--share-profiles
,--share-port
,--share-prefix
)specify a title/header for the web UI page (
--title
);use a different port then the default of 17178 (
-p
);bind to a network interface (
--bind-to
);instruct pupcloud to follow symlinks (
--follow-symlinks
);specify a maximum size for upload, in Megabytes (
--max-upload-size
).
By default, it's forbidden to run it as root. Use --allow-root
if you (really) want to.
Configure by env vars
Every CLI parameter can be specified via environment variable. If the corresponding env var is specified, it overwrites a CLI parameter. This is useful e.g. in Docker.
Env vars are mapped to CLI params as such:
--root
, -r
PUP_ROOT
PUP_ROOT=./
--bind-to
PUP_BIND_TO
PUP_BIND_TO=192.168.1.0
--port
, -p
PUP_PORT
PUP_PORT=8080
--title
PUP_TITLE
PUP_TITLE=WowSite
--password
, -P
PUP_PASSWORD
PUP_PASSWORD=ciao
--pwd-hash
, -H
PUP_PWD_HASH
PUP_PWD_HASH=5302bf
--allow-edits
, -E
PUP_ALLOW_EDITS
PUP_ALLOW_EDITS=1
--share-profile
nothing
--share-profiles
PUP_SHARE_PROFILES
PUP_SHARE_PROFILES=k1:v1,k2:v2
--share-prefix
PUP_SHARE_PREFIX
PUP_SHARE_PREFIX=http://localhost:12345
--share-port
PUP_SHARE_PORT
PUP_SHARE_PORT=12345
--max-upload-size
PUP_MAX_UPLOAD_SIZE
PUP_MAX_UPLOAD_SIZE=64
--allow-root
PUP_ALLOW_ROOT
PUP_ALLOW_ROOT=1
--follow-symlinks
PUP_FOLLOW_SYMLINKS
PUP_FOLLOW_SYMLINKS=1
The boolean env vars (PUP_ALLOW_EDITS
, PUP_ALLOW_ROOT
, PUP_FOLLOW_SYMLINKS
) are considered only when they are enabled, i.e. set to 1
. They cannot be used to deactivate a CLI parameter.
Write a "config file"
Pupcloud can't be configured with a config file. It's an explicit design choice, I wanted to limit all the "cruft" normally involved in installing an application... to the extreme. One day this might change though (see Discussion #26 for a short discussion).
For now, what can be done is to use the env vars to build a shell script that looks like a config file; something like:
or inline:
Last updated