mirror of
https://github.com/deadcxap/init_scripts.git
synced 2026-07-02 05:43:40 +03:00
d71d3d08e0
правка конфигов
61 lines
2.0 KiB
Markdown
61 lines
2.0 KiB
Markdown
# Bootstrap
|
|
|
|
Роль поднимает Portainer и настраивает аутентификацию через модуль [caddy-security](https://github.com/greenpau/caddy-security).
|
|
Портал авторизации доступен на `auth.realy.nothing.help`, а настройки пользователей находятся в файле `users.json`.
|
|
|
|
## Пользователи
|
|
|
|
Файл `users.json` содержит массив пользователей. Пример:
|
|
|
|
```json
|
|
{
|
|
"users": [
|
|
{
|
|
"username": "deadcxap",
|
|
"email": "dead@cxap.space",
|
|
"password": "$2a$10$5x5iG8uDD/A.zxTCr14iUuLS1d8FgEiH8oi1de6pF2Nl/iZNDBEvG",
|
|
"roles": ["admin"]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Хэш пароля можно получить командой:
|
|
|
|
```bash
|
|
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`.
|
|
|
|
## Защита контейнеров
|
|
|
|
Чтобы ограничить доступ к какому-либо сервису, добавьте к контейнеру метку:
|
|
|
|
```
|
|
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`.
|
|
И наоборот, аналогично можно закрыть авторизацией только нужный путь. |