61 lines
2.5 KiB
Markdown
61 lines
2.5 KiB
Markdown
# Timerr
|
||
|
||
Веб-приложение для учёта выполненных работ, времени и стоимости по клиентам и проектам.
|
||
|
||
## Локальный запуск
|
||
|
||
```powershell
|
||
py -3.12 -m venv .venv
|
||
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
|
||
.\.venv\Scripts\python.exe manage.py migrate
|
||
.\.venv\Scripts\python.exe manage.py createsuperuser
|
||
.\.venv\Scripts\python.exe manage.py runserver
|
||
```
|
||
|
||
Панель технического администрирования: `http://127.0.0.1:8000/django-admin/`.
|
||
|
||
Через неё создаются пользователи, компании, проекты, участники и ставки. Новому пользователю следует задать роль, временный пароль и включить требование смены пароля.
|
||
|
||
## Проверка
|
||
|
||
```powershell
|
||
.\.venv\Scripts\python.exe manage.py check
|
||
.\.venv\Scripts\python.exe -m pytest
|
||
```
|
||
|
||
## Docker image
|
||
|
||
При каждом push в ветку `main` Gitea Actions собирает образ и публикует его в
|
||
Container Registry, а затем создаёт Gitea Release с тегом
|
||
`build-<commit-sha>`:
|
||
|
||
```text
|
||
git.spyk3r.com/spyk3r/timerr:latest
|
||
git.spyk3r.com/spyk3r/timerr:<commit-sha>
|
||
```
|
||
|
||
Для публикации образа добавьте в `Settings → Actions → Secrets` два секрета:
|
||
|
||
- `REGISTRY_USERNAME` — имя пользователя Gitea, которому принадлежит token;
|
||
- `REGISTRY_TOKEN` — personal access token с разрешением `package: Read and Write`.
|
||
|
||
Встроенный `GITEA_TOKEN` используется только для создания release. Для него в
|
||
`Settings → Actions → General` должна быть разрешена запись в releases.
|
||
|
||
Для запуска приватного образа на VPS сначала войдите в registry с помощью
|
||
логина Gitea и personal access token с правом чтения packages:
|
||
|
||
```bash
|
||
docker login git.spyk3r.com
|
||
docker pull git.spyk3r.com/spyk3r/timerr:latest
|
||
docker run -d --name timerr --restart unless-stopped \
|
||
-p 8000:8000 \
|
||
-e DEBUG=0 \
|
||
-e SECRET_KEY='replace-with-a-long-random-secret' \
|
||
-e ALLOWED_HOSTS='your-domain.example' \
|
||
-e CSRF_TRUSTED_ORIGINS='https://your-domain.example' \
|
||
-e DATABASE_NAME=/app/data/timerr.sqlite3 \
|
||
-v timerr-data:/app/data \
|
||
git.spyk3r.com/spyk3r/timerr:latest
|
||
```
|