William Brawner
1fa28fb2e1
This still needs a lot of love but the generated spec is a good start Signed-off-by: William Brawner <me@wbrawner.com> |
||
---|---|---|
.github/workflows | ||
api | ||
app | ||
core | ||
db | ||
gradle | ||
storage | ||
testhelpers | ||
web | ||
.gitignore | ||
build.gradle.kts | ||
docker-compose.yml | ||
Dockerfile | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle.kts |
Twigs Server
This is the backend application that powers the Android, iOS, and web applications for Twigs, a personal finance/budgeting app. None of these apps are complete, so expect bugs, and they are all in various stages of development, so expect some feature disparity between platforms.
Prerequisites
- JDK 14 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