Skip to content

Docker

Deploying Quicksend with the docker-compose.yaml provided below is the easiest way to get started.

Prerequisites

Make sure you have installed Docker as described in the Docker documentation.

Example docker-compose

docker-compose.yaml

Create a docker-compose.yaml file and paste the contents of this example:

Use .env

Make sure you also copy and use the example .env below!

services:
  frontend:
    image: ${QUICKSEND_IMAGE_SOURCE}quicksend-frontend:${QUICKSEND_VERSION}
    container_name: quicksend_frontend
    restart: unless-stopped
    environment:
      - PUBLIC_QUICKSEND_FRONTEND_URL=${QUICKSEND_FRONTEND_URL}
      - PUBLIC_QUICKSEND_FRONTEND_API_URL=${QUICKSEND_API_URL}
      - PUBLIC_QUICKSEND_FRONTEND_BRAND_LEGAL_DISABLED=${QUICKSEND_FRONTEND_BRAND_LEGAL_DISABLED}
      - PUBLIC_QUICKSEND_FRONTEND_BRAND_LEGAL_PRIVACY_LABEL=${QUICKSEND_FRONTEND_BRAND_LEGAL_PRIVACY_LABEL}
      - PUBLIC_QUICKSEND_FRONTEND_BRAND_LEGAL_PRIVACY_URL=${QUICKSEND_FRONTEND_BRAND_LEGAL_PRIVACY_URL}
      - PUBLIC_QUICKSEND_FRONTEND_BRAND_LEGAL_TERMS_LABEL=${QUICKSEND_FRONTEND_BRAND_LEGAL_TERMS_LABEL}
      - PUBLIC_QUICKSEND_FRONTEND_BRAND_LEGAL_TERMS_URL=${QUICKSEND_FRONTEND_BRAND_LEGAL_TERMS_URL}
      - PUBLIC_QUICKSEND_FRONTEND_BRAND_LEGAL_IMPRINT_LABEL=${QUICKSEND_FRONTEND_BRAND_LEGAL_IMPRINT_LABEL}
      - PUBLIC_QUICKSEND_FRONTEND_BRAND_LEGAL_IMPRINT_URL=${QUICKSEND_FRONTEND_BRAND_LEGAL_IMPRINT_URL}
    ports:
      - "3000:3000"
    networks:
      - quicksend_network

  api:
    image: ${QUICKSEND_IMAGE_SOURCE}quicksend-api:${QUICKSEND_VERSION}
    container_name: quicksend_api
    restart: unless-stopped
    environment:
      - QUICKSEND__FRONTEND__URL=${QUICKSEND_FRONTEND_URL}
      - QUICKSEND__SEND__QUOTAMB=${QUICKSEND_SEND_QUOTAMB}
      - QUICKSEND__SEND__TIMETOLIVE=${QUICKSEND_SEND_TIMETOLIVE}
      - QUICKSEND__SEND__GLOBALQUOTAMB=${QUICKSEND_SEND_GLOBALQUOTAMB}
    ports:
      - "3001:8080"
    volumes:
      - ${QUICKSEND_STORAGE_PATH}:/storage
    networks:
      - quicksend_network

networks:
  quicksend_network:

.env

Create a .env file in the same directory and paste this examples contents. Make sure you change all relevant settings to fit your deployment.

# REQUIRES CHANGE: Quicksend version to deploy
QUICKSEND_VERSION=0.2.0-beta.1

# REQUIRES CHANGE: URL of the Quicksend web interface
QUICKSEND_FRONTEND_URL=https://example.com

# REQUIRES CHANGE: URL of the Quicksend API
QUICKSEND_API_URL=https://api.example.com

# REQUIRES CHANGE: Host-directory API storage directory will be bound to
QUICKSEND_STORAGE_PATH=./storage

# Quota per Send in MB
QUICKSEND_SEND_QUOTAMB=1000

# How long a Send stays available for before it expires in seconds
QUICKSEND_SEND_TIMETOLIVE=86400

# How much space will be provisioned in total before API refuses to create new Sends (excludes expired Sends)
QUICKSEND_SEND_GLOBALQUOTAMB=100000

# Source of the Quicksend container image (official: "quanticmirror/")
QUICKSEND_IMAGE_SOURCE=quanticmirror/

# Branding
QUICKSEND_FRONTEND_BRAND_LEGAL_DISABLED=false
QUICKSEND_FRONTEND_BRAND_LEGAL_PRIVACY_LABEL=Privacy policy
QUICKSEND_FRONTEND_BRAND_LEGAL_PRIVACY_URL=https://codeberg.org/quanticmirror/quicksend
QUICKSEND_FRONTEND_BRAND_LEGAL_TERMS_LABEL=Terms of service
QUICKSEND_FRONTEND_BRAND_LEGAL_TERMS_URL=https://codeberg.org/quanticmirror/quicksend
QUICKSEND_FRONTEND_BRAND_LEGAL_IMPRINT_LABEL=Imprint
QUICKSEND_FRONTEND_BRAND_LEGAL_IMPRINT_URL=https://codeberg.org/quanticmirror/quicksend

Starting the container

After creating and apporpriately adjusting the two files you can start the containers with:

docker compose up -d

Verify everything is in order by checking the logs:

docker compose logs -f