Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nzambello/work-timer
Time tracking app built with Remix, supports authentication, projects management, and monthly or custom reports
https://github.com/nzambello/work-timer
docker mantine prisma project-management remix remix-run self-hosted time-entries time-tracker time-tracking
Last synced: about 2 months ago
JSON representation
Time tracking app built with Remix, supports authentication, projects management, and monthly or custom reports
- Host: GitHub
- URL: https://github.com/nzambello/work-timer
- Owner: nzambello
- License: gpl-3.0
- Created: 2023-02-14T09:30:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-09T16:09:14.000Z (9 months ago)
- Last Synced: 2024-04-14T00:51:45.422Z (9 months ago)
- Topics: docker, mantine, prisma, project-management, remix, remix-run, self-hosted, time-entries, time-tracker, time-tracking
- Language: TypeScript
- Homepage: https://timer.nzambello.dev
- Size: 2.39 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# WorkTimer
Time tracking app built with Remix, supports authentication, projects management, and monthly or custom reports.
Built for self-hosting: host it anywhere you want, and use it for free. Your time, your data.
View on [DockerHub](https://hub.docker.com/r/nzambello/work-timer).
## Table of contents
- [Features](#features)
- [Pre-built Docker image](#pre-built-docker-image)
- [Docker compose](#docker-compose)
- [Custom deployments or development](#custom-deployment-or-development)
- [Tech stack](#tech-stack)
- [Running locally](#running-locally)
- [Running with Docker](#running-with-docker)
- [Multi-platform docker image](#multi-platform-docker-image)
- [Screenshots](#screenshots)
- [License](#license)## Features
- Time entries management
- Authentication
- Multi-user support, with admin role
- Projects management
- Monthly or custom reports
- Import/Export to CSV[Screenshots](#screenshots)
## Pre-built Docker Image
```bash
docker pull nzambello/work-timer
```If you want to use the pre-built Docker image, you can run it with:
```bash
docker run -d -p 8080:8080 -v /path/to/data:/data/data.db nzambello/work-timer
```If you want to use different defaults, you can build your own image. See [Running with docker](#running-with-docker)
### Docker compose
Basic example:
```yaml
version: '3.8'services:
work-timer:
image: nzambello/work-timer
container_name: work-timer
restart: always
ports:
- 8080:8080
volumes:
- ./dockerData/work-timer:/data # Path to data for DB persistence
```Example of docker-compose.yml with [Traefik](https://traefik.io/) as reverse proxy:
```yaml
work-timer:
depends_on:
- watchtower
image: nzambello/work-timer
container_name: work-timer
restart: always
volumes:
- /dockerData/work-timer:/data # Path to data for DB persistence
labels:
- 'com.centurylinklabs.watchtower.enable=true'
- 'traefik.enable=true'
- 'traefik.http.routers.work-timer.rule=Host(`timer.YOURDOMAIN.com`)'
- 'traefik.http.routers.work-timer.entrypoints=websecure'
- 'traefik.http.routers.work-timer.tls.certresolver=letsencrypt'
- 'traefik.http.routers.work-timer.service=work-timer-service'
- 'traefik.http.services.work-timer-service.loadbalancer.server.port=8080'
```## Custom deployment or development
### Tech Stack
- [Remix](https://remix.run)
- [Prisma](https://prisma.io)
- [SQLite](https://sqlite.org)
- [Mantine](https://mantine.dev)
- [Docker](https://docker.com)### Running Locally
```bash
# Clone the repo
git clone https://github.com/nzambello/work-timer.git
cd work-timer# Install dependencies
yarn install# Setup .env
cp .env.example .env
vim .env# Start the app
yarn dev
```### Running with Docker
```bash
# Clone the repo
git clone https://github.com/nzambello/work-timer.git
cd work-timer# Setup .env
cp .env.example .env
vim .env# Build the image
docker built -t work-timer .# Start the app
docker run -p 127.0.0.1:8080:8080 work-timer
```### Multi-platform Docker image
```bash
docker buildx create --name mybuilder --driver docker-container --bootstrap --use # create a new builder and switch to it using a single command.
docker buildx build --platform linux/amd64,linux/arm64 -t nzambello/work-timer:latest --push .
```## Screenshots
### Light / Dark mode
### Time tracking
### Projects
### Reports
## License
[Nicola Zambello](https://github.com/nzambello) © 2023
[GNU GPLv3](https://github.com/nzambello/work-timer/raw/main/LICENSE)