Tracky is a self-hosted tracker service.
Useful to keep track of things like: gas prices, mileage, weight, bills, blood glucose levels, grocery prices, etc.
Why? β’ Features highlights β’ Getting started β’ Configuration
Tracky is a track application that helps you keep track of different values over time.
I've always loves to keep track of different things: weight, bills, car mileage, GPL prices, etc. So I ended up creating multiple excel files almost identical each other.
Tracky takes care of this problem providing a system used to track the values and visualize them in a simple graph. It also provides a Graphical User Interface and the REST API, so the values can be updated from everywhere.
- Create tracker in order to group different value with the same meaning
- Add new values for the saved trackers
- List all the tracker's values over time
- View all the tracker's value in a chart
- Add, modify and delete values and trackers via REST API or GUI
- π Group together values over time
- π Compare multiple trackers together
Installing Tracky is pretty straight forward, in order to do so follow these steps:
-
Create a folder where you want to place all Tracky related files.
-
Inside that folder, create the following files:
docker-compose.yml
:
version: "3" name: tracky services: backend: image: msdeluise/tracky-backend:latest env_file: backend.env depends_on: - db restart: unless-stopped volumes: - "certs:/certificates" ports: - "8080:8080" db: image: mysql:8.0 restart: always env_file: backend.env volumes: - "./db:/var/lib/mysql" frontend: image: msdeluise/tracky-frontend:latest env_file: frontend.env links: - backend ports: - "3000:3000" volumes: - "certs:/certificates" volumes: certs: driver: local driver_opts: type: none o: bind device: ./certificates
backend.env
:
# # DB # MYSQL_HOST=db MYSQL_PORT=3306 MYSQL_USERNAME=root MYSQL_PSW=root MYSQL_ROOT_PASSWORD=root MYSQL_DATABASE=bootdb # # JWT # JWT_SECRET=putTheSecretHere JWT_EXP=1 # # Server config # USERS_LIMIT=-1 # < 0 means no limit # # SSL # SSL_ENABLED=false CERTIFICATE_PATH=/certificates/
frontend.env
:
PORT=3000 API_URL=http://localhost:8080/api WAIT_TIMEOUT=10000 BROWSER=none SSL_ENABLED=false CERTIFICATE_PATH=/certificates/
-
Run the docker compose file (
docker compose -f docker-compose.yml up -d
), then the service will be available atlocalhost:3000
, while the REST API will be available atlocalhost:8080/api
(localhost:8080/api/swagger-ui/index.html
for the documentation of them).
Run the docker compose file (docker compose -f <file> up -d
), then the service will be available at localhost:8080
, while the REST API will be available at localhost:8080/api
(localhost:8080/api/swagger-ui/index.html
for the documentation of them).
Run on a remote host (e.g. from mobile)
Please notice that running the docker-compose
file from another machine change the way to connect to the server. For example, if you run the docker-compose
on the machine with the local IP 192.168.1.100
then you have to change the backend url in the API_URL
variable to 192.168.1.100:8080/api
. In this case, the frontend of the system will be available at 192.168.1.100:8080
, and the backend will be available at 192.168.1.100:8080/api
.
Feel free to contribute and help improve the repo.
You can submit any of this in the issues section of the repository. Chose the right template and then fill the required info.
If you fix a bug, please follow the contribution-guideline in order to merge the fix in the repository.
Let's discuss first possible solutions for the development before start working on that, please open a feature request issue.
To fix a bug or create a feature, follow these steps:
- Fork the repo
- Create a new branch (
git checkout -b awesome-feature
) - Make changes or add new changes.
- Commit your changes (
git add -A; git commit -m 'Awesome new feature'
) - Push to the branch (
git push origin awesome-feature
) - Create a Pull Request
- Commits should follow the semantic commit specification, although not mandatory.