diff --git a/README.MD b/README.MD index 4bbd1f3..6acc1e7 100644 --- a/README.MD +++ b/README.MD @@ -26,6 +26,15 @@ caddy hash-password --plaintext 'секрет' ``` +Или на python: + +```bash +pip install bcrypt +``` +```bash +python -c "import bcrypt,sys; print(bcrypt.hashpw(sys.argv[1].encode(), bcrypt.gensalt(rounds=12)).decode())" 'секрет' +``` + После изменения файла нужно перезапустить контейнер `caddy`. ## Защита контейнеров @@ -33,8 +42,20 @@ caddy hash-password --plaintext 'секрет' Чтобы ограничить доступ к какому-либо сервису, добавьте к контейнеру метку: ``` -caddy.import: auth_portal_forwarder +caddy.import: auth_forward ``` и обычные метки для виртуального хоста и `reverse_proxy`. Пример для Portainer уже есть в `docker-compose.yml`. После авторизации пользователь возвращается к запрошенному сервису. + +### Открытие пути для API + +Чтобы открыть некий путь без авторизации, добавить лейблы: + +``` + caddy.handle_path: /api/* + caddy.handle_path.0_reverse_proxy: "{{upstreams 9000}}" +``` + +и не прописывать им `caddy.import: auth_forward`. +И наоборот, аналогично можно закрыть авторизацией только нужный путь. \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index edd390d..183dfcd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,8 +33,10 @@ services: networks: [proxy] labels: caddy: port.realy.nothing.help + caddy.handle_path: /api/* + caddy.handle_path.0_reverse_proxy: "{{upstreams 9000}}" caddy.encode: zstd gzip - caddy.import: auth_portal_forwarder + caddy.import: auth_forward caddy.reverse_proxy: "{{upstreams 9000}}" volumes: diff --git a/users.json b/users.json index 8dd6bc9..ff25a6d 100644 --- a/users.json +++ b/users.json @@ -3,8 +3,10 @@ { "username": "deadcxap", "email": "dead@cxap.space", - "password": "$2a$10$5x5iG8uDD/A.zxTCr14iUuLS1d8FgEiH8oi1de6pF2Nl/iZNDBEvG", - "roles": ["admin"] + "password": "$2b$12$s5SZcTu0THrdIHmdqTIuS.Hb89nokYfwF5xSDPSJPZsKoYnFkv61i", + "roles": [ + "admin" + ] } ] -} +} \ No newline at end of file