diff --git a/README.md b/README.md index 6c01a53e..196bdf2c 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Grafana](https://github.com/grafana/grafana) - The open and composable observability and data visualization platform - [Grav](https://github.com/getgrav/grav) - Fast, Simple, and Flexible, file-based Web-platform. - [Grocy](https://github.com/grocy/grocy) - Grocy - ERP beyond your fridge +- [Hammond](https://github.com/akhilrex/hammond) - Self hosted vehicle and expense management system. - [Haven](https://github.com/havenweb/haven) - Haven is a self-hosted private blog and feedreader you can use instead of Facebook - [Headscale](https://github.com/juanfont/headscale) - An open source, self-hosted implementation of the Tailscale control server - [HedgeDoc](https://github.com/hedgedoc/hedgedoc) - A Collaborative Markdown and Note Taking App diff --git a/apps/hammond/config.json b/apps/hammond/config.json new file mode 100644 index 00000000..51c2c2ee --- /dev/null +++ b/apps/hammond/config.json @@ -0,0 +1,16 @@ +{ + "$schema": "../schema.json", + "name": "Hammond", + "port": 8185, + "available": true, + "exposable": true, + "id": "hammond", + "tipi_version": 1, + "version": "1.0.0", + "categories": ["utilities"], + "description": "Self hosted vehicle and expense management system. Like Clarkson, but better", + "short_desc": "Self hosted vehicle and expense management system. Like Clarkson, but better", + "author": "Akhilrex", + "source": "https://github.com/akhilrex/hammond", + "form_fields": [] +} diff --git a/apps/hammond/docker-compose.yml b/apps/hammond/docker-compose.yml new file mode 100644 index 00000000..8c337b24 --- /dev/null +++ b/apps/hammond/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3" + +services: + hammond: + container_name: hammond + image: akhilrex/hammond:1.0.0 + ports: + - ${APP_PORT}:3000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${APP_DATA_DIR}/data/assets:/assets + restart: unless-stopped + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.hammond.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.hammond.entrypoints: websecure + traefik.http.routers.hammond.service: hammond + traefik.http.routers.hammond.tls.certresolver: myresolver + traefik.http.services.hammond.loadbalancer.server.port: 3000 \ No newline at end of file diff --git a/apps/hammond/metadata/description.md b/apps/hammond/metadata/description.md new file mode 100644 index 00000000..7076c93e --- /dev/null +++ b/apps/hammond/metadata/description.md @@ -0,0 +1,26 @@ +# Hammond + +Current Version - 2022.07.06 + +A self-hosted vehicle expense tracking system with support for multiple users. +[**Explore the docs »**](https://github.com/akhilrex/hammond) + +[Report Bug](https://github.com/akhilrex/hammond/issues) · [Request Feature](https://github.com/akhilrex/hammond/issues) · [Screenshots](https://github.com/akhilrex/hammond/blob/master/Screenshots.md) + +## About The Project + +Hammond is a self hosted vehicle management system to track fuel and other expenses related to all of your vehicles. It supports multiple users sharing multiple vehicles. It is the logical successor to Clarkson which has not been updated for quite some time now. + +_Developers Note: This project is under active development which means I release new updates very frequently. It is recommended that you use something like [watchtower](https://github.com/containrrr/watchtower) which will automatically update your containers whenever I release a new version or periodically rebuild the container with the latest image manually._ + +**Also check out my other self-hosted, open-source solution - [Podgrab](https://github.com/akhilrex/podgrab) - Podcast download and archive manager and player.** + +### Motivation and Developer Notes + +I was looking for a fuel tracking system and stumbled upon Clarkson. Although it did most of what I needed it has not been updated for quite a lot of time. Since I had some bandwidth available as my previous open source project [Podgrab](http://github.com/akhilrex/podgrab) had become quite stable now, my first thought was to contribute to the Clarkson project only. I soon realized that the architecture that Clarkson had used was not really be that extensible now and would warrant a complete rewrite only. So I decided to build Hammond - The successor to Clarkson. + +The current version of Hammond is written using GO for backend and Vuejs for the front end. Originally I had thought of using the same tech stack for both frontend and the backend so that it became easier for users and other developers to use, deploy and contribute. Which is why the first version of Hammond has a NestJS backend complete with all the bells and whistles (GraphQL, Prisma and what nots). But I eventually decided to rebuild the backend in GO just to keep the container size small. No matter how much you can optimize the sheer size of the node\_modules will always add bulk to your containers. I host all my tools on my Raspberry Pi. It only makes sense to keep the container size as small as possible. + +Also I had initially thought of a 2 container approach (1 for backend and 1 for the frontend) so that they can be independently maintained and updated. I eventually decided against this idea for the sake of simplicity. Although it is safe to assume that most self-hosters are fairly tech capable it still is much better to have a single container that you can fire and forget. + +[![Product Name Screen Shot](https://github.com/akhilrex/hammond/raw/master/images/screenshot.jpg)](https://github.com/akhilrex/hammond/blob/master/images/screenshot.jpg) [More Screenshots](https://github.com/akhilrex/hammond/blob/master/Screenshots.md) \ No newline at end of file diff --git a/apps/hammond/metadata/logo.jpg b/apps/hammond/metadata/logo.jpg new file mode 100644 index 00000000..a54577d6 Binary files /dev/null and b/apps/hammond/metadata/logo.jpg differ