Time tracking app built with Remix, supports authentication, projects management, and monthly or custom reports
WorkTimer is a time tracking app built with Remix that offers various features such as authentication, projects management, and monthly or custom reports. It is designed to be self-hosted, meaning it can be hosted on any platform of your choice, and the best part is that you can use it for free.
If you prefer using a pre-built Docker image, you can simply run it using the following command:
docker run -p 3000:3000 nicolazambello/worktimer
For more flexibility and customization, you can use Docker Compose. Here's an example of a docker-compose.yml file with Traefik as a reverse proxy:
version: '3'
services:
app:
image: nicolazambello/worktimer
ports:
- 3000:3000
environment:
# Add your configuration variables here
- DATABASE_URL=...
- AUTH_SECRET=...
- REMIX_APP_ENV=production
- REMIX_LOOKUP_CONFIG_PATH=.remixrc
- REMIX_SESSION_SECRET=verysecret
- REMIX_CSRF_SECRET=csrfsecret
traefik:
image: traefik:v2.4
command:
- --api.insecure=true
- --providers.docker=true
ports:
- 80:80
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
If you have specific requirements or want to customize the deployment or development process, you can follow the instructions provided in the documentation.
WorkTimer is a powerful time tracking app built with Remix. It offers features such as time entries management, authentication, projects management, and monthly or custom reports. With its self-hosting capability, you can easily use WorkTimer on any platform of your choice. Whether you are a freelancer, a small team, or an individual looking to track your time efficiently, WorkTimer provides the tools you need to stay organized and productive.
React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components
Remix is a modern JavaScript framework that focuses on building fast and performant web applications. It emphasizes a combination of server-rendered content and client-side interactivity, offering a robust architecture for creating scalable and maintainable projects.
A fully featured React components library. 100+ components, 50+ hooks.
Prisma is a server-side library that helps developers read and write data to the database in an intuitive, efficient and safe way.
A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.
A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.
ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.
Zod is a TypeScript-first schema declaration and validation library. It allows you to define schemas that can validate data at runtime while providing excellent TypeScript inference, making it perfect for API validation, form validation, and type-safe data handling.