Skip to content

Latest commit

 

History

History
81 lines (68 loc) · 4.25 KB

DOCKER.md

File metadata and controls

81 lines (68 loc) · 4.25 KB

Docker

The fastest way to deploy PictShare is via the official Docker package

docker run -d -p 80:80 -e "TITLE=My own PictShare" -e "URL=http://localhost/" hascheksolutions/pictshare:2

Docker setup

Usage

Building it

docker build -t pictshare -f docker/Dockerfile .

Quick start

docker run -d -p 80:80 --name=pictshare hascheksolutions/pictshare:2

Persistent data

mkdir /data/pictshareuploads
chown 1000 -R /data/pictshareuploads
docker run -d -v /data/pictshareuploads:/var/www/data -p 80:80 --name=pictshare hascheksolutions/pictshare:2

Persistent data with increased max upload size

mkdir /data/pictshareuploads
chown 1000 -R /data/pictshareuploads
docker run -d -e "MAX_UPLOAD_SIZE=1024" -v /data/pictshareuploads:/var/www/data -p 80:80 --name=pictshare hascheksolutions/pictshare:2

Development

Using these commands it will mount the current directory in the docker container so you can develop locally without building after each change.

docker build -t pictshare -f docker/Dockerfile .
docker run -it --rm --name pictshare-dev -p 8080:80 -v $(pwd):/var/www -v $(pwd)/data:/var/www/data -e "URL=http://localhost:8080/" -e "SKIP_FILEPERMISSIONS=true" pictshare

ENV Variables

There are some ENV variables that only apply to the Docker image

  • MAX_UPLOAD_SIZE (int | size in MB that will be used for nginx. default 50)

Every other variable can be referenced against the default PictShare configuration file.

  • TITLE (string | Title of the page)

  • URL (string | URL that will be linked to new uploads)

  • PNG_COMPRESSION (int | 0-9 how much compression is used. note that this never affects quality. default: 6)

  • JPEG_COMPRESSION (int | 0-100 how high should the quality be? More is better. default: 90)

  • MASTER_DELETE_CODE (string | code if added to any url, will delete the image)

  • MASTER_DELETE_IP (string | ip which can delete any image)

  • ALLOWED_SUBNET (CIDR IP range (can be comma separated) | IP subnets which are allowed to upload files)

  • ALLOW_BLOATING (true/false | can images be bloated to higher resolutions than the originals)

  • UPLOAD_CODE (string | Code that has to be supplied via POST or GET, to upload an image)

  • UPLOAD_FORM_LOCATION (string | absolute path where upload gui will be shown)

  • LOW_PROFILE (string | won't display error messages on failed uploads)

  • IMAGE_CHANGE_CODE (string | code if provided, needs to be added to image to apply filter/rotation/etc)

  • LOG_UPLOADER (true/false | log IPs of uploaders)

  • MAX_RESIZED_IMAGES (int | how many versions of a single image may exist? -1 for infinite)

  • SHOW_ERRORS (true/false | show upload/size/server errors?)

  • SKIP_FILEPERMISSIONS (true/false | enables/disables fixing file permissions on start. default is false)

  • ALWAYS_WEBP (true/false | Always tries to server JPGs as WEBp if the client supports it. Default is false)

  • ALT_FOLDER (path to a folder where all hashes will be copied to and looked for offsite backup via nfs for example)

  • S3_BUCKET (string | Name of your S3 bucket)

  • S3_ACCESS_KEY (string | Access Key for your Bucket)

  • S3_SECRET_KEY (string | Secrety Key)

  • S3_REGION (string | S3 bucket region)

  • S3_ENDPOINT (url | If you are using a selfhosted version of S3 like Minio, put your URL here)

  • ENCRYPTION_KEY (string | If you want to use encryption for storage controllers, put your encryption key here. Read more)

  • FTP_SERVER (string | IP or hostname of your FTP Server )

  • FTP_PORT (int | Port of your FTP server (defaults to 21) )

  • FTP_SSL (true/false | If FTP server supports SSL-FTP (not sFTP, thats not the same!))

  • FTP_USER (string | FTP Username)

  • FTP_PASS (string | FTP Password)

  • FTP_BASEDIR (string | Base path where files will be stored. Must end with / eg /web/pictshare/)

  • CONTENTCONTROLLERS (CSV string | If set, will whitelist content controllers for your instance. Must be uppercase and can be comma separated. Example: Only Pictures: IMAGE, Pictures and Videos: IMAGE,VIDEO)