1
0
Fork 0
mirror of https://github.com/EDeev/deev.space.git synced 2026-10-07 20:49:59 +03:00

Compare commits

...

3 commits
v2.0.0 ... main

Author SHA1 Message Date
b893c8a5ed Образы на git.deev.su вместо dcr.deev.su: реестр zot выведен из работы, копию из GHCR делает синхронизатор 2026-10-06 17:04:06 +03:00
9770b1092f settings: заглушка ключа вынесена в константу DEV_SECRET_KEY (ruff S105) 2026-10-02 12:47:43 +00:00
7d5ec17254 settings: запуск в бою блокируется только с ключом-заглушкой
Проверка по префиксу django-insecure отвергала и настоящие ключи, сгенерированные
startproject. Теперь ошибка только если DJANGO_SECRET_KEY не задан и используется
значение по умолчанию из settings.py.
2026-10-02 12:45:37 +00:00
5 changed files with 8 additions and 13 deletions

View file

@ -19,17 +19,11 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/login-action@v3
with:
registry: dcr.deev.su
username: ${{ secrets.ZOT_USERNAME }}
password: ${{ secrets.ZOT_PASSWORD }}
- id: meta - id: meta
uses: docker/metadata-action@v5 uses: docker/metadata-action@v5
with: with:
images: | images: |
ghcr.io/edeev/deev.space ghcr.io/edeev/deev.space
dcr.deev.su/edeev/deev.space
tags: | tags: |
type=semver,pattern={{version}} type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}}.{{minor}}

View file

@ -36,7 +36,7 @@ docker compose exec web python manage.py createsuperuser
``` ```
The site runs at `http://localhost:8000`, the admin at `/admin/`. Prebuilt image: The site runs at `http://localhost:8000`, the admin at `/admin/`. Prebuilt image:
`docker pull ghcr.io/edeev/deev.space` or `docker pull dcr.deev.su/edeev/deev.space`. `docker pull ghcr.io/edeev/deev.space` or `docker pull git.deev.su/edeev/deev.space`.
## Installing without Docker ## Installing without Docker
@ -100,7 +100,7 @@ ratings and comments, and an anonymous visitor middleware. Details (in Russian):
[deev.space](https://deev.space) runs on a VPS: gunicorn under a dedicated user behind nginx with a [deev.space](https://deev.space) runs on a VPS: gunicorn under a dedicated user behind nginx with a
Let's Encrypt certificate; nginx serves static files and uploads. Prometheus monitors availability and Let's Encrypt certificate; nginx serves static files and uploads. Prometheus monitors availability and
certificate expiry. GitHub Actions builds the Docker image on every `v*` tag and publishes it to GitHub certificate expiry. GitHub Actions builds the Docker image on every `v*` tag and publishes it to GitHub
Packages and to the `dcr.deev.su` registry. Packages and to the `git.deev.su` registry.
## Development ## Development

View file

@ -36,7 +36,7 @@ docker compose exec web python manage.py createsuperuser
``` ```
Сайт откроется на `http://localhost:8000`, админка — на `/admin/`. Готовый образ: Сайт откроется на `http://localhost:8000`, админка — на `/admin/`. Готовый образ:
`docker pull ghcr.io/edeev/deev.space` или `docker pull dcr.deev.su/edeev/deev.space`. `docker pull ghcr.io/edeev/deev.space` или `docker pull git.deev.su/edeev/deev.space`.
## Установка без Docker ## Установка без Docker
@ -100,7 +100,7 @@ flowchart LR
[deev.space](https://deev.space) работает на VPS: gunicorn под отдельным пользователем за nginx с [deev.space](https://deev.space) работает на VPS: gunicorn под отдельным пользователем за nginx с
сертификатом Let's Encrypt, статика и загрузки отдаются nginx. Доступность и срок сертификата сертификатом Let's Encrypt, статика и загрузки отдаются nginx. Доступность и срок сертификата
отслеживает Prometheus. Docker-образ собирает GitHub Actions на каждый тег `v*` и публикует в GitHub отслеживает Prometheus. Docker-образ собирает GitHub Actions на каждый тег `v*` и публикует в GitHub
Packages и в реестр `dcr.deev.su`. Packages и в реестр `git.deev.su`.
## Разработка ## Разработка

View file

@ -13,7 +13,7 @@ docker compose exec web python manage.py createsuperuser
```bash ```bash
docker pull ghcr.io/edeev/deev.space:latest docker pull ghcr.io/edeev/deev.space:latest
docker pull dcr.deev.su/edeev/deev.space:latest docker pull git.deev.su/edeev/deev.space:latest
``` ```
За обратным прокси укажите домены в `DJANGO_ALLOWED_HOSTS` и `DJANGO_CSRF_TRUSTED_ORIGINS`, а За обратным прокси укажите домены в `DJANGO_ALLOWED_HOSTS` и `DJANGO_CSRF_TRUSTED_ORIGINS`, а

View file

@ -9,11 +9,12 @@ load_dotenv()
BASE_DIR = Path(__file__).resolve().parent.parent BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'django-insecure-dev-only-change-me') DEV_SECRET_KEY = 'django-insecure-dev-only-change-me' # noqa: S105 — заглушка только для разработки
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', DEV_SECRET_KEY)
DEBUG = os.environ.get('DJANGO_DEBUG', 'False') == 'True' DEBUG = os.environ.get('DJANGO_DEBUG', 'False') == 'True'
if not DEBUG and SECRET_KEY.startswith('django-insecure'): if not DEBUG and SECRET_KEY == DEV_SECRET_KEY:
raise ImproperlyConfigured('Задайте DJANGO_SECRET_KEY для запуска с DJANGO_DEBUG=False') raise ImproperlyConfigured('Задайте DJANGO_SECRET_KEY для запуска с DJANGO_DEBUG=False')
ALLOWED_HOSTS = os.environ.get( ALLOWED_HOSTS = os.environ.get(