PsiTransfer (uploader) にnginxでuploadにアクセス制限をかける

  • 1
    いいね
  • 0
    コメント

upload.png

参考

https://hub.docker.com/r/psitrax/psitransfer/
https://hub.docker.com/r/psitrax/psitransfer/~/dockerfile/

dockerのimageがalpineベースで40MBほどと小さい。

https://github.com/psi-4ward/psitransfer

アクセス制限

uploadできる人を制限したかった。basic認証でもよいですね。

ファイル準備
mkdir data
chown -R 1000 data 

mkdir nginx
touch nginx/proxy

touch docker-compose.yml
docker-compose.yml
uploader:
  image: psitrax/psitransfer
  restart: always
  #ports:
  # - "3000:3000"
  volumes:
   - /etc/localtime:/etc/localtime
   - ./data:/data

nginx:
  image: nginx
  restart: always
  volumes:
    - ./nginx/proxy:/etc/nginx/conf.d/default.conf
  ports:
    - "8080:8080"
  links:
    - uploader
nginx/proxy
server {
    listen 8080;
    location / {
        limit_except GET {
            allow XX.XX.XX.XX; #uploadを許可したいIP
            allow 127.0.0.1;
            deny all;
        }
        proxy_pass http://uploader:3000;
        break;
    }
}
起動
docker-compose up -d

http://ipaddress:8080/ にアクセス

許可しているIP以外からのアクセスはuploadが失敗すること、
ダウンロードは可能なことを確認。

block.png