Docker
Each release publishes ghcr.io/pwnera/artbucket, for amd64 and arm64, tagged
with its version (such as 1.8.1), its minor line (1.8), its major (1) and
latest. The registry lists the tags there are.
docker run -d --name artbucket -p 3000:3000 \ -e DATABASE_URL=postgres://user:pass@db.example.com:5432/artbucket \ -e S3_ENDPOINT=https://s3.eu-central-1.amazonaws.com \ -e S3_REGION=eu-central-1 \ -e S3_BUCKET=acme-assets \ -e S3_ACCESS_KEY_ID=... \ -e S3_SECRET_ACCESS_KEY=... \ -e S3_FORCE_PATH_STYLE=false \ -e APP_URL=https://assets.example.com \ -e BETTER_AUTH_SECRET="$(openssl rand -base64 32)" \ ghcr.io/pwnera/artbucket:1Keep BETTER_AUTH_SECRET somewhere safe: it signs sessions and encrypts
secrets stored in settings. A new one signs everyone out and makes stored
secrets unreadable.
The container:
- listens on port 3000 as the unprivileged
nodeuser - migrates the database before it serves, under a lock, so several replicas can start at once
- runs the sweeper every six hours (deleted assets past 30 days, files nothing holds, and portal requests 90 days past their last use)
- includes
ffmpegfor video thumbnails. For Word, Excel and PowerPoint previews, build on it:FROM ghcr.io/pwnera/artbucket:1, thenUSER root,RUN apk add --no-cache libreoffice,USER node.
Every variable is in Environment.
Building it yourself
Section titled “Building it yourself”docker build -t artbucket .