Timecrack tracks work hours, organizes time by projects, and helps teams improve productivity.
582
About • Features • Setup • Environment Variables • License
Timecrack is a time tracking application, designed for simplicity and efficiency. It lets you define your projects and tasks, and then track the time you spend on them. You can also add notes to your time entries, and view reports of your time usage.
This Docker image is built on PHP 8.2 with Apache and is designed to run the Laravel-based Timecrack application.
On container startup, the entrypoint script automatically generates the Laravel .env file from Docker environment
variables, runs database migrations, and caches the configuration for optimal performance.
The application allows you to manage and organize your time trackings.
To clone and run this application, you'll need Docker installed on your computer. From your command line:
# Start a MySQL instance
docker run -d --name timecrack-db \
-e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=timecrack \
mysql:8.0
# Pull and run the app
docker run -d --name timecrack-app \
--link timecrack-db:db \
-p 80:80 \
-e APP_URL=http://localhost \
-e DB_HOST=db \
-e DB_DATABASE=timecrack \
-e DB_USERNAME=root \
-e DB_PASSWORD=secret \
alextselegidis/timecrack:latest
You can use the following docker-compose.yml file to locally set up Timecrack with a MySQL database:
services:
timecrack:
image: alextselegidis/timecrack:latest
restart: always
ports:
- '80:80'
environment:
- APP_NAME=Timecrack
- APP_ENV=production
- APP_DEBUG=false
- APP_URL=http://localhost
- DB_CONNECTION=mysql
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=timecrack
- DB_USERNAME=root
- DB_PASSWORD=secret
- MAIL_MAILER=smtp
- MAIL_HOST=smtp.example.org
- MAIL_PORT=587
- MAIL_USERNAME=
- MAIL_PASSWORD=
- MAIL_ENCRYPTION=tls
- [email protected]
- MAIL_FROM_NAME=Timecrack
volumes:
- timecrack-storage:/var/www/html/storage
mysql:
image: mysql:8.0
restart: always
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=timecrack
volumes:
- mysql:/var/lib/mysql
volumes:
timecrack-storage:
mysql:
The Docker image uses standard Laravel environment variables. All variables are passed through to the .env file that is generated on container startup.
| Variable | Default | Description |
|---|---|---|
APP_NAME | Timecrack | Application name |
APP_ENV | production | Application environment (production, local, testing) |
APP_KEY | (auto-generated) | Application encryption key. If left empty, one is generated automatically on first start |
APP_DEBUG | false | Enable debug mode (true / false) |
APP_URL | http://localhost | The public URL of the application |
| Variable | Default | Description |
|---|---|---|
LOG_CHANNEL | stack | Laravel log channel (stack, single, daily, stderr, etc.) |
LOG_LEVEL | error | Minimum log level (debug, info, notice, warning, error, critical) |
| Variable | Default | Description |
|---|---|---|
DB_CONNECTION | mysql | Database driver (mysql, pgsql, sqlite) |
DB_HOST | db | Database hostname |
DB_PORT | 3306 | Database port |
DB_DATABASE | timecrack | Database name |
DB_USERNAME | root | Database username |
DB_PASSWORD | secret | Database password |
| Variable | Default | Description |
|---|---|---|
CACHE_DRIVER | file | Cache driver (file, redis, memcached, database) |
SESSION_DRIVER | file | Session driver (file, redis, database, cookie) |
SESSION_LIFETIME | 120 | Session lifetime in minutes |
QUEUE_CONNECTION | sync | Queue connection (sync, redis, database) |
BROADCAST_DRIVER | log | Broadcast driver (log, redis, pusher) |
FILESYSTEM_DISK | local | Default filesystem disk |
| Variable | Default | Description |
|---|---|---|
REDIS_HOST | 127.0.0.1 | Redis hostname |
REDIS_PASSWORD | null | Redis password |
REDIS_PORT | 6379 | Redis port |
| Variable | Default | Description |
|---|---|---|
MAIL_MAILER | smtp | Mail driver (smtp, sendmail, mailgun, ses, log) |
MAIL_HOST | mailpit | SMTP hostname |
MAIL_PORT | 1025 | SMTP port |
MAIL_USERNAME | null | SMTP username |
MAIL_PASSWORD | null | SMTP password |
MAIL_ENCRYPTION | null | SMTP encryption (tls, ssl, or null) |
MAIL_FROM_ADDRESS | [email protected] | Sender email address |
MAIL_FROM_NAME | Timecrack | Sender name |
On every container start the entrypoint script will:
.env file from the Docker environment variables.storage/ and bootstrap/cache/.APP_KEY if one was not provided.php artisan migrate --force to apply pending database migrations.storage:link symbolic link.Code Licensed Under GPL v3.0 | Content Under CC BY 3.0
Website alextselegidis.com · GitHub alextselegidis · Twitter @alextselegidis
Content type
Image
Digest
sha256:45fde84e8…
Size
225.4 MB
Last updated
12 days ago
docker pull alextselegidis/timecrack