Singkat cerita ini kebutuhan client:
- File share static dengan protokol http. Kenapa http? karena IOT device nya belum bisa baca https. Kenapa static? karena file nya ga akan berubah
- Pake domain biar gampang manggilnya
- Orang lain di luar si client ga boleh ada yang nge-list file
Solusi nya:
- Saya pake image dari halvernus - static file server
- Simpan file yang dibutuhkan client di folder, misal /home/ipang/static-file-server/ lalu menjalankan
docker run -d \
-v /home/ipang/static-file-server/:/web \
-p 77:8080 \
-c SHOW_LISTING=false \
--name staticfile-ctr \
halverneus/static-file-server:latest
Sebenernya kan bisa tinggal config di nginx buat root /home/ipang/static-file-server
, udah beres. Pake docker karena pake fitur isolization nya & juga image halvernus - static file server, gampang dan customizable
Berikut contoh file swarm nya:
version: '3.3'
services:
staticfile:
image: halverneus/static-file-server:latest
networks:
- traefik-public
environment:
- FOLDER=/content
- SHOW_LISTING=false
- URL_PREFIX=/rahasia
volumes:
- type: bind
source: /home/username/test-staticfile
target: /content
deploy:
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.staticfile-http.rule=Host(`staticfile.domain.com`)
- traefik.http.routers.staticfile-http.entrypoints=http
- traefik.http.middlewares.secure-headers-staticfile.headers.customresponseheaders.x-robots-tag=noindex, nofollow, nosnippet, noarchive, noimageindex, notranslate
- traefik.http.middlewares.secure-headers-staticfile.headers.customresponseheaders.x-content-type-options=nosniff
- traefik.http.middlewares.secure-headers-staticfile.headers.customresponseheaders.x-xss-protection= 1; mode=block
- traefik.http.routers.staticfile-http.middlewares=secure-headers-staticfile
- traefik.http.services.staticfile.loadbalancer.server.port=8080
networks:
traefik-public:
external: true

Test Lewat Browser

Test Lewat Terminal