Public | Automated Build

Last pushed: 2 years ago
Short Description
Reverse proxy for AWS S3 with basic authentication and symlink support.
Full Description

Reverse proxy for AWS S3 w/ basic authentication

Forked from
Difference from the original is the ability to add a symlink.json to S3. This can then be included in the URL and the contents of the JSON file is used to replace the initial part of the URL.
For instance adding symlink.json containing { "URL" : "/test2" } to folder /test1 in a bucket would mean the object /test2/hello could be accessed with the URL /test1/hello.

Supported tags and respective Dockerfile links:
・latest (prod/1.5/Dockerfile)


This is a reverse proxy for AWS S3, which is able to provide basic authentication as well.
You don't need to configure a Bucket for Website Hosting. -> s3://backet/access/index.html



1. Set environment variables

Environment Variables Description Required Default
AWS_S3_BUCKET The S3 bucket to be proxied with this app. *
AWS_S3_KEY_PREFIX You can configure S3 object key prefix. -
AWS_REGION The AWS region where the S3 bucket exists. us-east-1
AWS_ACCESS_KEY_ID AWS access key for API access. EC2 Instance Role
AWS_SECRET_ACCESS_KEY AWS secret key for API access. EC2 Instance Role
HTTP_CACHE_CONTROL Overrides S3's HTTP Cache-Control header. S3 Object metadata
HTTP_EXPIRES Overrides S3's HTTP Expires header. S3 Object metadata
BASIC_AUTH_USER User for basic authentication. -
BASIC_AUTH_PASS Password for basic authentication. -
SSL_CERT_PATH TLS: cert.pem file path. -
SSL_KEY_PATH TLS: key.pem file path. -
APP_PORT The port number to be assigned for listening. 80
ACCESS_LOG Send access logs to /dev/stdout. false

2. Run the application

docker run -d -p 8080:80 -e AWS_REGION -e AWS_S3_BUCKET pottava/s3-proxy

  • with basic auth:

docker run -d -p 8080:80 -e AWS_REGION -e AWS_S3_BUCKET -e BASIC_AUTH_USER -e BASIC_AUTH_PASS pottava/s3-proxy

  • with TLS:

docker run -d -p 8080:80 -e AWS_REGION -e AWS_S3_BUCKET -e SSL_CERT_PATH -e SSL_KEY_PATH pottava/s3-proxy

  • with docker-compose.yml:
  image: pottava/s3-proxy
    - 8080:80
    - AWS_REGION=ap-northeast-1
    - BASIC_AUTH_USER=admin
    - BASIC_AUTH_PASS=password
    - ACCESS_LOG=true
  container_name: proxy

Copyright and license

Code released under the MIT license.

Docker Pull Command
Source Repository