A possible backend implementation for the Budget apps on Android & iOS
Find a file
dependabot[bot] 426a522683 Bump ktor from 2.3.10 to 2.3.11
Bumps `ktor` from 2.3.10 to 2.3.11.

Updates `io.ktor:ktor-client-content-negotiation` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-serialization-kotlinx-json` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-auth` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-call-logging` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-cio` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-content-negotiation` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-core` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-cors` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-forwarded-header` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-mustache` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-sessions` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

Updates `io.ktor:ktor-server-test-host` from 2.3.10 to 2.3.11
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.11/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.10...2.3.11)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-content-negotiation
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-serialization-kotlinx-json
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-call-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-cio
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-content-negotiation
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-cors
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-forwarded-header
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-mustache
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-sessions
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-test-host
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 03:04:42 -06:00
.github Fix permissions for pull request workflow 2024-03-27 20:22:05 -06:00
api Fix kotlinx serialization not being applied 2024-04-20 22:06:44 -06:00
app Add XForwardedHeaders plugin 2024-04-21 10:05:43 -06:00
core Add mustache support with static assets and functional login/registration 2024-04-20 22:06:44 -06:00
db Finish implementing remaining service classes 2024-03-27 16:59:18 -06:00
gradle Bump ktor from 2.3.10 to 2.3.11 2024-05-13 03:04:42 -06:00
service Add some budget pages 2024-04-20 22:06:44 -06:00
storage Finish implementing remaining service classes 2024-03-27 16:59:18 -06:00
testhelpers Finish implementing remaining service classes 2024-03-27 16:59:18 -06:00
web Add more debug logging around failed logins 2024-04-21 10:27:57 -06:00
.gitignore Add support for sqlite 2023-08-07 20:42:01 -06:00
build.gradle.kts Fix kotlinx serialization not being applied 2024-04-20 22:06:44 -06:00
COPYING Switch to AGPLv3 2024-03-09 16:34:20 +00:00
docker-compose.yml More progress on transaction editing, also removed some debug logging for hikari and set the docker compose file to use postgres 2024-04-20 22:06:44 -06:00
Dockerfile Add docker builds for arm 2022-05-18 18:35:15 -06:00
gradlew Migrate from JDK 8 -> 11 and use Gradle instead of Maven 2020-02-10 17:57:53 -07:00
gradlew.bat Migrate from JDK 8 -> 11 and use Gradle instead of Maven 2020-02-10 17:57:53 -07:00
LICENSE Switch to AGPLv3 2024-03-09 16:34:20 +00:00
README.md Update README 2024-04-20 22:06:44 -06:00
settings.gradle.kts WIP: Move API logic to shared services 2024-03-27 16:59:18 -06:00

Twigs

Twigs is a personal finance application tailored to individuals and small groups that want robust budgeting features without needing to pay a monthly subscription.

Prerequisites

  • JDK 17 or newer
  • PostgreSQL 13 or newer
  • (optional) Docker

Running

Prior to running the app, make sure you have a PostgreSQL server running, with a database and user ready to go. To avoid the hassle of figuring out how to get it installed locally, using Docker is recommended, and a sample docker-compose.yml file is included in the root of the repository. If you already have a PostgreSQL server running, you can run the app from the command line with gradle:

./gradlew run

Configuration

Some parameters of Twigs can be configured via environment variables:

Environment Variable Default Value Note
TWIGS_PORT 8080 Port for web server to listen on
TWIGS_DB_HOST localhost PostgreSQL server host
TWIGS_DB_PORT 5432 PostgreSQL server port
TWIGS_DB_NAME twigs PostgreSQL database name
TWIGS_DB_USER twigs PostgreSQL database user
TWIGS_DB_PASS twigs PostgreSQL database password
TWIGS_PW_SALT Salt to use for password, generated if empty or null
TWIGS_SMTP_FROM From email address for automated emails sent from Twigs
TWIGS_SMTP_HOST SMTP server host for sending emails
TWIGS_SMTP_PORT SMTP server port for sending emails
TWIGS_SMTP_USER SMTP server username for sending emails
TWIGS_SMTP_PASS SMTP server password for sending emails

Building

Building the app is also handled with gradle:

./gradlew shadowJar

License

Copyright (C) 2019-2024 William Brawner

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.