Re: [tutorial] Raspberry Pi – Docker, Proxy, Let’s Encrypt, SUPLA, SUPLA-Scripts...
: ndz lut 17, 2019 12:00 pm
1. Jeżeli na routerze z LEDE/Openwrt miałeś jakieś usługi www to nic nie stoi na przeszkodzie by je przenieść na malinę, ale nie muszą być już na standardowych portach. Tam gdzie będziesz miał NAT możesz to swobodnie zmienić, lub zdockeryzować sobie te usługi i wstawić za proxy, wtedy wszystko będzie działać na standardowych 80 i 443 TCP i po problemie. Osobiście sugeruję NATowanie 1:1 dla tych portów na adres maliny, a dlaczego to widać kilka postów wyżej.
2. Aby wszystko nam działało prawidłowo, musi to działać w kontenerze. Poleceniem tylko klonuje źródeła z githuba.
3. Celowo nie załączałem jak ma plik wyglądać, bo to może się zmieniać wraz z rozwojem projektu docker-compose-letsencrypt-nginx-proxy-companion. Zmiana jakiej dokonujesz w pliku dotyczy wpisu z image, z którego będzie pochodził kontener. Commit zawiera - i +
Spójrz jak u mnie wyglądać docker-compose.yml
4. Ważność certyfikatu to trzy miesiące, ale odnawianie odbywa się automatycznie. Zacytuję pierwsze zdanie z readme
With this repo you will be able to set up your server with multiple sites using a single NGINX proxy to manage your connections, automating your apps container (port 80 and 443) to auto renew your ssl certificates with Let´s Encrypt.
5. Innych systemów nie testowałem, bo nie było takiej potrzeby. Raspbian jest zoptymalizowaną dystrybucją dla tego sprzętu więc po co kombinować z innymi?
2. Aby wszystko nam działało prawidłowo, musi to działać w kontenerze. Poleceniem tylko klonuje źródeła z githuba.
3. Celowo nie załączałem jak ma plik wyglądać, bo to może się zmieniać wraz z rozwojem projektu docker-compose-letsencrypt-nginx-proxy-companion. Zmiana jakiej dokonujesz w pliku dotyczy wpisu z image, z którego będzie pochodził kontener. Commit zawiera - i +
Spójrz jak u mnie wyglądać docker-compose.yml
Kod: Zaznacz cały
version: '3'
services:
nginx-web:
image: nginx
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
container_name: ${NGINX_WEB:-nginx-web}
restart: always
ports:
- "${IP:-0.0.0.0}:${DOCKER_HTTP:-80}:80"
- "${IP:-0.0.0.0}:${DOCKER_HTTPS:-443}:443"
volumes:
- ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
- ${NGINX_FILES_PATH:-./data}/vhost.d:/etc/nginx/vhost.d
- ${NGINX_FILES_PATH:-./data}/html:/usr/share/nginx/html
- ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
- ${NGINX_FILES_PATH:-./data}/htpasswd:/etc/nginx/htpasswd:ro
logging:
driver: ${NGINX_WEB_LOG_DRIVER:-json-file}
options:
max-size: ${NGINX_WEB_LOG_MAX_SIZE:-4m}
max-file: ${NGINX_WEB_LOG_MAX_FILE:-10}
nginx-gen:
image: wouterds/rpi-docker-gen
command: -notify-sighup ${NGINX_WEB:-nginx-web} -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
container_name: ${DOCKER_GEN:-nginx-gen}
restart: always
volumes:
- ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
- ${NGINX_FILES_PATH:-./data}/vhost.d:/etc/nginx/vhost.d
- ${NGINX_FILES_PATH:-./data}/html:/usr/share/nginx/html
- ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
- ${NGINX_FILES_PATH:-./data}/htpasswd:/etc/nginx/htpasswd:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
logging:
driver: ${NGINX_GEN_LOG_DRIVER:-json-file}
options:
max-size: ${NGINX_GEN_LOG_MAX_SIZE:-2m}
max-file: ${NGINX_GEN_LOG_MAX_FILE:-10}
nginx-letsencrypt:
image: wouterds/rpi-docker-letsencrypt-nginx-proxy-companion
container_name: ${LETS_ENCRYPT:-nginx-letsencrypt}
restart: always
volumes:
- ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
- ${NGINX_FILES_PATH:-./data}/vhost.d:/etc/nginx/vhost.d
- ${NGINX_FILES_PATH:-./data}/html:/usr/share/nginx/html
- ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
NGINX_DOCKER_GEN_CONTAINER: ${DOCKER_GEN:-nginx-gen}
NGINX_PROXY_CONTAINER: ${NGINX_WEB:-nginx-web}
logging:
driver: ${NGINX_LETSENCRYPT_LOG_DRIVER:-json-file}
options:
max-size: ${NGINX_LETSENCRYPT_LOG_MAX_SIZE:-2m}
max-file: ${NGINX_LETSENCRYPT_LOG_MAX_FILE:-10}
networks:
default:
external:
name: ${NETWORK:-webproxy}
With this repo you will be able to set up your server with multiple sites using a single NGINX proxy to manage your connections, automating your apps container (port 80 and 443) to auto renew your ssl certificates with Let´s Encrypt.
5. Innych systemów nie testowałem, bo nie było takiej potrzeby. Raspbian jest zoptymalizowaną dystrybucją dla tego sprzętu więc po co kombinować z innymi?