Files
TimeTracker/INSTALLATION.md
T
Dries Peeters 5e45bbd801 chore: update root config, Dockerfile, README, and GitHub workflows
- Update .gitignore, Dockerfile, INSTALLATION.md, README.md
- Update cd-development, cd-release, and migration-check workflows
2026-03-15 10:17:19 +01:00

88 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TimeTracker Installation
This guide walks you through installing and running TimeTracker. For a quick overview, see the [README Quick Start](README.md#-quick-start).
## Prerequisites
- **Docker** 20.10+ and **Docker Compose** 2.0+
- **Git**
- **2GB+ RAM** for Docker containers
- **Ports:** 80/443 (HTTPS) or 8080 (HTTP)
Install Docker for your platform: [Docker Installation Guide](https://docs.docker.com/get-docker/).
## Quick Install (Docker with HTTPS)
1. Clone the repository:
```bash
git clone https://github.com/drytrix/TimeTracker.git
cd TimeTracker
```
2. Create your environment file from the template:
```bash
cp env.example .env
```
3. Edit `.env` and set at least:
- **SECRET_KEY** — Required for sessions and CSRF. Generate one:
```bash
python -c "import secrets; print(secrets.token_hex(32))"
```
- **TZ** — Your timezone (e.g. `America/New_York`, `Europe/Brussels`).
- **CURRENCY** — Default currency (e.g. `USD`, `EUR`).
4. Start the stack:
```bash
docker-compose up -d
```
5. Open **https://localhost** in your browser. The first run may show a self-signed certificate warning; proceed to continue.
The **first user who logs in** is created as an admin (or use `ADMIN_USERNAMES` in `.env` to predefine admin usernames).
## First Login and Minimal Config
- Log in with the username you configured (e.g. from `ADMIN_USERNAMES`) or the first account you create.
- In **Admin → Settings** you can adjust timezone, currency, and other options.
- See [Getting Started](docs/GETTING_STARTED.md) for initial setup and core workflows.
## Alternative: SQLite Quick Test
To try TimeTracker without PostgreSQL:
```bash
git clone https://github.com/drytrix/TimeTracker.git
cd TimeTracker
docker-compose -f docker/docker-compose.local-test.yml up --build
```
Then open **http://localhost:8080**. No `.env` is required for this compose file. SQLite is for evaluation only; use PostgreSQL for production.
## Production Deployment
For production:
- Use a strong **SECRET_KEY** and keep `.env` out of version control.
- Prefer **PostgreSQL** (included in the default Docker Compose setup).
- Put the app behind HTTPS (reverse proxy or Docker with HTTPS compose).
Detailed steps and options:
- [Docker Compose Setup](docs/admin/configuration/DOCKER_COMPOSE_SETUP.md) — Full configuration and env reference
- [Docker Public Setup](docs/admin/configuration/DOCKER_PUBLIC_SETUP.md) — Production deployment with published images
## Troubleshooting
| Problem | Documentation |
|--------|----------------|
| Docker wont start | [Docker Startup Troubleshooting](docs/admin/configuration/DOCKER_STARTUP_TROUBLESHOOTING.md) |
| Database connection errors | [Database Connection Troubleshooting](docker/TROUBLESHOOTING_DB_CONNECTION.md) |
| CSRF or session errors | [CSRF Troubleshooting](docs/admin/security/CSRF_TROUBLESHOOTING.md) |
| Port already in use | Change ports in your `docker-compose` file or stop the conflicting service |
For more help, see the [Documentation Index](docs/README.md) and [Support](README.md#-support).